banner
NEWS LETTER

Koin在项目中的使用

Scroll down

在项目中使用 Koin

Koin框架,适用于使用Kotlin开发 ,是一款轻量级的依赖注入框架,无代理,无代码生成,无反射。

相对于dagger 而言更加适合Kotlin语言。

如果要在项目中使用 Koin,需要在项目中添加 Koin 的依赖,我们只需要在 App 模块中的 build.gradle 文件中添加以下代码。

1
2
3
4
5
6
7
8
9
// Koin for Kotlin
implementation "org.koin:koin-core:$koin_version"
implementation "org.koin:koin-core-ext:$koin_version"

// Koin for AndroidX依赖注入
implementation "org.koin:koin-androidx-scope:$koin_version"
implementation "org.koin:koin-androidx-viewmodel:$koin_version"
implementation "org.koin:koin-androidx-fragment:$koin_version"
implementation "org.koin:koin-androidx-ext:$koin_version"

如果需要在项目中使用 Koin 进行依赖注入,需要在 Application 或者其他的地方进行初始化。

1
2
3
4
5
6
7
8
9
10
11
class KoinApplication : Application() {

override fun onCreate() {
super.onCreate()
startKoin {
AndroidLogger(Level.DEBUG)
androidContext(this@KoinApplication)
modules(appModule)
}
}
}

koin注入,很简单,只需要几行代码就可以完成。

1
2
3
4
5
6
7
8
9
10
val moduleHome = module {
single {
RetrofitManager.initRetrofit().getService(HomeService::class.java)
}
single {
HomeRepo(get())
}
viewModel { HomeViewModel(get()) }

}

然后在application中添加

1
2
// 添加所有需要在 Application 中进行初始化的 module
val appModule = listOf(repoModule)

总结

1
2
因为 Koin 基于 kotlin 基础上进行开发的,使用了 kotlin 强大的语法糖(例如 Inline、Reified 等等)和函数式编程,所以Koin 不需要用到反射,
因为在 Koin 中不需要使用注解,也不需要 kapt,这意味着没有额外的代码生成,所有的代码都是 Kotlin 原始代码,Koin 仅使用功能解析,无额外代码生成。
其他文章
目录导航 置顶
  1. 1. 在项目中使用 Koin
  2. 2. 总结
请输入关键词进行搜索