Um guia prático para usar o Hilt com Kotlin

Convidamos futuros alunos do curso "Desenvolvedor Android. Profissional" a visitar a lição aberta sobre o tópico "Escrevendo um plugin do Gradle"







Também compartilhamos a tradução de um artigo útil.






Uma maneira fácil de usar injeção de dependência em aplicativos Android

Hilt  é uma nova biblioteca de injeção de dependência construída sobre  Dagger . Ele permite que você use os recursos de Dagger em aplicativos Android de uma forma simplificada. Este tutorial descreve a funcionalidade básica da biblioteca e fornece alguns trechos de código para ajudá-lo a começar a usar o Hilt em seus projetos.





Configurando Hilt

Para configurar o Hilt em seu aplicativo, primeiro siga as instruções do tutorial: Instalando o Gradle Build .





, Hilt,  Application  @HiltAndroidApp.



, Hilt .





, , , :





  1. , , .





  2. , .





: .





Hilt , Hilt .  .





Hilt.





  1.  @Inject







  2.  @Binds



     





  3.  @Provides



     





⮕   @Inject







 @Inject



, .





⮕ 





Hilt .





Hilt  «», Hilt, , , — , .





, . , -.





  Hilt,  @InstallIn



. .





1:  @Binds,





 OatMilk,  Milk,  @Binds



. , , OatMilk .  @Inject



.





2: -  @Provides







, .  — -, .





,  ConnectivityManager, .





 Context  ,  @ApplicationContext



  @ActivityContext



.





, Hilt .

















@Inject



, Hilt , .









,  @AndroidEntryPoint



( ), ,  @Inject



.





,  @Inject



,  . lateinit, ,  null



.





, , ,  Activity



. .





, ,    , ? ,    , , . , Android, Hilt.





    Hilt, Hilt , , .





⮕ Android





  Android:





  • Activity





  • Fragment





  • View





  • Service





  • BroadcastReceiver





,  @AndroidEntryPoint



.









Android, , Dagger, Android, Hilt, Hilt . .





ViewModel

ViewModel — : , , Android.  ViewModel



 @ViewModelInject



, Hilt ,  by viewModels()



. ,  @Inject



  .





, ViewModel



,  SavedStateHandle  ,  @Assisted



.





 @ViewModelInject



, . . : Hilt Jetpack.





  Hilt,  @InstallIn



(<>). . , @InstallIn



(ServiceComponent.class



) , , .





, , . …





. , ,  Milk,  OatMilk.  @ActivityScoped



ActivityComponent



.





, , Hilt  OatMilk  . ,  OatMilk   —  onCreate()



   onDestroy()



 .





 milk,  moreMilk   OatMilk. ,  LatteActivity,  OatMilk.





, , , ,  OatMilk:





, . , @ActivityScoped



  , ,  ActivityComponent



.





:  Milk,  Fridge  LatteActivity, ,  onCreate()



   LatteActivity, —  onDestroy()



. ,  Milk  «» ,  onDestroy()



  . ,  @ActivityRetainedScope



.





, , , , , :  Hilt.





. , , - , , -.  dagger.Provider.





, . , ,  Provider<…>



, .





( Dagger  Guice) , . Hilt, , Dagger , , .





Hilt , , ,   -, .






"Android Developer. Professional"









" Gradle Plugin"






 OTUS   . . -    .   - :












All Articles