用途:为 Kotlin/Android 项目提供 Koin 依赖注入的实践模式,帮助组织模块、管理生命周期并注入 ViewModel。
主要能力:
- 模块设置:用 module { } 定义 single(单例)、factory(每次新实例),并按 AppModule、NetworkModule、FeatureModule 等拆分。
- 应用初始化:在 Application 的 onCreate 中调用 startKoin,传入 androidContext(this@MyApp) 与 modules(...)。
- ViewModel 注入:Compose 中用 koinViewModel() 获取;带参数时用 koinViewModel { parametersOf(itemId) },并在 viewModel { params -> ... } 中通过 params.get() 读取。
- 作用域:用 scope<MainActivity> { scoped { ... } } 定义 Activity 作用域,配合 KoinScopeComponent 与 activityScope() 使用。
- 限定符:用 named("auth")、named("default") 区分同类型实例,注入处用 @Named("auth")。
- 测试:继承 KoinTest,使用 KoinTestRule.create { modules(testModule) },以 mockk() 替换依赖,通过 by inject() 获取实例。
使用方式:按功能拆分模块,在 startKoin 中统一注册;需要新实例用 factory,需要共享用 single;涉及生命周期用 scope;同类型多实例用 named 限定符。
适用场景:Android/Kotlin 应用的依赖注入、Compose 界面 ViewModel 获取、单元测试中替换依赖。
限制:资料未提供 Koin 版本、Gradle 依赖坐标、性能数据与收费信息;示例中的 Room、Ktor、mockk 等需项目自行配置。