Una guía práctica para usar Hilt con Kotlin

Invitamos a los futuros alumnos del curso "Desarrollador de Android. Profesional" a visitar la lección abierta sobre el tema "Cómo escribir un complemento de Gradle".







También compartimos la traducción de un artículo útil.






Una forma sencilla de utilizar la inyección de dependencias en aplicaciones de Android

Hilt  es una nueva biblioteca de inyección de dependencias construida sobre  Dagger . Le permite usar las capacidades de Dagger en aplicaciones de Android de una manera simplificada. Este tutorial describe la funcionalidad básica de la biblioteca y proporciona algunos fragmentos de código para ayudarlo a comenzar a usar Hilt en sus proyectos.





Configuración de Hilt

Para configurar Hilt en su aplicación, primero siga las instrucciones del tutorial: Instalación 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