У меня есть приложение Android со следующей настройкой:
2 модуля Gradle: app
и feature
(только что начал модульную работу, и это первый из многих функциональных модулей)
В модуле функции FeatureModule
, который представляет собой кинжал @Module
, предоставляющий зависимости для функции.
В модуле app
AppComponent
, который обрабатывает все зависимости, имея ссылку на FeatureModule
(@Component(modules = [...,FeatureModule::class])
)
Работает нормально. Проблема в том, что мне нужны эти строки в обоих build.gradle
s модуля:
apply plugin: 'kotlin-kapt'
....
implementation 'com.google.dagger:dagger-android-support:2.22.1'
implementation 'com.google.dagger:dagger:2.22.1'
kapt 'com.google.dagger:dagger-compiler:2.22.1'
kapt 'com.google.dagger:dagger-android-processor:2.22.1'
Насколько я знаю, добавление kapt
ко всем функциональным модулям значительно замедляет сборку (я мог бы быть неправым в этом Так что я хочу, чтобы эти строки были только в build.gradle
:
implementation 'com.google.dagger:dagger-android-support:2.22.1'
implementation 'com.google.dagger:dagger:2.22.1'
этого функционального модуля. Как вы думаете, я должен создать отдельный @Component
для функционального модуля (и других функциональных модулей в будущем) или достаточно иметь отдельный Dagger @Module
для них?
На самом деле я пытался создать @Component
, но я нашел только примеры об этом для настройки @Component.Builder
, и я использую новый @Component.Factory
one.
Единственная причина почему я рассматриваю компонент так, чтобы я мог дать другое @Scope
для функции, но я не думаю, что хочу сделать это сейчас. Вы знаете о какой-либо другой причине для меня, чтобы сделать это?
Заранее спасибо!