koin是kotlin领域简单易用的依赖注入框架。
- koin的优势
koin有如下几点优势
1.1 koin让你的开发变得简单高效
Koin 是一个智能的 Kotlin 依赖注入库,让你专注于你的应用程序,而不是你的工具。Koin 为您提供了简单的工具和 API,让您构建、组装 Kotlin 相关技术到您的应用程序中,并让您轻松扩展业务。
koin使用非常简单,只需要简单几个步骤即可接入你的应用。
(1)定义模块
// Given some classes
class MyRepository()
// Inject via constructor
class MyPresenterr(val repository : MyRepository)
// just declare it
val myModule = module {
singleOf(::MyPresenterr)
singleOf(::MyRepository)
}
(2) 启动koin
fun main() {
// Just start Koin
startKoin {
// load modules
modules(myModule)
}
}
(3) 在Android中启动koin
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// start Koin!
startKoin {
// declare used Android context
androidContext(this)
// declare modules
modules(myModule)
}
}
}
(4) Android中注入对象
class MyActivity : Application() {
// Just inject your dependency
val myPresenter : MyPresenter by inject()
}
1.2 为Android准备
得益于 Kotlin 语言,Koin 扩展了 Android 平台,并提供了作为原始平台一部分的新功能。
Koin 提供了简单而强大的 API,只需使用 or 即可在 Android 组件中的任何位置检索您的依赖项
by inject()by viewModel()
1.3 为 Kotlin 多平台提供支持
在移动平台之间共享代码是主要的 Kotlin 多平台用例之一。使用 Kotlin 多平台移动,您可以构建跨平台移动应用程序和 在 Android 和 iOS 之间共享通用代码。
Koin 提供多平台依赖注入,并帮助跨本机移动应用程序和 Web/后端应用程序构建组件。
1.4 性能和生产力
Koin 是一个纯粹的 Kotlin 框架,旨在在使用和执行方面直接。它易于使用,不会影响您的编译时间,也不需要任何额外的插件配置。
- koin的引入
koin提供两种形式的实现,dsl及Annotations
2.1 koin3.3
在你的工程中引入koin
Version
下面是koin是当前的最新可用版本
koin_version= “3.3.2”
koin_android_version= “3.3.2”
koin_android_compose_version= “3.4.1”
koin_ktor= “3.3.0”
Core
// Koin Core features
implementation “io.insert-koin:koin-core:$koin_version”
// Koin Test features
testImplementation “io.insert-koin:koin-test:$koin_version”
// Koin for JUnit 4
testImplementation “io.insert-koin:koin-test-junit4:$koin_version”
// Koin for JUnit 5
testImplementation “io.insert-koin:koin-test-junit5:$koin_version”
Android
// Koin main features for Android
implementation “io.insert-koin:koin-android:$koin_android_version”
// Java Compatibility
implementation “io.insert-koin:koin-android-compat:$koin_android_version”
// Jetpack WorkManager
implementation “io.insert-koin:koin-androidx-workmanager:$koin_android_version”
// Navigation Graph
implementation “io.insert-koin:koin-androidx-navigation:$koin_android_version”
Android Jetpack Compose
// Jetpack Compose
implementation “io.insert-koin:koin-androidx-compose:$koin_android_compose_version”
Ktor
// Koin for Ktor
implementation “io.insert-koin:koin-ktor:$koin_ktor”
// SLF4J Logger
implementation “io.insert-koin:koin-logger-slf4j:$koin_ktor”
2.2 Koin Annotations
Version
koin_ksp_version= “1.1.0”
koin在maven central提供了下载
// Add Maven Central to your repositories if needed
repositories {
mavenCentral()
}
KSP Plugin
在你的根目录工程添加ksp plugin
ksp_version = “1.7.21-1.0.8″”
//at your project root
plugins {
id “com.google.devtools.ksp” version “$ksp_version”
}
kotlin app 安装
下面是如何配置你的kotlin app
// Use KSP Plugin
apply plugin: ‘com.google.devtools.ksp’
// Use KSP Generated sources
sourceSets.main {
java.srcDirs(“build/generated/ksp/main/kotlin”)
}
dependencies {
// Koin
compile “io.insert-koin:koin-core:$koin_version”
compile “io.insert-koin:koin-annotations:$koin_ksp_version”
ksp “io.insert-koin:koin-ksp-compiler:$koin_ksp_version”
}
Android app安装
下面是如何配置你的Android app
// Use KSP Plugin
apply plugin: ‘com.google.devtools.ksp’
// Use KSP Generated sources
android {
applicationVariants.all { variant ->
variant.sourceSets.java.each {
it.srcDirs += “build/generated/ksp/${variant.name}/kotlin”
}
}
}
dependencies {
// Koin for Android
implementation “io.insert-koin:koin-android:$koin_version”
implementation “io.insert-koin:koin-annotations:$koin_ksp_version”
ksp “io.insert-koin:koin-ksp-compiler:$koin_ksp_version”
}
如果使用多个 KSP 库(如 Room),则可以使用以下方式声明生成的源:
libraryVariants.all { variant ->
variant.addJavaSourceFoldersToModel(file(“build/generated/ksp/${variant.name}/kotlin”))
}
Kotlin KMP 设置
请按照官方文档中描述的 KSP 设置进行操作:带有 Kotlin 多平台的 KSP
您还可以使用Koin注释的基本设置检查Hello Koin KMP项目。
声明:来自码出Droid新高度,仅代表创作者观点。链接:https://eyangzhen.com/7646.html