💉
Hilt を使ったフィールドインジェクション入門
Hilt は Android アプリケーションにおける依存性注入(DI)をシンプルに実装するためのライブラリです。
この記事では、Hilt を使って MainActivity にフィールドインジェクションで任意のクラスを注入する方法を解説します。
前提条件
- プロジェクトに Hilt の依存関係が追加されていること
- クラスが既に DI 対応(
@Singleton
や@Inject
コンストラクタ等)で実装されていること
MainActivity へのフィールドインジェクション
Hilt を利用する場合、注入先の Activity には @AndroidEntryPoint
を付与する必要があります。
以下は MainActivity で InteractionBlocker
をフィールドインジェクションするサンプルコードです。
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject
lateinit var interactionBlocker: InteractionBlocker
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// interactionBlocker を使った処理をここに記述
}
}
ポイント解説
-
@AndroidEntryPoint の付与
Hilt を利用して依存性注入を行うため、Activity などの Android コンポーネントには必ず@AndroidEntryPoint
を付与します。 -
フィールドインジェクション
注入したいフィールドには@Inject
アノテーションを付け、DI コンテナから自動的にインスタンスが注入されるようにします。
このサンプルでは、InteractionBlocker
をlateinit var
として定義しています。
まとめ
Hilt を利用することで、依存性注入が非常にシンプルかつ直感的に実装できます。
今回紹介した MainActivity でのフィールドインジェクションの方法を参考に、他のコンポーネントにも積極的に Hilt を活用してみてください。
この記事が Hilt を使った DI の理解に役立つことを願っています。
Happy Coding!
Discussion