¿Cuál es la diferencia entre Dagger, Hilt y Koin bajo el capó?

Hola, Habr. Para los futuros alumnos del curso "Android Developer. Professional" se preparó una traducción tradicional del material.



También invitamos a todos al seminario web sobre el tema
"Creación de perfiles y aceleración de las compilaciones de Gradle" . Durante la lección, los participantes, junto con un experto:

- aprenden a encontrar cuellos de botella en ensamblajes usando gradle-profiler, scan y visualVM;

- aprender a configurar correctamente Gradle;

- considerará otras posibilidades para optimizar y acelerar los ensamblajes en un gran proyecto.






Dagger y Koin son sin duda los dos frameworks de inyección de dependencia más populares en Android. Ambas bibliotecas tienen el mismo propósito y parecen muy similares, pero funcionan de diferentes maneras.





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





, . , , .





Dagger

, Dagger - , , , @Inject



.





, Dagger (Factory) . , — CompositeAdapter



, CompositeAdapter_Factory



.





, CompositeAdapter



.





Fragmento de código generado por 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



, , , .





Salida de ensamblaje Dagger con anotación @Inject faltante
Dagger @Inject

Koin . , CompositeAdapter



, , RuntimeException



, . , , , - - .





Koin lanza una excepción cuando no hay una fábrica para CompositeAdapter
Koin , CompositeAdapter

2.

, Koin , : . Dagger . .





3.

, Koin , .





? , , . , , .. - 4 .





Fuente: 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