Junior — Middle
Môžeš uviesť iné prístupy alebo komponenty používané namiesto ViewModel?
sobes.tech AI
Odpoveď od AI
Namiesto ViewModel v Android môžete použiť nasledujúce prístupy alebo komponenty:
- MVP (Model-View-Presenter): rozdelenie logiky na Presenter, ktorý spravuje View a Model.
- MVI (Model-View-Intent): architektúra s jednosmerným tokom dát a správou stavu.
- LiveData s Repository: použitie LiveData na sledovanie dát bez ViewModel.
- StateFlow a SharedFlow z Kotlin Coroutines na správu stavu a udalostí.
Napríklad môžete použiť StateFlow v repository a prihlásiť sa naň z Activity alebo Fragmentu:
class Repository {
private val _state = MutableStateFlow<MyState>(MyState.Initial)
val state: StateFlow<MyState> = _state
fun loadData() {
// načítanie dát a aktualizácia _state
}
}
// V Activity alebo Fragmentu
lifecycleScope.launch {
repository.state.collect { state ->
// aktualizácia UI
}
}
Toto umožňuje spravovať stav bez ViewModel, hoci ViewModel zvyčajne uľahčuje správu životného cyklu.