
Hilt Dependency Injection Complete Guide - Modules, Scopes & Testing
Complete Hilt Dependency Injection Guide Master Hilt for managing dependencies across your Android app. @HiltAndroidApp Entry Point @HiltAndroidApp class MyApplication : Application () Module Definition @Module @InstallIn ( SingletonComponent :: class ) object RepositoryModule { @Provides @Singleton fun provideUserRepository ( api : ApiService ): UserRepository = UserRepositoryImpl ( api ) } @Provides vs @Binds // @Provides for complex instantiation @Provides fun provideApiService (): ApiService = Retrofit . Builder () . baseUrl ( BASE_URL ) . build () . create ( ApiService :: class . java ) // @Binds for interface to impl mapping @Binds fun bindRepository ( impl : UserRepositoryImpl ): UserRepository Scope Annotations @singleton : App lifetime @ViewModelScoped: ViewModel lifetime @ActivityScoped: Activity lifetime @FragmentScoped: Fragment lifetime @HiltViewModel @HiltViewModel class UserViewModel @Inject constructor ( private val repository : UserRepository ) : ViewModel () { // View
Continue reading on Dev.to Tutorial
Opens in a new tab

