Eine praktische Anleitung zur Verwendung von Hilt mit Kotlin

Wir laden zukünftige Studenten des Kurses "Android Developer. Professional" ein , die offene Lektion zum Thema "Schreiben eines Gradle-Plugins" zu besuchen.







Wir teilen auch die Übersetzung eines nützlichen Artikels.






Eine einfache Möglichkeit, die Abhängigkeitsinjektion in Android-Apps zu verwenden

Hilt  ist eine neue Abhängigkeitsinjektionsbibliothek, die auf Dagger basiert . Damit können Sie die Funktionen von Dagger in Android-Apps auf vereinfachte Weise nutzen. Dieses Tutorial beschreibt die grundlegenden Funktionen der Bibliothek und enthält einige Codefragmente, die Ihnen den Einstieg in die Verwendung von Hilt in Ihren Projekten erleichtern.





Hilt einrichten

Befolgen Sie zum Einrichten von Hilt in Ihrer Anwendung zunächst die Anweisungen aus dem Lernprogramm: Installieren von 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