Details

Language / Topic
kotlinKotlin
Category
Libraries

Rules

balanced
- Define modules with `module { single { ServiceImpl() as Service } }` — use `single` for singletons and `factory` for new instances per injection.
- Inject in Android ViewModels with `by viewModel()` delegate and in classes with `by inject()` — Koin resolves dependencies at runtime.
- Use `koinApplication { modules(appModule, networkModule) }` to compose modules — organize by feature, not by layer.
- Use `get()` for dependency resolution within module definitions.
- Use `by inject<T>()` for lazy property injection in Activities/Fragments.
- Use `viewModel { }` for Android ViewModel scoping with `by viewModel<T>()` in UI.
- Organize modules by feature: `networkModule`, `databaseModule`, `featureModule`.