PeopleInSpace is a Kotlin Multiplatform sample project that demonstrates building native clients across Android, iOS, desktop, web, and wearable platforms from shared code.
The project solves the problem of code duplication across platforms by using Kotlin Multiplatform to share business logic, data models, and networking code. It fetches real-time data about people currently in space and the International Space Station position from public APIs, serving this data through a Ktor backend that all clients consume. The approach uses platform-specific UI frameworks—Jetpack Compose for Android, SwiftUI for iOS, Compose for Desktop, Compose for Web with WebAssembly, and WinUI 3 for Windows—while keeping the core logic unified in a shared module.
This project suits teams evaluating Kotlin Multiplatform for production use or learning how to structure a multiplatform application. It demonstrates practical patterns for dependency injection with Koin, database access with SQLDelight, and coroutine-based networking. The sample includes multiple client implementations on a single codebase, making it valuable for understanding platform-specific UI integration while maintaining shared code. It also shows deployment of the backend to Google App Engine and includes UI testing with Maestro for the Android client.
The project maintains active development across its multiplatform targets, with recent updates to Kotlin and demonstrated support for emerging platforms like WebAssembly-based web clients and Windows through WinUI 3. The codebase includes comprehensive module organization separating concerns between shared code, platform-specific clients, and backend services, with clear build instructions for each target. The project is recognized in official Kotlin Multiplatform documentation and Google's developer library, indicating ongoing alignment with platform evolution and best practices.