PeopleInSpace is a Kotlin Multiplatform sample project using SwiftUI, Jetpack Compose, Compose for Wear/Desktop/Web, and a Ktor backend to serve space-related data. It targets multiple platforms and includes a shared KMP codebase, with a small Ktor backend and an MCP server option.
Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).
What it is
Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Compose for Wear OS, Compose for Desktop and Compose for Web clients along with Ktor backend. Currently running on Android, Wear OS, iOS, Desktop, Web, JVM back end, and MCP server using shared KMP code.
How it works
Uses a shared KMP module (common) for Ktor, SQLDelight, Koin, view models and shared Compose Multiplatform UI. Individual modules provide platform-specific clients:
- app: Android (Jetpack Compose) including Glance widget
- wearApp: Wear OS (Compose for Wear OS)
- PeopleInSpaceSwiftUI: iOS (SwiftUI)
- compose-desktop: Desktop client
- compose-web: Web client (Wasm)
- backend: Ktor server providing data from The Space Devs API and Open Notify API
- mcp-server: Model Context Protocol server exposing shared KMP code
Getting started
Requirements: JDK 17, a recent version of Android Studio (for Android/Wear) and Xcode (for iOS).
Install/run commands from README:
- Android: run the
appconfiguration from Android Studio (or./gradlew :app:installDebug) - Wear OS: run the
wearAppconfiguration from Android Studio (or./gradlew :wearApp:installDebug) - iOS: open
PeopleInSpaceSwiftUIin Xcode and run from there - Desktop:
./gradlew :compose-desktop:run - Web (Wasm):
./gradlew :compose-web:wasmJsBrowserDevelopmentRun - Backend:
./gradlew :backend:run(or runServer.ktdirectly from Android Studio). After doing that you should then for example be able to openhttp://localhost:9090/astros_local.jsonin a browser.
Tests: ./gradlew :common:jvmTest; Maestro UI test flow: maestro test maestro/PeopleInSpace.flow.
Backend deployment
./gradlew :backend:shadowJar
gcloud app deploy backend/build/libs/backend-all.jar --appyaml=backend/src/jvmMain/appengine/app.yaml





