Или как использовать MVVM, чтобы получить несколько кошек, чтобы ваш код не был повсюду

Это вторая часть из серии « 👏👏 Обзор модернизации 👏👏 ».

Вы можете найти часть 1 здесь:



Исходный код:



CostaFot / android - retro-electro
Внесите свой вклад в разработку CostaFot / android - retro-electro, создав учетную запись на GitHub. github.com



Ранее в Meme Review

После копирования и вставки всего, как и любой уважающий себя пользователь Stack Overflow, мы достигли точки, когда все работает ... но выглядит как-то ... ну.

Все брошено в деятельность 😱!

Это та часть, где я должен объяснить, почему это ужасный способ писать, но есть достаточно интернет-воинов, защищающих хорошие методы кодирования.

Давайте исправим это, представив ViewModel.

Суть ViewModel в том, что его можно связать с действием, и вы можете выбросить все, что не UI с ним связано. Расскажите о своей деятельности, чтобы понаблюдать за всем интересным, что есть в ViewModel, а затем делайте свое дело.

Зависимости

Обязательно обновите зависимости и затем синхронизируйте проект.

CatModel

Давайте просто скопируем основные элементы из MainActivity в ViewModel, поскольку мы знаем, что код уже работает как есть.

Основное различие - это переменные MutableLiveData и связанный с ними метод postValue.

Единственное, чего не хватает, так это изменения MainActivity для работы с MainViewModel.

Wew парень

Дайте ему пробежку и нажмите кнопку. По-прежнему должен отображаться тост с сообщением о том, что произошло (хорошее или плохое).

Разработчик MainViewModel отвечает за базовую работу, а MainActivity отвечает за наблюдение, что, если подумать, является странной метафорой для большинства программных задач.

Следите за обновлениями в следующей части, где мы наконец (!) Что-нибудь сделаем с этим списком и покажем этих кошек на экране с помощью классических RecycleView и Glide (для загрузка изображения).