Или как использовать MVVM, чтобы получить несколько кошек, чтобы ваш код не был повсюду
Это вторая часть из серии « 👏👏 Обзор модернизации 👏👏 ».
Вы можете найти часть 1 здесь:
Исходный код:
Ранее в Meme Review
После копирования и вставки всего, как и любой уважающий себя пользователь Stack Overflow, мы достигли точки, когда все работает ... но выглядит как-то ... ну.
Все брошено в деятельность 😱!
Это та часть, где я должен объяснить, почему это ужасный способ писать, но есть достаточно интернет-воинов, защищающих хорошие методы кодирования.
Давайте исправим это, представив ViewModel.
Суть ViewModel в том, что его можно связать с действием, и вы можете выбросить все, что не UI с ним связано. Расскажите о своей деятельности, чтобы понаблюдать за всем интересным, что есть в ViewModel, а затем делайте свое дело.
Зависимости
Обязательно обновите зависимости и затем синхронизируйте проект.
CatModel
Давайте просто скопируем основные элементы из MainActivity в ViewModel, поскольку мы знаем, что код уже работает как есть.
Основное различие - это переменные MutableLiveData и связанный с ними метод postValue.
Единственное, чего не хватает, так это изменения MainActivity для работы с MainViewModel.
Wew парень
Дайте ему пробежку и нажмите кнопку. По-прежнему должен отображаться тост с сообщением о том, что произошло (хорошее или плохое).
Разработчик MainViewModel отвечает за базовую работу, а MainActivity отвечает за наблюдение, что, если подумать, является странной метафорой для большинства программных задач.
Следите за обновлениями в следующей части, где мы наконец (!) Что-нибудь сделаем с этим списком и покажем этих кошек на экране с помощью классических RecycleView и Glide (для загрузка изображения).