Jetpack Compose and SwiftUI based Kotlin Multiplatform sample project (based on CityBikes API).
Running on
- iOS (SwiftUI)
- Android (Jetpack Compose)
- Desktop (Compose for Desktop)
- Web (Wasm based Compose for Web)
- Swift Executable Package
Related posts:
- Using SwiftUI and Compose to develop App Widgets on iOS and Android
- Bridging the gap between Swift 5.5 concurrency and Kotlin Coroutines with KMP-NativeCoroutines
- Creating a Swift command line app that consumes Kotlin Multiplatform code - Part 2
- Using kotlin-inject in a Kotlin/Compose Multiplatform project
![Screenshot 2023-12-02 at 15 01 25](https://private-user-images.githubusercontent.com/6302/287455815-3e3092cd-261f-49a9-a0b3-bb6631a9d119.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU1MzY2OTYsIm5iZiI6MTcyNTUzNjM5NiwicGF0aCI6Ii82MzAyLzI4NzQ1NTgxNS0zZTMwOTJjZC0yNjFmLTQ5YTktYTBiMy1iYjY2MzFhOWQxMTkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDkwNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA5MDVUMTEzOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjNlZTNlOTlhZTA0NjliYjk4OTRjZjkwZDI3MmNhOWE2NThmOTkxYzA3ZDAxNmE0MWEwOTRmNWY5ZWIzZmQzNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.XWWGqYF65UN5vN9nONBEXwL-4AfVxUgpFIpTB2G7FXI)
![Screenshot 2023-12-02 at 14 10 34](https://private-user-images.githubusercontent.com/6302/287452907-db821735-a8eb-4865-8723-4a6bb2de1f9f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU1MzY2OTYsIm5iZiI6MTcyNTUzNjM5NiwicGF0aCI6Ii82MzAyLzI4NzQ1MjkwNy1kYjgyMTczNS1hOGViLTQ4NjUtODcyMy00YTZiYjJkZTFmOWYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDkwNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA5MDVUMTEzOTU2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MmMxZTc4OTQwYzU1MWFhMWVmZDk5YTFlMGIyMDNkODI5MDYwMzllOWRiMGZlNjAzZjdkNmY3ODhlMzhiNWE4YSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.P_10UuFqRFoKvuDrYY49RNJIOHb5VzkJpwVhIZwZ4yI)
Need to use at least Android Studio Arctic Fox to build/run the Android client.
Requires Xcode 13.2 or later (due to use of new Swift 5.5 concurrency APIs). When opening iOS project remember to open .xcworkspace
file (and not .xcodeproj
one)
This client is available in compose-desktop
module. Note that you need to use appropriate version of JVM when running (works for example with Java 11)
Note that this makes use of https://github.com/Shusshu/android-flags for flag images shown.
- PeopleInSpace (https://github.com/joreilly/PeopleInSpace)
- GalwayBus (https://github.com/joreilly/GalwayBus)
- Confetti (https://github.com/joreilly/Confetti)
- BikeShare (https://github.com/joreilly/BikeShare)
- FantasyPremierLeague (https://github.com/joreilly/FantasyPremierLeague)
- ClimateTrace (https://github.com/joreilly/ClimateTraceKMP)
- GeminiKMP (https://github.com/joreilly/GeminiKMP)
- MortyComposeKMM (https://github.com/joreilly/MortyComposeKMM)
- StarWars (https://github.com/joreilly/StarWars)
- WordMasterKMP (https://github.com/joreilly/WordMasterKMP)
- Chip-8 (https://github.com/joreilly/chip-8)