~/talk

Our ongoing journey from REST to GraphQL on Android

Talkat DroidKaigi 2023 · 2023-09-14..09-16· [graphql, android]
slides:none on file

Migration begins end of 2020 and moves stepwise from a REST monolith to GraphQL, with AppSync backend, Apollo Kotlin client and Retrofit coexists with Apollo during transition. Generated Kotlin models and coroutines work well; subscriptions required building a custom AppSync websocket reopen strategy using a lambda to update auth URLs (contributed and merged). Nested queries once caused 7–10s responses until backend added an optimized resolver or exposed lastMessage field. Use separate OkHttp clients/timeouts and Chucker for monitoring.

AI-written summary · about

  1. 0:00GraphQL migration journey
  2. 1:27What is GraphQL
  3. 2:55Switching from REST to GraphQL
  4. 4:42GraphQL adoption benefits
  5. 5:46GraphQL tech stack on Android
  6. 7:15GraphQL migration timeline
  7. 7:58Apollo setup in Android
  8. 9:24GraphQL schema and queries
  9. 10:54Mutations and subscriptions
  10. 12:01GraphQL plugins experience
  11. 13:12Apollo client integration
  12. 14:16Migration lessons learned
  13. 14:39Apollo Kotlin support
  14. 16:09Queries with coroutines and flows
  15. 18:01Timeout configuration
  16. 18:45Lazy loading resources
  17. 19:48Monitoring with Chucker
  18. 21:55Chucker request demo
  19. 23:02Nested query challenges
  20. 25:30Real-time updates with subscriptions
  21. 26:14WebSocket reliability with AppSync
  22. 28:20Contributing to Apollo Kotlin
  23. 31:14GraphQL error handling
  24. 33:48Automating schema updates
  25. 35:59Managing multiple schemas
  26. 36:41Apollo community updates
  27. 38:10Apollo v4 features
  28. 38:31Key takeaways
~/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.