Koin
プロジェクトにKoinをセットアップするために必要なすべて
現在のバージョン
すべてのKoinパッケージはmaven 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")
}