Sobes.tech
Junior — Middle

Quels composants de Jetpack ViewModel utilisez-vous pour gérer les données et l'état de l'interface utilisateur?

sobes.tech IA

Réponse de l'IA

Pour gérer les données et l'état de l'interface utilisateur dans Jetpack ViewModel, on utilise généralement les composants suivants :

  • LiveData — données observables qui mettent automatiquement à jour l'interface lors d'une modification. Permet d'implémenter une approche réactive.

  • MutableLiveData — version modifiable de LiveData, utilisée à l'intérieur du ViewModel pour mettre à jour les données.

  • StateFlow / SharedFlow (de Kotlin Coroutines) — alternatives modernes à LiveData pour gérer l'état et les événements avec prise en charge des coroutines.

  • SavedStateHandle — permet de sauvegarder et de restaurer l'état du ViewModel lors de la recréation de l'interface, par exemple lors de la rotation de l'écran.

Exemple d'utilisation de LiveData dans un ViewModel :

class MyViewModel : ViewModel() {
    private val _text = MutableLiveData<String>()
    val text: LiveData<String> = _text

    fun updateText(newText: String) {
        _text.value = newText
    }
}