+ - 0:00:00
Notes for current slide
Notes for next slide

Compose

ViewModel

1 / 9

Arquitectura

  • Organitzar el codi en diferents components
    • Model-View-Controller
    • Model-View-ViewModel
    • Model-View-Intent
    • ...
2 / 9

Activity recreation Android

  • Obre l'última aplicació feta en un Android.
  • Introdueix valors
  • Gira la pantalla
  • Que passa?
3 / 9

ViewModel

  • Organització del codi
  • Soluciona el problema de rotació de pantalla
4 / 9

ViewModel

  • Logica de la vista
    • Les funcions composables només s'encarreguen de mostrar, tenen la mínima lògica possible
5 / 9

ViewModel Sample

class HelloByeViewModel : ViewModel() {
val text = mutableStateOf("Hello World")
fun sayBye(){
text.value = "Bye"
}
}
6 / 9

ViewModel Sample

@Composable
fun HelloByeVmApp() {
val viewModel = viewModel { HelloByeViewModel() }
Button(
onClick = viewModel::sayBye // or { viewModel.sayBye() }
) {
Text(viewModel.text.value)
}
}
7 / 9

ViewModel Sample v2

@Composable
fun HelloByeVmAppv2() {
val viewModel = viewModel { HelloByeViewModel() }
HelloByeVmAppv2View(viewModel.text.value, viewModel::sayBye)
}
@Composable
fun HelloByeVmAppv2View(text: String, onSayBye: ()-> Unit) {
Button(
onClick = onSayBye // or { viewModel.sayBye() }
) {
Text(text)
}
}
8 / 9

Exercicis

9 / 9

Arquitectura

  • Organitzar el codi en diferents components
    • Model-View-Controller
    • Model-View-ViewModel
    • Model-View-Intent
    • ...
2 / 9
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow