https://github.com/joreilly/bikeshare
SwiftUI, Jetpack Compose, Compose for Desktop and Compose for Web based Kotlin Multiplatform project (using CityBikes API http://api.citybik.es/v2/). Uses Room for local persistence
https://github.com/joreilly/bikeshare
android citybikes-api ios jetpack-compose jetpack-room kotlin kotlin-coroutines kotlin-inject kotlin-multiplatform kotlin-multiplatform-mobile kotlin-native kotlinx-serialization ktor mvvm swift swiftui viewmodel wasm
Last synced: 10 days ago
JSON representation
SwiftUI, Jetpack Compose, Compose for Desktop and Compose for Web based Kotlin Multiplatform project (using CityBikes API http://api.citybik.es/v2/). Uses Room for local persistence
- Host: GitHub
- URL: https://github.com/joreilly/bikeshare
- Owner: joreilly
- License: apache-2.0
- Created: 2019-11-17T17:37:23.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-03-26T19:36:13.000Z (29 days ago)
- Last Synced: 2025-04-07T03:12:28.896Z (17 days ago)
- Topics: android, citybikes-api, ios, jetpack-compose, jetpack-room, kotlin, kotlin-coroutines, kotlin-inject, kotlin-multiplatform, kotlin-multiplatform-mobile, kotlin-native, kotlinx-serialization, ktor, mvvm, swift, swiftui, viewmodel, wasm
- Language: Jupyter Notebook
- Homepage:
- Size: 8.35 MB
- Stars: 747
- Watchers: 16
- Forks: 58
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BikeShare

Jetpack Compose and SwiftUI based Kotlin Multiplatform sample project (based on [CityBikes API](http://api.citybik.es/v2/)).
Running on
* iOS (SwiftUI)
* Android (Jetpack Compose)
* Desktop (Compose for Desktop)
* Web (Wasm based Compose for Web)
* Swift Executable PackageRelated posts:
* [Using SwiftUI and Compose to develop App Widgets on iOS and Android](https://johnoreilly.dev/posts/ios-android-widget-kmp/)
* [Bridging the gap between Swift 5.5 concurrency and Kotlin Coroutines with KMP-NativeCoroutines](https://johnoreilly.dev/posts/kmp-native-coroutines/)
* [Creating a Swift command line app that consumes Kotlin Multiplatform code - Part 2](https://johnoreilly.dev/posts/swift-command-line-kotlin-multiplatform-part2/)
* [Using kotlin-inject in a Kotlin/Compose Multiplatform project](https://johnoreilly.dev/posts/kotlin-inject-kmp/)

### Building
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)
### Compose for Desktop client
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.
## Full set of Kotlin Multiplatform/Compose/SwiftUI samples
* 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)