Junior — Middle
Pouvez-vous nommer d'autres approches ou composants utilisés à la place de ViewModel?
sobes.tech IA
Réponse de l'IA
Au lieu de ViewModel dans Android, vous pouvez utiliser les approches ou composants suivants:
- MVP (Model-View-Presenter) : séparation de la logique en Presenter, qui gère la Vue et le Modèle.
- MVI (Model-View-Intent) : architecture avec flux de données unidirectionnel et gestion de l’état.
- LiveData avec Repository : utilisation de LiveData pour observer les données sans ViewModel.
- StateFlow et SharedFlow de Kotlin Coroutines pour gérer l’état et les événements.
Par exemple, vous pouvez utiliser StateFlow dans le repository et vous y abonner depuis une Activity ou un Fragment :
class Repository {
private val _state = MutableStateFlow<MyState>(MyState.Initial)
val state: StateFlow<MyState> = _state
fun loadData() {
// chargement des données et mise à jour de _state
}
}
// Dans une Activity ou un Fragment
lifecycleScope.launch {
repository.state.collect { state ->
// mise à jour de l’UI
}
}
Cela permet de gérer l’état sans ViewModel, bien que le ViewModel facilite généralement la gestion du cycle de vie.