John O'Reilly
@johnoreilly
Software Engineer Android #GDE Open-source #KMP/#CMP projects: Blog: Living in Galway, Ireland 🇮🇪
You can also see haze in action in Confetti's Kotlin/Wasm based Compose for Web client (deployed to joreilly.github.io/Confetti/)
Confetti (github.com/joreilly/Con...) now includes conference info for @droidcon.bsky.social Berlin 2026. Big shout out to @marcellogalhardo.dev who contributed ton of really nice UX updates recently (including use of @chrisbanes.me's very cool haze library - github.com/chrisbanes/h...)
And Confetti (github.com/joreilly/Con...) web client deployed there as well
Back chatting to Claude a little while ago....was wondering what kind of mashup could be created from #KMP samples I have and... Voila, PeopleInSpace meets ClimateTrace 😀! Shows climate emission info for the country that International Space Station (ISS) is currently over!
Updated the ClimateTrace CMP sample (github.com/joreilly/Cli...) to use the Kotlin version of Google's AI Agent Development Kit (adk.dev/get-started/...). The project had previously consumed the Java version of ADK but much cleaner now with Kotlin version! Also still includes a Koog AI agent.
Getting ready for #StreetsOfGalway 8k with sons. Great buzz around Galway for it.
Yay, the stars have aligned and recent additions/updates have all been approved! The updates are normally pretty fast but FormAI took quite a while this time. Also this was first version of GalwayBus iOS app submitted...was rejected initially but fine after I provided more info!
Project also includes, as mentioned, a Kotlin/Wasm based Compose for Web client (using same shared KMP/CMP code). Also using expect/actual to pull in different Map SDKs on different platforms • Android - Google Maps • iOS - AppleMapKit • Desktop/Web - OpenStreetMap
The GalwayBus Kotlin Multiplatform project (github.com/joreilly/Gal...) also includes an MCP server (developed using the Kotlin MCP SDK and using same shared KMP code). Somewhat random exaple here from Claude Desktop using tools from that MCP server.
Nice photo from recent @droidcon.bsky.social USA (with @tadeas.bsky.social, @russhwolf.com and @namnum.bsky.social)
Out testing GalwayBus app and found an issue. Remote control request back to Claude at home, issue fixed and new version in play store....in minutes!
Getting Claude to audit github actions across my samples (github.com/joreilly)...... of drift etc has built up over the years!
This is a Compose Multiplatform application with effectively all code shared across the platforms so far (example here from Compose for Desktop client)
Building this version of the app from scratch (client and backend) using Claude and haven't looked at any code yet. Also using Claude for publishing Android app to Play Store (will add iOS app publication soon) and deploying backend to Cloud Run. Some iteration still needed but looks promising.
This is very cool. Testing new Galway Bus app on my phone. Found an issue and asked Claude code back at my laptop (using remote control) to fix and deploy then to play store (internal testing channel). ....short while later new version was available to install and test!
Cool then for example to be able to do audits like this across the repos
FantasyPremierLeague (github.com/joreilly/Fan...) is next sample to be updated. Examples from Android/iOS clients here (🇪🇸😀). Uses following Jetpack libraries in shared #KMP code: • ViewModel • Lifecycle • Room • DataStore • Navigation 3
Next up BikeShare (github.com/joreilly/Bik...). Showing Compose for Desktop client here (still going with World Cup theme here 😀)
ClimateTraceKMP (github.com/joreilly/Cli...) next sample to be updated to use latest version of Kotlin etc (examples from Android and iOS clients here). Project is mostly using Compose Multiplatform for the UI on all platforms (on iOS it's a hybrid with SwiftUI for country list).
Example here of 2 cool features in Koog 1.0 (github.com/JetBrains/koog) #KMP ✅ support for OpenTelemetry integration on all platforms (langfuse here with agent running on Android) ✅ ability to run Google's LiteRT models locally (Gemma4 E2B here...running locally on Android)
Inspired by AppFunctions talk at #GoogleIOConnect I had quick go at adding to the Confetti Android app (github.com/joreilly/Con...). Works really well! Using the Testing Agent app here to exercise for now (github.com/android/appf...)
Wow, just saw weather forecast for Google I/O Connect in Berlin next week!