Component - Dependency injection with Hilt
This UI component demonstrates how Hilt injects dependencies into an Android Kotlin app. It shows a simple screen where a message from a repository is displayed, provided by Hilt's dependency injection.
This UI component demonstrates how Hilt injects dependencies into an Android Kotlin app. It shows a simple screen where a message from a repository is displayed, provided by Hilt's dependency injection.
Activity (MainActivity)
└── Scaffold (MaterialTheme)
└── Column
├── Text (Message from Repository)
└── Button (Refresh Message)@HiltAndroidApp annotation in an Android application?@AndroidEntryPoint on the Activity allows Hilt to generate necessary code for injection.@Inject lateinit var to declare dependencies that Hilt will provide automatically.repository.getData() is called?@Module
@InstallIn(SingletonComponent::class)
object DataModule {
@Provides
fun provideData(): String = "Hello Hilt"
}
class Repository @Inject constructor(private val data: String) {
fun getData() = data
}@Module
@InstallIn(ActivityComponent::class)
object NetworkModule {
@Provides
fun provideRetrofit(): Retrofit {
return Retrofit.Builder().baseUrl("https://api.example.com").build()
}
}
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject lateinit var retrofit: Retrofit
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}Logger using Hilt in your Android app. Which approach correctly distinguishes these implementations for injection?Pass the test and this pattern moves unknown