// the find
MohamedRejeb/Pokedex
Pokedex - a Kotlin Multiplatform app, built with Compose multiplatform, Coroutines, Flow, Koin, Ktor, SqlDelight, Decompose, MVIKotlin, and Material 3 based on MVI architecture
A Kotlin Multiplatform sample app showing how to build a Pokédex that runs on Android, iOS, and desktop from a single shared codebase. It's aimed at developers learning KMP architecture patterns — MVI with MVIKotlin and Decompose for navigation — rather than anyone shipping a real product.
The 99% shared code claim is real: platform-specific files are thin shims for dispatchers, SQL drivers, and HTTP client config, with all business logic and UI in commonMain. Using Decompose for navigation is the right call for KMP — it handles back stack correctly on iOS without hacking around the Compose multiplatform limitations. SqlDelight for local caching is a solid choice; the generated type-safe queries work the same across all targets. The stack is opinionated and consistent — Koin, Ktor, SqlDelight, Decompose all have strong KMP support, so this isn't a random pile of libraries.
There are zero tests that do anything real — the test files in commonTest, androidUnitTest, iosTest, and desktopTest are all empty stubs. That's a problem if you're trying to learn how to test MVI stores or repositories in KMP. The Pods directory is checked into git, which will cause merge pain on any team with more than one iOS dev. The desktop experience also appears to be a bonus rather than a first-class target — no mention of packaging, no installer, no platform-specific UX adaptations beyond window sizing. Last meaningful commit was over a year ago, so it's pinned to whatever KMP versions were current in early 2023.