본문으로 건너뛰기

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

버전 카탈로그를 사용하는 경우:

[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

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")
}
정보

이제 Koin 자습서를 계속 진행하여 Koin 사용법을 배울 수 있습니다: Android App Tutorial

Jetpack Compose 또는 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

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

이제 Koin 기능을 Ktor 애플리케이션에 설치할 준비가 되었습니다.

fun Application.main() {
install(Koin) {
slf4jLogger()
modules(appModule)
}
}
정보

이제 Koin 자습서를 계속 진행하여 Koin 사용법을 배울 수 있습니다: Ktor App Tutorial

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