Ответ
Плюсы:
✅ Ускорение сборки за счет инкрементальной компиляции только измененных модулей
✅ Четкое разделение ответственности между командами
✅ Возможность повторного использования кода (feature-модули как библиотеки)
✅ Изоляция зависимостей (можно использовать разные версии библиотек в разных модулях)
✅ Упрощение тестирования (модули можно тестировать независимо)
Минусы:
⚠️ Усложнение настройки Gradle (многомодульные конфиги)
⚠️ Возможные циклические зависимости между модулями
⚠️ Затраты на рефакторинг монолита в модули
⚠️ Оверхеад при работе с динамическими фичами (Dynamic Feature Modules)
Пример структуры в settings.gradle:
include ':app', ':core', ':feature:auth', ':feature:profile'