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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjExODIzNDYsIm5iZiI6MTcyMTE4MjA0NiwicGF0aCI6Ii82MzAyLzMxODIyMDY0NS0wNzc3YTlkOS1lNjIwLTRmZWItOWUyOC1hMDBmMDE5NzhjMWMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcxNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MTdUMDIwNzI2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZWEzYmUxYzY5Njc4ZWRlYzcxZWIzMGQwMzNkNTliOGMwZThmYjkyM2ExZmVkOGEzYmVlZTA2Y2I1YzE4YzU0MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.r_gE4ygyQ_vwVYN7mgDubam8E91-VqBnAR8BGrbgLRA)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjExODIzNDYsIm5iZiI6MTcyMTE4MjA0NiwicGF0aCI6Ii82MzAyLzMwNzU4MTc0MS1hYzYyNGE0NC00YjBiLTRhMWQtYjU4Yi00Y2UxNzJiNmYzY2QucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcxNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MTdUMDIwNzI2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NmU3MTQxNTgzMzI0ZDU0MTk4MzQwMDQxYmIzYzM0M2JjM2IyZWZkYWQzN2VjNTlhYzFmMDA1ZjY5OTgwODU0YyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.WiM-GtXEmv8j4niPJuWQv38bPZb6UlEYmfqxjY2IJNI)
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