MultiModule構成のアプリにおいて、他のモジュールからappモジュールのBuildConfigを参照したいことが多々あると思います。
そのとき、どのようにすれば良いかのTipsです。
前提
- Daggerを使ってる(Daggerの知識が必要)
おそらくDaggerを使わなくても可能な方法だとは思いますが、Daggerがあるとより便利です。
ここではDaggerの解説はしません。
- 共通のモジュールがいる(coreモジュール)
Featureモジュールも含め、各モジュールが依存する共通モジュールがあると何かと便利です。
AppConfigクラス
まず必要なのが、BuildConfigの情報を内包するクラスを新しく作成します。単純なdata classで大丈夫です。
これはcoreモジュールの方に作成します。
Dagger Component
次にDagger Componentです。これはcoreモジュールのほうに作成するやつです。
先程作ったAppConfigクラスをFactoryで受け取るようにします。
Applicationクラス
最後にappモジュール側でDagger Componentを作成する際にAppConfigクラスに必要な情報入れて渡すだけです。
これで設定は完了です。
値を参照する
DaggerでInjectできる箇所ならどのモジュールからでも簡単に参照可能です。
まとめ
Daggerをうまく使うことでモジュール間の連携がだいぶ楽になります。