Ответ
ViewModel — это компонент Android Jetpack, предназначенный для хранения и управления UI-данными жизненный цикл-осознанным способом. Он сохраняет данные при изменениях конфигурации (например, поворот экрана), предотвращая их потерю. ViewModel не зависит от UI-компонентов (Activity/Fragment), что помогает избежать утечек памяти.
Пример:
class MyViewModel : ViewModel() {
private val _counter = MutableLiveData<Int>(0)
val counter: LiveData<Int> get() = _counter
fun increment() {
_counter.value = (_counter.value ?: 0) + 1
}
}
// Использование в Activity/Fragment:
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.counter.observe(this) { count ->
// Обновить UI
}