Migration Guide
The new branch of Koin 3.x is bringing latest features & fixes. It brings Multiplatform, Jetpack Compose and much more. You can use it even if you don't use those features, to benefit from the latest fixes.
Migrating to latest version 🚀​
Koin v2​
Android & AndroidX Module​
The following modules are available for Android. Be sure to use the koin-androidx modules, as there are based on the latest AndroidX library support:
// Koin AndroidX Scope features
implementation "io.insert-koin:koin-androidx-scope:$koin_version"
// Koin AndroidX ViewModel features
implementation "io.insert-koin:koin-androidx-viewmodel:$koin_version"
// Koin AndroidX Fragment features
implementation "io.insert-koin:koin-androidx-fragment:$koin_version"
// Koin AndroidX WorkManager
implementation "io.insert-koin:koin-androidx-workmanager:$koin_version"
// Koin AndroidX Jetpack Compose
implementation "io.insert-koin:koin-androidx-compose:$koin_version"
// Koin AndroidX Experimental features
implementation "io.insert-koin:koin-androidx-ext:$koin_version"
Koin v3​
The new Koin core is now Multiplatform. You can use it even if your project is not Kotlin Multiplatform.
Reimporting for new API​
If you have seen unresolved Koin API import, you can try to remove/reimport the used API as some packages has been moved in the Koin core module. See new section
Kotlin Core & JVM features​
KoinComponent and linked extension have been moved to package org.koin.core.component. Please reimport related APIs (KoinComponent,inject, get...).
Java/JVM Specific API are isolated in koin-core-jvm part of Koin core. Here are the following components:
-
PropertyRegistry:
savePropertiesloadPropertiesFromFileloadEnvironmentProperties
-
KoinJavaComponent
-
KoinApplication:
filePropertiesenvironmentProperties
-
Scope extensions for Java:
org.koin.core.scope.ScopeJVMKt
Android Modules​
In v3, the koin-android modules is using AndroidX API, and merge also all Scope/Fragment/ViewModel API. You don't need anymore to specify koin-androidx-fragment, koin-androidx-viewmodel or koin-androidx-scope as there are all in the koin-android module:
// Koin main features for Android (Scope,ViewModel ...)
implementation "io.insert-koin:koin-android:$koin_version"
// Koin Java Compatibility
implementation "io.insert-koin:koin-android-compat:$koin_version"
// Koin for Jetpack WorkManager
implementation "io.insert-koin:koin-androidx-workmanager:$koin_version"
// Koin for Jetpack Compose
implementation "io.insert-koin:koin-androidx-compose:$koin_version"
Java Compat API has been extracted in koin-android-compat module.