| name | android-di |
| description | Configure Hilt dependency injection with proper scoping, modules, and constructor injection in Android. Use when setting up Hilt DI, component scoping, or defining modules. (triggers: **/*Module.kt, **/*Component.kt, @HiltAndroidApp, @Inject, @Provides, @Binds) |
Android Dependency Injection (Hilt)
Priority: P0
1. Bootstrap Hilt
- Annotate
Application class with @HiltAndroidApp.
- Annotate Activities/Fragments with
@AndroidEntryPoint.
See module templates for bootstrap and module examples.
2. Define Modules
- Use
@Binds (abstract class) over @Provides when possible — generates smaller code.
- Be explicit with
@InstallIn (SingletonComponent, ViewModelComponent).
See module templates for @Binds examples.
3. Prefer Constructor Injection
- Use
@Inject constructor(...) over field injection.
- Use
@AssistedInject for runtime parameters.
Anti-Patterns
- No Manual Dagger Components: Use Hilt — it generates all the wiring.
- No Field Injection in Logic: Use constructor injection; field injection only in Android
framework classes.
References