ボンネットの下のダガー、ヒルト、コインの違いは何ですか?

こんにちは、Habr。コース「AndroidDeveloper。Professional」の将来の学生のために、資料の従来の翻訳を準備しました。



また、
「Gradleビルドのプロファイリングと高速化」というトピックに関するウェビナーに全員を招待しますレッスン中、参加者は専門家と一緒

に次のことを行います。-gradle-profiler、scan、visualVMを使用してアセンブリのボトルネックを見つける方法を学びます。

-Gradleを適切に構成する方法を学びます。

-大規模なプロジェクトでアセンブリを最適化および高速化するための他の可能性を検討します。






DaggerとKoinは、間違いなくAndroidで最も人気のある2つの依存性注入フレームワークです。これらのライブラリは両方とも同じ目的を果たし、非常に似ているように見えますが、動作は異なります。





Hilt? Hilt — , Dagger , , Dagger, Hilt.





, . , , .





Dagger

, Dagger - , , , @Inject



.





, Dagger (Factory) . , — CompositeAdapter



, CompositeAdapter_Factory



.





, CompositeAdapter



.





Daggerによって生成されたコードのスニペット
, Dagger

, get()



, CompositeAdapter



. , Provider, . Provider .





, Hilt Dagger?

. Hilt — , Dagger , , , Dagger. Hilt, , Dagger , . .





Koin

Koin , Dagger , , Hilt. Koin, , Koin . , , .





Koin InstancesRegistry



, , .





map — , , . — , .





, , , get()



(, ) inject()



, get()



. get()



, , .





?

, Dagger , Koin — .





1.

Dagger — , - , , .





, @Inject



CompositeAdapter



, , , .





@Injectアノテーションが欠落している短剣アセンブリ出力
Dagger @Inject

Koin . , CompositeAdapter



, , RuntimeException



, . , , , - - .





CompositeAdapterのファクトリがない場合、Koinは例外をスローします
Koin , CompositeAdapter

2.

, Koin , : . Dagger . .





3.

, Koin , .





? , , . , , .. - 4 .





ソース:https://github.com/Sloy/android-dependency-injection-performance
: https://github.com/Sloy/android-dependency-injection-performance

, Dagger . , Koin , . Dagger , Koin.





, , , . Koin Dagger , . , , , , Dagger Koin, , -, , . , : Koin, Dagger Hilt .





, , , , , .






- "Android Developer. Professional".

-
"Android Developer. Basic".





« Gradle ».








All Articles