~/talk

Confetti: building a Kotlin Multiplatform conference app in 40min

slides:none on file

Live coding produces a working Confetti app end to end: a graphql-kotlin backend serving Kotlinx‑serialized Kotlin models (including a custom LocalDateTime scalar), an Apollo pipeline that generates Kotlin multiplatform models and uses normalized in‑memory and persistent caches, a KMM shared view model exposing StateFlow to Jetpack Compose and SwiftUI via km‑viewmodel/KMP native coroutines, and native Android and iOS apps that mostly run (with one live build hiccup) and are published to the stores.

AI-written summary · about

  1. 0:00Introduction
  2. 1:05Kotlin Multiplatform and GraphQL overview
  3. 2:51Declarative UI with Jetpack Compose & SwiftUI
  4. 3:12GraphQL basics and Kotlin integration
  5. 5:19Conference app architecture plan
  6. 6:23GraphQL backend setup with Kotlin
  7. 7:29Spring Boot and Gradle config
  8. 8:56GraphQL schema and queries
  9. 10:00Backend server and GraphQL Playground
  10. 12:10Conference data models with Kotlin serialization
  11. 13:58GraphQL schema with nested types
  12. 15:43Custom scalar types for dates
  13. 17:51Android and iOS clients with shared Kotlin
  14. 18:12KMM project structure setup
  15. 18:54Kotlin models from GraphQL queries
  16. 20:21Shared repository for GraphQL data
  17. 21:25Shared ViewModel for UI state
  18. 22:49Android UI with Jetpack Compose
  19. 24:20Android UI with tabs and sessions
  20. 26:03iOS UI with SwiftUI
  21. 27:06Shared Kotlin in iOS apps
  22. 28:29Query updates and room display
  23. 29:53Live demo challenges and fixes
  24. 30:14Community contributions and features
  25. 31:00Kotlin Multiplatform and GraphQL benefits
  26. 32:11Open source project and community
  27. 32:54Future plans for web and WebAssembly
  28. 33:17Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.