разных проектах нужны модули 6 Разработка большого проекта A B C E D Долгая поддержка проекта Скорость разработки на длинной дистанции Верно хотя бы одно из утверждений 2 Скорость сборки
все необходимые зависимости 2 Код фичи легко отделяем 3 Код фичи тиражируем (эксперименты) 4 Возможность управлять временем жизни фичей (скоупами) 5 Возможность навигации, в т.ч. диплинки / апплинки 12
следующими характеристиками: - Логически законченный - Максимально независимый - Имеет четко обозначенные внешние зависимости - Практически не относится к бизнес логике приложения Пример: - Base UI - List & Pagination - Metrics & Analytics - Network 14
@return true, если команда была обработана */ fun onBackPressed(): Boolean } interface OnBackPressable { fun addOnBackPressedListener(listener: OnBackPressedListener) fun removeOnBackPressedListener(listener: OnBackPressedListener) } BaseFragment : Fragment(), OnBackPressable, OnBackPressedListener{}
Общий функционал Фиче-модули User Job Position Push Suggestion University … Base UI List Processing Pagination Network Remote Config Custom Views View#1 View#2 View#3 … … Приложения Applicant Application Russia Azerbaijan Belarus Employer Application Russia Belarus 36
Employer code Common code Кодовая база Иерархия Applicant code Employer code Common code Кодовая база Applicant Employer Common Иерархия Flavors Modules
транзакции фрагментов на Cicerone 2 Замена Activity на Activity + Fragment Делаем механизм для роутинга (Smart Router) 3 Не занимайтесь внедрением MVP / MVVM / MVI на этом шаге
APK > 100 mb 2 Конфликтует с инструментами меняющими таблицу ресурсов 3 В Manifest-е динамического фичи модуля только ресурсы базового модуля 4 Для работы необходимы Android 5.0 (API level 21) и последняя версия Google Play Store 5 Прочие баги, ограничения и недоработки На сайте Android Developers
больше чем создает Концепция сложная и подойдет для зрелых проектов Не бойтесь экспериментировать и никому не верьте! 65 Обзор проблем Картина “TO BE” Подведение итогов Слайды t.me/xanderblinov Контакты Переход от “AS IS” к “TO BE” Динамические фиче- модули