Описание тега android-viewmodel

Класс ViewModel разработан для хранения данных, связанных с пользовательским интерфейсом, и управления ими с учетом жизненного цикла. Класс ViewModel позволяет данным сохраняться при изменении конфигурации, например, при повороте экрана. Для тем, связанных с Android, используйте специфические для Android теги, такие как android-intent, android-activity, android-adapter и т. Д. По вопросам, не связанным с разработкой или программированием, но связанным с платформой Android, используйте эту ссылку: https://android.stackexchange.com.

Контроллеры UI, такие как activities а также fragmentsв первую очередь предназначены для отображения данных пользовательского интерфейса, реакции на действия пользователя или обработки взаимодействия с операционной системой, например запросов разрешений. Требование, чтобы контроллеры пользовательского интерфейса также отвечали за загрузку данных из базы данных или сети, добавляет классу раздувание. Возложение чрезмерной ответственности на контроллеры пользовательского интерфейса может привести к тому, что один класс будет пытаться обрабатывать всю работу приложения самостоятельно, вместо того, чтобы делегировать работу другим классам. Возложение чрезмерной ответственности на контроллеры пользовательского интерфейса таким образом также значительно усложняет тестирование.

Проще и эффективнее отделить владение данными представления от логики контроллера пользовательского интерфейса и ViewModel помогает в разделении данных и пользовательского интерфейса для данных. Architecture Components обеспечивает ViewModel вспомогательный класс для контроллера пользовательского интерфейса, который отвечает за подготовку данных для пользовательского интерфейса. ViewModel объекты автоматически сохраняются при изменении конфигурации, поэтому данные, которые они хранят, немедленно становятся доступными для следующего действия или экземпляра фрагмента.