Androidの最新技術Hiltを使ってみたいと思った
そしたら勉強だ!
Codelabsにあったので試してやってみた
・Codelabs
https://developer.android.com/codelabs/android-hilt?hl=ja&continue=https%3A%2F%2Fcodelabs.developers.google.com#0
・サービスロケータ
デザインパターンで、インスタンスを管理するコンテナクラスを作る
PHPのこのコードむちゃくちゃ分かりやすい
・アノテーション
@HiltAndroidApp
Applicationクラスにつける
@AndroidEntryPoint
ActivityやFragmentにInjectできるようにするためにつける
@Inject
依存関係コンテナで作成されたインスタンスを onAttach() ライフサイクルメソッドでこれらのフィールドに入力します。
・Contextはすでに定義されてる
HiltだとAndroidで使いやすいように、一部はすでに定義されてる
@ApplicationContext
また、@ActivityScopedも既にある
https://qiita.com/karass/items/0d4ae10ce74855eac2cb
・ApplicationComponent
これ最新のHiltだと動かないwwwwww
ApplicationComponentはSingletonComponentに置き換える必要がある
https://stackoverflow.com/questions/65266636/is-applicationcomponent-deprecated
@InstallIn(SingletonComponent::class)
・EntryPointAccessors
EntryPointAccessorsでhiltで使えないコードをDIできる
Dagger使い始めたばかりなのに・・・・
時代はどんどん変わりますね
まだまだ続くよ