Sobes.tech
Junior — Middle

Jakie komponenty Jetpack ViewModel używasz do zarządzania danymi i stanem UI?

sobes.tech AI

Odpowiedź od AI

Aby zarządzać danymi i stanem interfejsu użytkownika w Jetpack ViewModel, zwykle używa się następujących komponentów:

  • LiveData — obserwowalne dane, które automatycznie aktualizują interfejs użytkownika po zmianie. Umożliwia to implementację reaktywnego podejścia.

  • MutableLiveData — zmienna wersja LiveData, używana wewnątrz ViewModel do aktualizacji danych.

  • StateFlow / SharedFlow (z Kotlin Coroutines) — nowoczesne alternatywy dla LiveData do zarządzania stanem i zdarzeniami z obsługą korutyn.

  • SavedStateHandle — pozwala na zapisywanie i przywracanie stanu ViewModel podczas ponownego tworzenia interfejsu, np. podczas obrotu ekranu.

Przykład użycia LiveData w ViewModel:

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

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