Writing Kotlin Multiplatform libraries that your iOS teammates are gonna love
summary
Explains concrete KMP-to-Swift failure modes and fixes: name clashes from flat Objective-C namespaces and overloads solved with Objective-C bridge naming and better parameter names; interfaces and inline/value classes get erased so prefer abstract classes or primitives; exceptions map to NSError only if annotated with throws; generics and sealed enums lose information; coroutines and flows require wrappers such as kmp-native-coroutines or conversion to Combine, and code generators like moko-kswift or Touchlab ease Swift wrappers. Practical examples and code patterns shown.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:55Why Kotlin to Swift is hard
- 4:22Name clashing in APIs
- 8:17Type mismatches explained
- 12:52Improving API usability
- 16:46Platform-specific code
- 17:49Handling function overloads
- 18:33Exception handling differences
- 21:44Enums and sealed classes
- 26:20Generics limitations
- 30:13Coroutines and flows
- 36:15Final thoughts
related talks
34mKMM survival guide: how to tackle everyday struggles between Kotlin and Swift
29mKMP for Mobile Developers
37mKotlin Multiplatform Library Development
39mKotlin and Compose Multiplatform patterns for iOS interop
33mSDK Design and Publishing For Kotlin Multiplatform Mobile
22mCalling Kotlin Multiplatform Coroutines from Swift with the help of KMP-NativeCoroutines
35mThe Art of KMP: what you need to know as a multiplatform developer
37mKotlin/Multiplatform for iOS developers : state & future
