Skip to main content

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:

    • saveProperties
    • loadPropertiesFromFile
    • loadEnvironmentProperties
  • KoinJavaComponent

  • KoinApplication:

    • fileProperties
    • environmentProperties
  • 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.