State of popular libraries/APIs in Android apps and their KMP support state
KMP support - support Kotlin Multiplatform with more than one target
Library/Techology | Has KMP support | Supported Targets | KMP Alternatives | Useful Links |
---|---|---|---|---|
Jetpack Room | in 2.7 (base features only) | Android, iOS, JVM | SQLDelight | Guide "Migrate Room to KMP" |
Moshi | ❌ | KotlinX Serialization | ||
Jetpack Paging | ✅ | - | ||
Jetpack Collections | ✅ | Kotlin stdlib | ||
Jetpack Viewmodel | ✅ | - | Using Common ViewModel | |
Jetpack Lifecycle | ✅ | - | Using Common Lifecycle | |
Jetpack Livedata | ❌ | StateFlow from KotlinX Coroutines, Reaktive | ||
Jetpack Compose | JetBrains Compose Multiplatform | Android, Desktop JVM, iOS (Beta), WASM (Alpha) | - | |
Android Resources | ❌ | Compose Multiplatform Resources | ||
Jetpack Compose Navigation | Jetbrains Compose Navigation | Android, iOS, JVM | Voyager, Decompose, Appyx, PreCompose | Using Common Navigation |
Glide | ❌ | - | CoIL, Kamel, Compose ImageLoader | - |
CoIL | 3.0 | Android, JVM, iOS, macOS, JS, WASM | - | Coil KMP Migration |
Shared Preferences | ❌ | - | Jetpack DataStore | - |
Jetpack DataStore | 1.1.0 | Android, iOS, JVM, Linux, macOS, JVM | - | - |
Build Config (AGP feature) | - | - | BuildKonfig | - |
All libraries that has been writtent in Java or Kotlin for JVM and can be used only on JVM or Android. They have no planned KMP support or possibility to do it in future. Projects that use libraries/APIs from the table below must be replaced to use in KMP projects.
Library/Techology | KMP Alternatives | Useful Links |
---|---|---|
Retrofit | Ktorfit | |
OkHttp | Ktor Client | |
RxJava | Reaktive, KotlinX Coroutines + Flow | |
APT/KAPT | KSP | |
Java Dynamic Proxy | Code generation with KSP/Gradle | |
Java Date | KotlinX-datetime | |
GSON | KotlinX Serialization | |
Java I/O, Java NIO | OkIO | |
Dagger/Hilt | Koin, Kodein, Manual DI, etc. | |
Timber | Khronicle |