// the find
jarroyoesp/KotlinMultiPlatform
Kotlin MultiPlatform App (Android, iOS, JVM & JS). MVVM/MVP - Kotlin MultiPlatform
A 2020-era sample app demonstrating Kotlin Multiplatform targeting Android, iOS, JVM (JavaFX), and JS from a single shared module. It uses Ktor for networking, SQLDelight for local storage, and wires everything together with Dagger 2 on Android. Useful as a historical reference for how KMP project structure looked before the tooling matured, not as a template for new projects.
The shared module is genuinely cross-platform — SQLDelight drivers, dispatchers, and actual/expect are implemented for all four targets, not just Android+iOS. The architecture layers (domain → repository → usecase → presenter/viewmodel) are cleanly separated in commonMain, so the pattern is easy to follow. Tests cover use cases and presenters with MockK, which was non-trivial to set up for KMP at the time.
Pinned to Kotlin 1.3.50 and a 2019-era Gradle setup — the KMP API has changed substantially since then (new memory model, new multiplatform plugin, Compose Multiplatform) and this won't build without significant migration work. Dagger 2 is used only on Android; there's no shared DI solution, which is a real gap for KMP. The JS target is a toy: a single weather call with no SQLDelight persistence, and it requires a manual npm workaround to even run. Last commit April 2020 — abandoned well before the KMP toolchain stabilized.