~/talk

And that, folks, is how we shared code between Android, iOS and the Backend

Talkat droidcon EMEA 2020 · 2020-10-08..10-09· [kotlin]
slides:none on file

Builds a small Kotlin Multiplatform library of DTOs then publishes it to a local Maven repo and uses it from a Ktor backend, an Android app and an iOS app. Faces iOS distribution pain, solves it with a fat framework + CocoaPods wrapper, hits Swift deserialization issues and Kotlin/Native concurrency errors that require changes to classes and to freeze mutable classes before crossing threads. Recommends starting very small, validates in production despite alpha status, then expand.

AI-written summary · about

  1. 0:00Introduction and speaker intro
  2. 1:39Story of Alice and Bob's bug
  3. 3:08Story of Charlie's feature duplication
  4. 4:38Cross-platform challenges with React Native
  5. 6:25Why Kotlin Multiplatform fits
  6. 7:06Approaching KMP in existing projects
  7. 8:53Starting with boring or central code
  8. 10:38Example starting points like DTOs
  9. 11:21Building the shared foundation library
  10. 12:25Creating the KMP project
  11. 13:07Adding JVM target and publishing
  12. 13:50Writing the shared DTO data class
  13. 14:10Publishing and integrating the library
  14. 14:40Using the library in Android client
  15. 15:01Integrating with backend Ktor
  16. 15:45iOS integration challenges
  17. 16:33Distributing Kotlin frameworks to iOS
  18. 18:46Creating fat frameworks for iOS
  19. 19:27Configuring Gradle tasks for fat frameworks
  20. 20:49Linking library in Xcode project
  21. 21:56Publishing and versioning frameworks
  22. 23:56iOS serialization issues with DTOs
  23. 25:56Making DTOs compatible with Codable
  24. 27:14Adjusting Kotlin DTOs for iOS
  25. 28:16Threading and freezing DTOs
  26. 30:59Creating base class for frozen DTOs
  27. 31:48Summary of challenges faced
  28. 33:50Lessons learned and project validation
  29. 36:23Expanding KMP adoption at Unwire
  30. 37:12References and resources
  31. 37:35Q&A session
~/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.