$git clone https://github.com/joreilly/GalwayBusNote: if you are trying this project out and aren't in Galway then hit the home icon in title bar to center in Galway so you can see meaningful data!
| 1 | ### Galway Bus Kotlin Multiplatform project using Jetpack Compose and SwiftUI |
| 2 | |
| 3 |  |
| 4 | |
| 5 | **Note**: if you are trying this project out and aren't in Galway then hit the home icon in title bar to center in Galway so you can see meaningful data! |
| 6 | |
| 7 | |
| 8 | ### Kotlin Multiplatform |
| 9 | |
| 10 | This project also acted as initial platform I used when starting to explore **Kotlin Multiplatform** |
| 11 | capabilities. There's a Kotlin Multiplatform `ShareCode` module for example along with sample Android, iOS |
| 12 | and macOS apps. Also wrote a number of posts about some of my experiences using **KMP** in the project. |
| 13 | |
| 14 | * [SwiftUI meets Kotlin Multiplatform!](https://johnoreilly.dev/2019/06/08/swiftui-meetings-kotlin-multiplatform/) |
| 15 | * [Introduction to Multiplatform Persistence with SQLDelight](https://johnoreilly.dev/posts/sqldelight-multiplatform/) |
| 16 | * [Using Google Maps in a Jetpack Compose app](https://johnoreilly.dev/posts/jetpack-compose-google-maps/) |
| 17 | * [Using Google Maps in a Jetpack Compose app - Part 2!](https://johnoreilly.dev/posts/jetpack-compose-google-maps-part2/) |
| 18 | |
| 19 | |
| 20 | ### Google Maps SDK |
| 21 | |
| 22 | The project depends on `GOOGLE_API_KEY` environment variable to be defined for maps functionality to work. Alternatively |
| 23 | you can update where this is read in `build.gradle` |
| 24 | |
| 25 | ### Screenshots |
| 26 | |
| 27 | |
| 28 | **Android (Jetpack Compose)** |
| 29 | |
| 30 | <img width="1081" alt="Screenshot 2022-10-08 at 12 04 27" src="https://user-images.githubusercontent.com/6302/194704565-eedc89c1-751a-455b-a0b2-8855b5be7bbb.png"> |
| 31 | |
| 32 | |
| 33 | |
| 34 | **iOS (SwiftUI)** |
| 35 | |
| 36 | <img width="673" alt="Screenshot 2022-10-08 at 10 44 05" src="https://user-images.githubusercontent.com/6302/194701185-a797d31c-e6d3-48f2-bc04-e05b1e891a75.png"> |
| 37 | |
| 38 | |
| 39 | ### Languages, libraries and tools used |
| 40 | |
| 41 | * [Kotlin](https://kotlinlang.org/) |
| 42 | * [Kotlin Corooutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) |
| 43 | * [Kotlinx Serialization](https://github.com/Kotlin/kotlinx.serialization) |
| 44 | * [Ktor client library](https://github.com/ktorio/ktor) |
| 45 | * [Android Architecture Components](https://developer.android.com/topic/libraries/architecture/index.html) |
| 46 | * [Koin](https://github.com/InsertKoinIO/koin) |
| 47 | * [Jetpack Compose](https://developer.android.com/jetpack/compose) |
| 48 | * [Maps Compose](https://github.com/googlemaps/android-maps-compose) |
| 49 | * [SwiftUI](https://developer.apple.com/documentation/swiftui) |
| 50 | * [KMP-NativeCoroutines](https://github.com/rickclephas/KMP-NativeCoroutines) |
| 51 | * [Multiplatform Settings](https://github.com/russhwolf/multiplatform-settings) |
| 52 | |
| 53 | |
| 54 | ## Full set of Kotlin Multiplatform/Compose/SwiftUI samples |
| 55 | |
| 56 | * PeopleInSpace (https://github.com/joreilly/PeopleInSpace) |
| 57 | * GalwayBus (https://github.com/joreilly/GalwayBus) |
| 58 | * Confetti (https://github.com/joreilly/Confetti) |
| 59 | * BikeShare (https://github.com/joreilly/BikeShare) |
| 60 | * FantasyPremierLeague (https://github.com/joreilly/FantasyPremierLeague) |
| 61 | * ClimateTrace (https://github.com/joreilly/ClimateTraceKMP) |
| 62 | * GeminiKMP (https://github.com/joreilly/GeminiKMP) |
| 63 | * MortyComposeKMM (https://github.com/joreilly/MortyComposeKMM) |
| 64 | * StarWars (https://github.com/joreilly/StarWars) |
| 65 | * WordMasterKMP (https://github.com/joreilly/WordMasterKMP) |
| 66 | * Chip-8 (https://github.com/joreilly/chip-8) |