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
}
}