💉

Hilt を使ったフィールドインジェクション入門

2025/02/14に公開

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 コンテナから自動的にインスタンスが注入されるようにします。
    このサンプルでは、InteractionBlockerlateinit var として定義しています。

まとめ

Hilt を利用することで、依存性注入が非常にシンプルかつ直感的に実装できます。
今回紹介した MainActivity でのフィールドインジェクションの方法を参考に、他のコンポーネントにも積極的に Hilt を活用してみてください。


この記事が Hilt を使った DI の理解に役立つことを願っています。
Happy Coding!

Discussion