メインコンテンツまでスキップ

Koin

プロジェクトにKoinをセットアップするために必要なすべて

現在のバージョン

すべてのKoinパッケージはmaven centralで確認できます。

現在利用可能なバージョンは以下のとおりです。

ProjectVersion
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")

バージョンカタログを使用している場合:

[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 App Tutorial

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 App Tutorial

Jetpack Compose or Compose Multiplatform

KoinとCompose APIを使用するために、koin-composeの依存関係をマルチプラットフォームアプリケーションに追加します。

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

共有Kotlin部分のために、koin-coreの依存関係をマルチプラットフォームアプリケーションに追加します。

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

これからKoinのチュートリアルに進み、Koinの使用方法を学ぶことができます:Kotlin Multiplatform App Tutorial

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 App Tutorial

Koin BOM (Bill of Materials)

Koin部品表 (Koin Bill of Materials (BOM)) を使用すると、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")
}