// the find
razaghimahdi/Shopping-By-KMP
This is a cross-platform application that is built using Jetpack Compose Multiplatform, a declarative framework for sharing UIs across multiple platforms with Kotlin.
A Compose Multiplatform shopping app that now ships a full-stack monorepo: a shared Kotlin/Compose client targeting Android, iOS, desktop, web, TV and Automotive, plus a Ktor+MySQL backend with JWT auth. It's aimed at people learning KMP end-to-end — how to structure a Clean Architecture/MVI app and wire a real backend instead of mocking data.
The module boundaries (:core, :server, :app:shared, per-platform :app:*) are a legitimate reference for how to lay out a multi-target KMP Gradle project, which is still something most tutorials get wrong. Having a real Ktor/Exposed/MySQL server in the same repo instead of a fake JSON API is unusual for a sample app and makes the networking layer (Ktor client, JWT, Coil3 loading) demonstrably real rather than hand-waved. Six client targets built on one shared Compose UI module is a decent stress test of where Compose Multiplatform actually holds up across platforms today.
DB credentials are set by hand-editing DatabaseFactory.kt rather than through environment variables or a config file, which is exactly the kind of thing that gets committed by accident — there's no secrets story here. Test coverage is essentially one file (a single androidHostTest), so six UI targets and a backend with auth are riding on no meaningful test suite. Scope has grown faster than depth: Automotive, TV, web and desktop were all added in short order, and it's unclear from the README how much each target beyond Android/iOS has actually been exercised versus just compiling. Also no mention of any migration tooling for the MySQL schema — it auto-generates tables on run, which won't survive real schema changes gracefully.