{"id":13407051,"url":"https://github.com/joreilly/GalwayBus","last_synced_at":"2025-03-14T11:30:57.691Z","repository":{"id":37233580,"uuid":"96469751","full_name":"joreilly/GalwayBus","owner":"joreilly","description":"Galway Bus Kotlin Multiplatform project using Jetpack Compose and SwiftUI ","archived":false,"fork":false,"pushed_at":"2024-04-12T17:35:10.000Z","size":6422,"stargazers_count":490,"open_issues_count":6,"forks_count":41,"subscribers_count":16,"default_branch":"main","last_synced_at":"2024-04-13T21:55:50.225Z","etag":null,"topics":["android","architecture-components","coroutines","coroutines-flow","fastlane","ios","jetpack-compose","koin","kotlin","kotlin-multiplatform","kotlin-multiplatform-mobile","kotlin-native","ktor","swift","swiftui","viewmodel"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joreilly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-07-06T20:33:42.000Z","updated_at":"2024-04-17T16:57:10.627Z","dependencies_parsed_at":"2023-02-12T10:00:41.262Z","dependency_job_id":"6e1182de-6dd4-49af-a2a6-83384480b885","html_url":"https://github.com/joreilly/GalwayBus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joreilly%2FGalwayBus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joreilly%2FGalwayBus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joreilly%2FGalwayBus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joreilly%2FGalwayBus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joreilly","download_url":"https://codeload.github.com/joreilly/GalwayBus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243569288,"owners_count":20312388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","architecture-components","coroutines","coroutines-flow","fastlane","ios","jetpack-compose","koin","kotlin","kotlin-multiplatform","kotlin-multiplatform-mobile","kotlin-native","ktor","swift","swiftui","viewmodel"],"created_at":"2024-07-30T20:00:18.643Z","updated_at":"2025-03-14T11:30:57.666Z","avatar_url":"https://github.com/joreilly.png","language":"Kotlin","funding_links":[],"categories":["📚 Projects (1974 total)","App Projects"],"sub_categories":["MCP Clients"],"readme":"### Galway Bus Kotlin Multiplatform project using Jetpack Compose and SwiftUI\n\n![kotlin-version](https://img.shields.io/badge/kotlin-2.0.0-blue?logo=kotlin)\n\n**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!\n\n\n### Kotlin Multiplatform\n\nThis project also acted as initial platform I used when starting to explore **Kotlin Multiplatform**\ncapabilities. There's a Kotlin Multiplatform `ShareCode` module for example along with sample Android, iOS\nand macOS apps. Also wrote a number of posts about some of my experiences using **KMP** in the project.  \n\n* [SwiftUI meets Kotlin Multiplatform!](https://johnoreilly.dev/2019/06/08/swiftui-meetings-kotlin-multiplatform/)\n* [Introduction to Multiplatform Persistence with SQLDelight](https://johnoreilly.dev/posts/sqldelight-multiplatform/)\n* [Using Google Maps in a Jetpack Compose app](https://johnoreilly.dev/posts/jetpack-compose-google-maps/)\n* [Using Google Maps in a Jetpack Compose app - Part 2!](https://johnoreilly.dev/posts/jetpack-compose-google-maps-part2/)\n\n\n### Google Maps SDK\n\nThe project depends on `GOOGLE_API_KEY` environment variable to be defined for maps functionality to work.  Alternatively\nyou can update where this is read in `build.gradle`\n\n### Screenshots \n\n\n**Android (Jetpack Compose)**\n\n\u003cimg 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\"\u003e\n\n\n\n**iOS (SwiftUI)**\n\n\u003cimg 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\"\u003e\n\n\n### Languages, libraries and tools used\n\n* [Kotlin](https://kotlinlang.org/)\n* [Kotlin Corooutines](https://kotlinlang.org/docs/reference/coroutines-overview.html)\n* [Kotlinx Serialization](https://github.com/Kotlin/kotlinx.serialization)\n* [Ktor client library](https://github.com/ktorio/ktor)\n* [Android Architecture Components](https://developer.android.com/topic/libraries/architecture/index.html)\n* [Koin](https://github.com/InsertKoinIO/koin)\n* [Jetpack Compose](https://developer.android.com/jetpack/compose)\n* [Maps Compose](https://github.com/googlemaps/android-maps-compose)\n* [SwiftUI](https://developer.apple.com/documentation/swiftui)\n* [KMP-NativeCoroutines](https://github.com/rickclephas/KMP-NativeCoroutines)\n* [Multiplatform Settings](https://github.com/russhwolf/multiplatform-settings)\n\n\n## Full set of Kotlin Multiplatform/Compose/SwiftUI samples\n\n*  PeopleInSpace (https://github.com/joreilly/PeopleInSpace)\n*  GalwayBus (https://github.com/joreilly/GalwayBus)\n*  Confetti (https://github.com/joreilly/Confetti)\n*  BikeShare (https://github.com/joreilly/BikeShare)\n*  FantasyPremierLeague (https://github.com/joreilly/FantasyPremierLeague)\n*  ClimateTrace (https://github.com/joreilly/ClimateTraceKMP)\n*  GeminiKMP (https://github.com/joreilly/GeminiKMP)\n*  MortyComposeKMM (https://github.com/joreilly/MortyComposeKMM)\n*  StarWars (https://github.com/joreilly/StarWars)\n*  WordMasterKMP (https://github.com/joreilly/WordMasterKMP)\n*  Chip-8 (https://github.com/joreilly/chip-8)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoreilly%2FGalwayBus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoreilly%2FGalwayBus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoreilly%2FGalwayBus/lists"}