Как стать автором
Обновить

Комментарии 11

Для чего отдельно модуль commonFeature и application(Library)? Может их стоило бы объединить?

У нас есть несколько модулей junior feature, несколько модулей common feature и несколько модулей adult feature. В каждом модуле описана 1 фича.
Модуль application(library) — это остатки нашего монолита, который мы продолжаем разносить на фиче-модули.

Мы сейчас похожим начали заниматься… И ещё вопрос, вот модули junior feature и adult feature находятся рядом в корневой папке вместе с остальными общими модулями или каждый из этих модулей находятся внутри «модулей» приложение junior и adult? Не совсем понимаю позволяет ли студия так делать?
И ещё вопросы:
1) могут ли быть у junior и adult свои собственные flavors/build variants?
2) Как в рамках CI происходит сборка разных приложений?
Все модули равноценны на уровне проекта, «модулей внутри модулей» нет.
Сами модули можно размещать в разных папках и подпапках проекта (с указанием пути в settings.gradle)
вот модули junior feature и adult feature находятся рядом в корневой папке вместе с остальными общими модулями или каждый из этих модулей находятся внутри «модулей» приложение junior и adult?

В "корневой" папке проекта можно создать дерево папок и хранить модули там.
Примерно так
root
— application (легаси — монолит)
— adult (модуль)
— junior (модуль)
— sources
— — features
— — — feature-A (модуль фичи А)
— — — feature-B (модуль фичи Б)
— — — feature-C (модуль фичи С)


могут ли быть у junior и adult свои собственные flavors/build variants?

Да, могут.


Как в рамках CI происходит сборка разных приложений?

Все просто, запускаем отдельно две таски)
:adult:assembleDebug :junior:assembleDebug
В данном случае таски имеют одинаковое имя, так что можно просто assembleDebug

В данном случае таски имеют одинаковое имя, так что можно просто assembleDebug

Соберутся сразу два приложения, верно?

Конечно да, а, к примеру, таска installDebug установит дебажные версии двух приложений.

Круто.
А как с версионностью? Сквозная, одна на оба приложения?
Как-то помечаете коммиты в гите, когда изменения затрагивают отдельные приложения/когда сразу оба/когда только общий код?

Сейчас у нас синхронные мажорные и минорные релизы. Хотфиксы тоже обычно синхронно выкатываем. Пару раз были независимые хотфиксы только одного приложения. Так что сейчас для упрощения жизни у нас есть жесткий маппинг версий между приложениями и версии синхронно поднимаются.


Как-то помечаете коммиты в гите, когда изменения затрагивают отдельные приложения/когда сразу оба/когда только общий код?

Спецпометок нет, но для двух приложений у нас отдельные проекты в трекере задач и по названию ветки видно "приложение-инициатор" изменений.

Ок. Спасибо за ответы!
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий