Irelandjoreilly/PeopleInSpace
Kotlin Multiplatform sample with SwiftUI, Jetpack Compose, Compose for Wear, Compose for Desktop, and Compose for Web clients along with Ktor backend.
Thành tựu nổi bật
Những danh hiệu mới nhất của dự án
#1 Repository Của Tuần
#1 Repository Của Tuần
#1 Repository Của Tuần
🚀 Một codebase Kotlin, chạy được gần như mọi nơi — từ Android, iOS, Wear OS đến Web
Dự án sample KMP kinh điển: cùng một codebase Kotlin, nhưng có client cho Android, iOS, Wear OS, Desktop, Web (Wasm) và cả MCP server.
PeopleInSpace của John O'Reilly là một trong những Kotlin Multiplatform sample được nhắc đến nhiều nhất — được chọn làm ví dụ chính thức trong tài liệu Kotlin Multiplatform Mobile docs và Google Dev Library. Ý tưởng đơn giản: lấy dữ liệu từ The Space Devs API và Open Notify PeopleInSpace API để hiển thị danh sách phi hành gia đang ở trên ISS, kèm vị trí hiện tại của trạm.
✨ Điểm nổi bật
- Chạy trên 8 nền tảng từ một codebase: Android (Jetpack Compose), iOS (SwiftUI), Wear OS (Compose for Wear OS), Desktop (Compose for Desktop), Web (Compose cho Web — Wasm), Android App Widget (Glance API), JVM backend (Ktor) và cả MCP server dùng chung shared KMP code.
- MCP server: dùng chính shared code Kotlin Multiplatform để phục vụ như một MCP server — ví dụ hay cho việc tái sử dụng logic giữa nhiều kiểu client.
- Backend Ktor nhỏ gọn: chạy bằng
./gradlew :backend:run, có thể deploy lên Google App Engine bằng shadowJar. - Chủ đích tối giản: tác giả cố tình giữ repo minimalist để người mới học KMP dễ thấy được các thành phần chính chuyển động ra sao, thay vì bị rối bởi quá nhiều layer.
- Hỗ trợ cả Swift Package Executable: có module chạy như command-line app từ Swift gọi sang code Kotlin.
- Hướng dẫn chi tiết: hơn 10 bài blog đi kèm giải thích từng phần, từ Koin, SQLDelight, Flow + Combine, đến Swift async/await khi gọi code KMP.
💡 Vì sao đáng chú ý
Giá trị lớn nhất của PeopleInSpace không nằm ở tính năng app — mà ở chỗ nó là một "bản đồ" cho toàn bộ hệ sinh thái Kotlin Multiplatform. Bạn muốn xem Compose Multiplatform chạy trên desktop thế nào? Có sẵn module. Muốn thử Compose cho Web bằng Wasm? Có luôn. Muốn biết SwiftUI gọi shared code Kotlin ra sao? iOS client là câu trả lời.
Điểm đặc biệt là mới nhất còn có MCP server dùng chung shared code — cho thấy KMP không chỉ giới hạn ở UI mobile mà còn có thể phục vụ cho cả AI tooling. Với người đang tìm hiểu KMP, đây là repo nên đọc đầu tiên trước khi chuyển sang các sample lớn hơn như KaMPKit.
#KotlinMultiplatform #KMP #JetpackCompose #SwiftUI #TiniX
Dự án tương tự
Khám phá các dự án và mô hình AI khác có sự tương đồng.
基于无障碍,高级选择器,订阅规则的自定义屏幕点击安卓应用 | An Android APP with custom screen tapping based on Accessibility, Advanced Selectors, and Subscription Rules
Flutter makes it easy and fast to build beautiful apps for mobile and beyond
🩵 A free, open-source app store for developers' releases on GitHub, Codeberg & Forgejo — browse, discover, and install apps with one click. Formerly GitHub Store.
Koin - pragmatic dependency injection for Kotlin & Kotlin Multiplatform. Koin DSL or Koin Annotations (JSR-330), compile safe with the Koin Compiler Plugin.
HTTP client generator / KSP plugin for Kotlin Multiplatform (Android, iOS, Js, Jvm, Native, WasmJs)) using KSP and Ktor clients inspired by Retrofit https://foso.github.io/Ktorfit
An awesome list that curates the best Flutter libraries, tools, tutorials, articles and more.