Un guide pratique sur l'utilisation de Hilt avec Kotlin

Nous invitons les futurs étudiants du cours "Développeur Android. Professionnel" à visiter la leçon ouverte sur le thème "Rédaction d'un plugin Gradle"







Nous partageons également la traduction d'un article utile.






Un moyen simple d'utiliser l'injection de dépendances dans les applications Android

Hilt  est une nouvelle bibliothèque d'injection de dépendances construite sur  Dagger . Il vous permet d'utiliser les capacités de Dagger dans les applications Android de manière simplifiée. Ce didacticiel décrit les fonctionnalités de base de la bibliothèque et fournit des extraits de code pour vous aider à utiliser Hilt dans vos projets.





Installation de Hilt

Pour configurer Hilt dans votre application, suivez d'abord les instructions du didacticiel: Installation de 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