用途:为 Kotlin Multiplatform 项目提供依赖注入方案,核心是 Koin 多平台配置,并给出平台模块与手动 DI 的替代做法。
主要能力:在共享模块的 commonMain 引入 koin-core 与 koin-test,Android 侧引入 koin-android;用 module 定义 factory、single、scoped 等作用域,支持命名依赖;通过 includes 组合共享模块与各平台模块,分别提供 Android 与 iOS 的平台实现;在 Android Application 与 iOS 初始化函数中调用 startKoin 启动,Compose Multiplatform 可在 main 中启动;Android 用 koinViewModel() 注入 ViewModel,多平台用 getScreenModel 注入 ScreenModel;测试中用 override 替换真实实现,配合 startKoin/stopKoin 管理生命周期。
使用方式:按资料中的 build.gradle.kts 片段添加依赖,编写 AppModule 与 PlatformModule,在入口调用 startKoin 并传入对应模块;测试时加载 testModule。
替代方案:提供简单 Service Locator(register/get/init)与纯 Kotlin AppContainer(lazy 属性)两种手动 DI 写法。
适用场景:KMP 共享业务逻辑、需要跨 Android/iOS 统一注入、希望便于替换 mock 进行测试的项目。
限制:资料未提供具体版本号、完整工程结构、性能或兼容性说明,也未涉及其他 DI 框架对比;示例中的部分平台实现为示意代码,实际需按项目补全。