В чем разница между Jetpack ViewModel и ViewModel в паттерне MVVM

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

Ответ

Jetpack ViewModel — это компонент Android Architecture Components, который сохраняет данные при изменениях конфигурации (например, повороте экрана) и автоматически очищает ресурсы при уничтожении активити/фрагмента. Он интегрирован с жизненным циклом и рекомендуется Google.

ViewModel в MVVM — это абстрактная концепция паттерна, где ViewModel выступает посредником между View и Model, но без привязки к Android-спецификам. Реализация зависит от разработчика.

Пример Jetpack ViewModel:

class MyViewModel : ViewModel() {
    val data = MutableLiveData<String>()
}