跳到主要内容

Koin

在你的项目中设置 Koin 所需的一切

当前版本

你可以在 maven central 上找到所有的 Koin 包。

以下是当前可用的版本:

项目版本
koin-bomMaven Central
koin-coreMaven Central
koin-core-viewmodelMaven Central
koin-core-viewmodel-navigationMaven Central
koin-core-coroutinesMaven Central
koin-testMaven Central
koin-test-junit4Maven Central
koin-test-junit5Maven Central
koin-androidMaven Central
koin-android-testMaven Central
koin-android-compatMaven Central
koin-androidx-navigationMaven Central
koin-androidx-workmanagerMaven Central
koin-androidx-startupMaven Central
koin-composeMaven Central
koin-compose-viewmodelMaven Central
koin-compose-viewmodel-navigationMaven Central
koin-androidx-composeMaven Central
koin-androidx-compose-navigationMaven Central
koin-ktorMaven Central
koin-logger-slf4jMaven Central

Gradle 设置

Kotlin

从 3.5.0 版本开始,你可以使用 BOM 版本来管理所有 Koin 库的版本。在你的应用中使用 BOM 时,你不需要为 Koin 库的依赖项本身添加任何版本。当你更新 BOM 版本时,你正在使用的所有库都会自动更新到它们的新版本。

koin-bom BOM 和 koin-core 依赖添加到你的应用程序:

implementation(project.dependencies.platform("io.insert-koin:koin-bom:$koin_version"))
implementation("io.insert-koin:koin-core")

如果你正在使用 version catalogs(版本目录):

[versions]
koin-bom = "x.x.x"
...

[libraries]
koin-bom = { module = "io.insert-koin:koin-bom", version.ref = "koin-bom" }
koin-core = { module = "io.insert-koin:koin-core" }
...
dependencies {
implementation(project.dependencies.platform(libs.koin.bom))
implementation(libs.koin.core)
}

或者使用旧的方式来指定 Koin 的确切依赖版本:

dependencies {
implementation("io.insert-koin:koin-core:$koin_version")
}

现在你可以开始 Koin 了:

fun main() {
startKoin {
modules(...)
}
}

如果你需要测试功能:

dependencies {
// 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")
}
信息

从现在开始,你可以继续学习 Koin 教程,了解如何使用 Koin:Kotlin 应用教程

Android

koin-android 依赖添加到你的 Android 应用程序:

dependencies {
implementation("io.insert-koin:koin-android:$koin_android_version")
}

现在你可以在你的 Application 类中启动 Koin 了:

class MainApplication : Application() {
override fun onCreate() {
super.onCreate()

startKoin {
modules(appModule)
}
}
}

如果你需要额外的功能,添加以下需要的包:

dependencies {
// 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")
// App Startup
implementation("io.insert-koin:koin-androidx-startup:$koin_android_version")
}
信息

从现在开始,你可以继续学习 Koin 教程,了解如何使用 Koin:Android 应用教程

Jetpack Compose 或 Compose Multiplatform

koin-compose 依赖添加到你的 multiplatform(多平台)应用程序中,用于使用 Koin & Compose API:

dependencies {
implementation("io.insert-koin:koin-compose:$koin_version")
implementation("io.insert-koin:koin-compose-viewmodel:$koin_version")
implementation("io.insert-koin:koin-compose-viewmodel-navigation:$koin_version")
}

如果你正在使用纯 Android Jetpack Compose,你可以使用

dependencies {
implementation("io.insert-koin:koin-androidx-compose:$koin_version")
implementation("io.insert-koin:koin-androidx-compose-navigation:$koin_version")
}

Kotlin Multiplatform

koin-core 依赖添加到你的 multiplatform(多平台)应用程序中,用于共享的 Kotlin 部分:

dependencies {
implementation("io.insert-koin:koin-core:$koin_version")
}
信息

从现在开始,你可以继续学习 Koin 教程,了解如何使用 Koin:Kotlin Multiplatform 应用教程

Ktor

koin-ktor 依赖添加到你的 Ktor 应用程序:

dependencies {
// Koin for Ktor
implementation("io.insert-koin:koin-ktor:$koin_ktor")
// SLF4J Logger
implementation("io.insert-koin:koin-logger-slf4j:$koin_ktor")
}

现在你可以将 Koin 功能安装到你的 Ktor 应用程序中了:

fun Application.main() {
install(Koin) {
slf4jLogger()
modules(appModule)
}
}
信息

从现在开始,你可以继续学习 Koin 教程,了解如何使用 Koin:Ktor 应用教程

Koin BOM

Koin Bill of Materials (BOM)(Koin 物料清单)允许你仅通过指定 BOM 的版本来管理所有 Koin 库的版本。 BOM 本身具有指向不同 Koin 库的稳定版本的链接,以便它们可以很好地协同工作。 在你的应用中使用 BOM 时,你不需要为 Koin 库的依赖项本身添加任何版本。 当你更新 BOM 版本时,你正在使用的所有库都会自动更新到它们的新版本。

dependencies {
// Declare koin-bom version
implementation platform("io.insert-koin:koin-bom:$koin_bom")

// Declare the koin dependencies that you need
implementation("io.insert-koin:koin-android")
implementation("io.insert-koin:koin-core-coroutines")
implementation("io.insert-koin:koin-androidx-workmanager")

// If you need specify some version it's just point to desired version
implementation("io.insert-koin:koin-androidx-navigation:1.2.3-alpha03")

// Works with test libraries too!
testImplementation("io.insert-koin:koin-test-junit4")
testImplementation("io.insert-koin:koin-android-test")
}