Sobes.tech
Junior — Middle

Quelles approches et implémentations du pattern ViewModel connais-tu?

sobes.tech IA

Réponse de l'IA

Le modèle ViewModel dans Android est utilisé pour stocker et gérer les données de l'interface utilisateur en tenant compte du cycle de vie des composants tels que Activity ou Fragment. Approches et implémentations principales:

  • Android Architecture Components ViewModel — une classe de la bibliothèque androidx.lifecycle qui permet de conserver les données lors de la recréation d'Activity/Fragment (par exemple, lors de la rotation de l'écran). Le ViewModel vit tant que le composant UI est vivant.

  • ViewModel avec LiveData — souvent, le ViewModel contient LiveData pour mettre à jour automatiquement l'UI lorsque les données changent.

  • ViewModel personnalisé — il est possible d'implémenter un pattern personnalisé de ViewModel, séparant la logique et les données de l'UI, mais sans utiliser AndroidX, par exemple dans un MVVM pur.

Exemple d'utilisation du ViewModel standard avec LiveData:

class MyViewModel : ViewModel() {
    private val _data = MutableLiveData<String>()
    val data: LiveData<String> = _data

    fun loadData() {
        // chargement des données, par exemple depuis un dépôt
        _data.value = "Exemple de données"
    }
}

// Dans une Activity ou un Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
    textView.text = value
}
viewModel.loadData()