Koin
Koinをプロジェクトにセットアップするために必要なものすべて
現在のバージョン
すべてのKoinパッケージはMaven Centralで確認できます。
現在利用可能なKoinのバージョンは以下の通りです。
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")
}INFO
ここからKoinチュートリアルに進み、Koinの使用方法について学ぶことができます:Kotlin アプリケーションチュートリアル
Android
Androidアプリケーションにkoin-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")
}INFO
ここからKoinチュートリアルに進み、Koinの使用方法について学ぶことができます:Android アプリケーションチュートリアル
Jetpack Compose または Compose Multiplatform
マルチプラットフォームアプリケーションにkoin-composeの依存関係を追加し、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の依存関係を追加し、共有Kotlinパートに使用します:
dependencies {
implementation("io.insert-koin:koin-core:$koin_version")
}INFO
ここからKoinチュートリアルに進み、Koinの使用方法について学ぶことができます:Kotlin Multiplatform アプリケーションチュートリアル
Ktor
Ktorアプリケーションにkoin-ktorの依存関係を追加します:
dependencies {
// Koin for Ktor
implementation("io.insert-koin:koin-ktor:$koin_ktor")
// SLF4J Logger
implementation("io.insert-koin:koin-logger-slf4j:$koin_ktor")
}これでKtorアプリケーションにKoin機能をインストールする準備ができました:
fun Application.main() {
install(Koin) {
slf4jLogger()
modules(appModule)
}
}INFO
ここからKoinチュートリアルに進み、Koinの使用方法について学ぶことができます:Ktor アプリケーションチュートリアル
Koin BOM
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")
}