Awesome
Confetti 🎊
<img src="https://upload.wikimedia.org/wikipedia/commons/7/78/Google_Play_Store_badge_EN.svg" alt="Get it on Google Play Store" height="80"> <img src="https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg" alt="Get it on App Store" height="80">
Kotlin Multiplatform GraphQL project (backend and clients) to allow viewing of conference information for a range of conferences.
Includes:
- SwiftUI iOS client
- Jetpack Compose Android client
- Compose for Desktop client (early version)
- Compose for Wear OS client (contributed by https://github.com/yschimke)
- Compose for iOS (session details screen shared across platforms)
- Android Auto and Automotive OS (contributed by https://github.com/cmota)
- Apollo GraphQL based Kotlin Multiplatform shared code
- GraphQL backend
Contributors
<a href="https://github.com/joreilly/confetti/graphs/contributors"> <img src="https://contrib.rocks/image?repo=joreilly/confetti" /> </a>Related posts
- Swift/Kotlin ViewModel alignment in a Kotlin Multiplatform project
- Using KMM-ViewModel library to share VM between iOS and Android
- Consuming Compose for iOS in a SwiftUI application
Building
Use Android Studio/IntelliJ to build/run Android client. Requires Xcode 14 or later for iOS client.
Screenshots
<img width="1203" alt="Screenshot 2023-04-02 at 14 28 02" src="https://user-images.githubusercontent.com/6302/229355816-b1f6b769-4c7f-49a1-9fba-4c9cb1f6955d.png"> <img width="500" alt="Wear Screenshots of Confetti screens" src="https://raw.githubusercontent.com/joreilly/Confetti/aaa91c53098754de5c568ec6611b7ab237d23bcb/wearApp/images/wearScreenshots.png"> <img width="1356" alt="Screenshot 2024-03-30 at 19 46 48" src="https://github.com/joreilly/Confetti/assets/6302/0777a9d9-e620-4feb-9e28-a00f01978c1c"> <img src="androidApp/snapshot/walkthroughAndroidAuto.gif" alt="Walkthrough of Confetti running on Android Auto" /> <img src="automotiveApp/snapshot/walkthroughAndroidAutomotive.gif" alt="Walkthrough of Confetti running on Android Automotive" />Gemini functionality
Gemini based talk recommendations for particuar conference are included in the mobile clients (if gemini_api_key
configured in local.properties
). Desktop client allows free entry of query.
API
The API is available at https://confetti-app.dev/graphiql
You can query the list of conferences with conferences.id
and chose what conference to query by
passing a "conference"
HTTP header