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
- 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
Use Android Studio/IntelliJ to build/run Android client. Requires Xcode 14 or later for iOS client.
![Screenshot 2024-03-30 at 19 46 48](https://private-user-images.githubusercontent.com/6302/318220645-0777a9d9-e620-4feb-9e28-a00f01978c1c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4NjMwMTcsIm5iZiI6MTcyMzg2MjcxNywicGF0aCI6Ii82MzAyLzMxODIyMDY0NS0wNzc3YTlkOS1lNjIwLTRmZWItOWUyOC1hMDBmMDE5NzhjMWMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTdUMDI0NTE3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjVkOGQ3YjRmNzRjMGEwZDExODkzMDQ2Mjk0YTI5OGNiMjRiODRjOTlkMDQ3OGUzMTI3Y2I4ZDljYmJmZTFmZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.kiHGDwYf5AdOHkWSSrANiIDa6kezgQmOn0uJfbfh7j8)
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.
![Screenshot 2024-02-25 at 09 58 16](https://private-user-images.githubusercontent.com/6302/307581741-ac624a44-4b0b-4a1d-b58b-4ce172b6f3cd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4NjMwMTcsIm5iZiI6MTcyMzg2MjcxNywicGF0aCI6Ii82MzAyLzMwNzU4MTc0MS1hYzYyNGE0NC00YjBiLTRhMWQtYjU4Yi00Y2UxNzJiNmYzY2QucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTdUMDI0NTE3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDZlYjdjN2Y1ZDBiZDNhNjk5ODI1ZjkzMjg5MTVjZmQ3YzU2N2E1YzlkMjE2NWExMmRmMWNhZTYxNGQyZjhhOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.hRFbhl8aFEMgR4W_S487Z7rySy8sZBGUfR-TcLTIYmI)
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