- PVSM.RU - https://www.pvsm.ru -
В статье «Moxy — реализация MVP под Android с щепоткой магии» [1] мы рассказывали, как побороть проблему жизненного цикла и разделить код своего Android-проекта на слои. Однако MVP (даже при умной кодогенерации view state в Moxy) заставляет писать огромное количество лишнего кода (создавать связанные друг с другом классы и интерфейсы presenter и view). На самом деле эту работу за вас должен делать робот! :) Настало время еще сильнее уменьшить boilerplate при помощи кастомизации шаблонов Android Studio под Moxy.
Для того чтобы начать кодогенерацию, нужно зафиксировать структуру проекта.
Содержимое пакетов presenter, view, activity и fragment, в свою очередь, делится на логические модули. Часто такими модулями выступают разделы приложения (к примеру, intro, offers, feed). Ниже — пример структуры проекта с двумя Activity (CarActivity и HomeActivity) и одним фрагментом (CarDetailsFragment)
Наша цель — научиться генерировать эти классы
Как создавать шаблоны в Android Studio можно прочитать в статье от Fi5t [2] про Тотальную шаблонизацию [3]
Добавляем в проект шаблоны для Moxy:
Настраиваем hot keys для быстрого доступа к шаблонам:
Остальные поля наберутся сами.
Далее меняем в поле Package Name слово blank на имя подпакета и нажимаем Finish. Ваш пакет классов готов! Стоит отметить, что при обновлении Android Studio может снести все кастомные шаблоны. В этом случае придется их импортировать заново.
Концепция MVP подразумевает разделение логики приложения на слои и, как следствие, увеличение кодовой базы. Использование шаблонов и кодогенерации максимально избавляет вас от boilerplate, предохраняет от случайных ошибок и позволяет сосредоточиться на бизнес-логике. Пусть код за вас пишет робот!
Автор: REDMADROBOT
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/android-development/180743
Ссылки в тексте:
[1] «Moxy — реализация MVP под Android с щепоткой магии»: https://habrahabr.ru/post/276189/
[2] Fi5t: https://habrahabr.ru/users/fi5t/
[3] Тотальную шаблонизацию: https://habrahabr.ru/company/redmadrobot/blog/274897/
[4] Github: https://github.com/Arello-Mobile/Moxy/tree/master/moxy-templates
[5] ссылке: https://drive.google.com/file/d/0B0bXlVHPiZVXY2FVQkNLc1lMbW8/view?usp=sharing
[6] Android without Lifecycle: MPVsV approach with Moxy: https://medium.com/@xanderblinov/android-without-lifecycle-mpvsv-approach-with-moxy-6a3ae33521e#.jgh8nj9pi
[7] Источник: https://habrahabr.ru/post/305798/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.