finds.dev← search

// the find

MohamedRejeb/Pokedex

★ 846 · Kotlin · Apache-2.0 · updated Mar 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →