Какие подходы и реализации паттерна ViewModel ты знаком?
Ответ от нейросети
sobes.tech AI
Паттерн ViewModel в Android используется для хранения и управления UI-данными с учётом жизненного цикла компонентов, таких как Activity или Fragment. Основные подходы и реализации:
-
Android Architecture Components ViewModel — класс из библиотеки androidx.lifecycle, который позволяет сохранять данные при пересоздании Activity/Fragment (например, при повороте экрана). ViewModel живёт до тех пор, пока жив компонент UI.
-
ViewModel с LiveData — часто ViewModel содержит LiveData, чтобы автоматически обновлять UI при изменении данных.
-
Custom ViewModel — можно реализовать собственный паттерн ViewModel, отделяя логику и данные от UI, но без использования AndroidX, например, в чистом MVVM.
Пример использования стандартного ViewModel с LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
// загрузка данных, например из репозитория
_data.value = "Пример данных"
}
}
// В Activity или Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
textView.text = value
}
viewModel.loadData()