MVP на стероидах: заставляем робота писать код за вас

в 11:35, , рубрики: android, android development, moxy, mvp, templates, Блог компании REDMADROBOT, Проектирование и рефакторинг, разработка мобильных приложений, Разработка под android

В статье «Moxy — реализация MVP под Android с щепоткой магии» мы рассказывали, как побороть проблему жизненного цикла и разделить код своего Android-проекта на слои. Однако MVP (даже при умной кодогенерации view state в Moxy) заставляет писать огромное количество лишнего кода (создавать связанные друг с другом классы и интерфейсы presenter и view). На самом деле эту работу за вас должен делать робот! :) Настало время еще сильнее уменьшить boilerplate при помощи кастомизации шаблонов Android Studio под Moxy.

MVP на стероидах: заставляем робота писать код за вас - 1


Структура проекта

Для того чтобы начать кодогенерацию, нужно зафиксировать структуру проекта.

  • model
  • presentation
    • presenter
    • view
  • ui
    • activity
    • fragment

Содержимое пакетов presenter, view, activity и fragment, в свою очередь, делится на логические модули. Часто такими модулями выступают разделы приложения (к примеру, intro, offers, feed). Ниже — пример структуры проекта с двумя Activity (CarActivity и HomeActivity) и одним фрагментом (CarDetailsFragment)

image

Наша цель — научиться генерировать эти классы

Настройка шаблонов

Как создавать шаблоны в Android Studio можно прочитать в статье от Fi5t про Тотальную шаблонизацию

Добавляем в проект шаблоны для Moxy:

  • Скачиваем шаблоны с Github либо по ссылке
  • Копируем содержимое архива в ANDROID_STUDIO_DIR/plugins/android/lib/templates/activities
  • Перезапускаем Android Studio, чтобы изменения вступили в силу

Настраиваем hot keys для быстрого доступа к шаблонам:

  • Открываем настройки-> Keymap
  • В поисковом окне вводим Moxy
  • Добавляем комбинации клавиш (я использую Alt + A для активити и Alt + F для фрагмента)

image

Использование шаблонов

  • Выделяем корневой пакет и нажимаем Alt + A.
  • В поле Activity Name пишем «MyFirstMoxyActivity»

Остальные поля наберутся сами.

image

Далее меняем в поле Package Name слово blank на имя подпакета и нажимаем Finish. Ваш пакет классов готов! Стоит отметить, что при обновлении Android Studio может снести все кастомные шаблоны. В этом случае придется их импортировать заново.

Что в итоге

Концепция MVP подразумевает разделение логики приложения на слои и, как следствие, увеличение кодовой базы. Использование шаблонов и кодогенерации максимально избавляет вас от boilerplate, предохраняет от случайных ошибок и позволяет сосредоточиться на бизнес-логике. Пусть код за вас пишет робот!

Материалы по теме

Автор: REDMADROBOT

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js