Jakie podejścia i implementacje wzorca ViewModel znasz?
sobes.tech AI
Odpowiedź od AI
Wzorzec ViewModel w Androidzie służy do przechowywania i zarządzania danymi interfejsu użytkownika, uwzględniając cykl życia komponentów takich jak Activity czy Fragment. Główne podejścia i implementacje:
-
Android Architecture Components ViewModel — klasa z biblioteki androidx.lifecycle, która pozwala zachować dane podczas ponownego tworzenia Activity/Fragment (np. podczas obrotu ekranu). ViewModel żyje tak długo, jak długo żyje komponent UI.
-
ViewModel z LiveData — często, ViewModel zawiera LiveData, aby automatycznie aktualizować UI przy zmianie danych.
-
Własny ViewModel — można zaimplementować własny wzorzec ViewModel, oddzielając logikę i dane od UI, ale bez użycia AndroidX, np. w czystym MVVM.
Przykład użycia standardowego ViewModel z LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
// ładowanie danych, np. z repozytorium
_data.value = "Przykład danych"
}
}
// W Activity lub Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
textView.text = value
}
viewModel.loadData()