модуля-слоя (presentation, domain, data).
1) Нормально ли организовывать такую структуру проекта
2) Если да, то нужно ли тянуть Dagger в эти слои
3) Если да, то как правильнее организовать организовать DI в этих модулях?
Привет. 1. Можно иметь фича-модули без явного разделения на слои. Иначе получается комбинаторика. 2. Можно вообще не использовать DI-фреймворки. 2. Передавать зависимости явно через конструктор, вручную.
поддерживаю все пункты
Можно по первому вопросу подробнее, что подразумевается под комбинаторикой?
Это когда в каждом фича-модуле явно выделено по 3 стандартных слоя. В таком случае, по сути, получается N*3 "модулей".
1. Можно и так. Можно и не делать. Тут зависит от того, насколько фича изолирована. Если domain может использоваться где-то ещё, то лучше его вынести в отдельный модуль. Data (т.е. имплементации репозиториев) можно вынести, а можно просто имплементировать в app модуле. Если таки хотите даггер, то 2. Да, как минимум, понадобятся анноташки для constructor injection. 3. В domain, data - только constructor injection. На самом верху UI (в фрагменте, активити, композабле) - создание компонента и получение VM, презентера или что у вас там для управления UI.
Обсуждают сегодня