Ответ
ViewModel в MVVM нужна для отделения логики от UI, хранения и управления данными, связанными с экраном. Она переживает изменения конфигурации (например, поворот экрана), сохраняя данные, и предоставляет их View через LiveData/Flow.
Пример:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> get() = _data
fun loadData() {
_data.value = "Loaded data"
}
}
В Activity/Fragment:
viewModel.data.observe(this) { data ->
textView.text = data
}
Ключевые преимущества:
- Нет утечек памяти (привязана к lifecycle)
- Данные сохраняются при повороте
- Чистая архитектура (UI не знает о бизнес-логике)