Что такое Jetpack ViewModel

«Что такое Jetpack ViewModel» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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
}