~/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]
links:none on file
slides:none on file

Shows a real migration: a shared KMP library (HN foundation) with DTOs published to a local Maven, consumed by an Android app, a Ktor backend endpoint, and an iOS app via a fat framework packaged to CocoaPods. Describes concrete fixes: convert data class to open class with var and empty ctor for Swift Decodable, add Stately freeze to avoid Kotlin/Native threading exceptions, automate Gradle tasks and pod publishing with scripts, later share the data layer with SQLDelight. Works in production at a startup but KMP is still alpha.

AI-written summary · about

  1. 0:00Introduction and speaker intro
  2. 1:13Common pitfalls in cross-platform development
  3. 3:01Execution speed challenges in teams
  4. 5:31Why Kotlin Multiplatform fits
  5. 7:17Starting with Kotlin Multiplatform libraries
  6. 9:49Choosing the right code to share
  7. 10:12Building the shared library project
  8. 12:24Publishing and integrating the library
  9. 13:11Android integration demo
  10. 13:34Backend integration demo
  11. 13:55iOS integration challenges
  12. 16:27CocoaPods plugin limitations
  13. 17:10Creating FAT frameworks for iOS
  14. 18:36CocoaPods repository setup
  15. 19:37iOS dependency integration
  16. 20:41Automating the build and publish process
  17. 22:29iOS serialization issues
  18. 24:35Implementing Decodable in Swift
  19. 26:03Adjusting Kotlin models for Swift
  20. 27:09Threading and immutability in Kotlin
  21. 28:54Using Stately for freezing objects
  22. 29:39Finalizing iOS integration
  23. 30:01Summary of challenges faced
  24. 31:05Gradle and project organization difficulties
  25. 32:13Distributing iOS frameworks effectively
  26. 32:55Handling serialization on iOS
  27. 33:37Start small, validate, then expand
  28. 34:47Expanding to full data layer sharing
  29. 35:11References and resources
  30. 35:33Q&A session begins
  31. 37:44Future of Kotlin Multiplatform UI
  32. 38:45Flutter vs Kotlin Multiplatform for UI
  33. 39:49Dependency injection in Kotlin Multiplatform
  34. 41:37Nullability agreements between backend and frontend
  35. 43:06Android Studio plugin for Kotlin Multiplatform
  36. 44:09Shared databases and networking support
  37. 44:50Kotlin Multiplatform library list suggestion
~/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.