Qual é a diferença entre Dagger, Hilt e Koin sob o capô?

Olá, Habr. Para os futuros alunos do curso “Android Developer. Professional” elaboramos uma tradução tradicional do material.



Também convidamos todos para o webinar sobre o tópico
"Criação de perfil e aceleração de compilações do Gradle" . Durante a aula, os participantes, juntamente com um especialista:

- aprendem como encontrar gargalos em montagens usando gradle-profiler, scan e visualVM;

- aprenda a configurar corretamente o Gradle;

- considerará outras possibilidades para otimizar e acelerar montagens em um grande projeto.






Dagger e Koin são, sem dúvida, os dois frameworks de injeção de dependência mais populares no Android. Ambas as bibliotecas têm o mesmo propósito e parecem muito semelhantes, mas funcionam de maneiras diferentes.





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





, . , , .





Dagger

, Dagger - , , , @Inject



.





, Dagger (Factory) . , — CompositeAdapter



, CompositeAdapter_Factory



.





, CompositeAdapter



.





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



, , , .





Saída de montagem de punhal sem anotação @Inject
Dagger @Inject

Koin . , CompositeAdapter



, , RuntimeException



, . , , , - - .





Koin lança exceção quando não há fábrica para CompositeAdapter
Koin , CompositeAdapter

2.

, Koin , : . Dagger . .





3.

, Koin , .





? , , . , , .. - 4 .





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