Shipping a Mobile Multiplatform Project on iOS & Android
summary
A Kotlin Multiplatform shared library ships to iOS and Android using Gradle and Kotlin/Native backends, replacing a JS runtime for CashApp search and consolidating PlanGrid’s sync code; key techniques are expect/actual for platform hooks, SQLDelight for SQLite queries in commonMain, C interop for hot paths, and CocoaPods + includeBuild for local development. Runtime details: reference counting with a Bacon cycle collector, worker threads may silently swallow crashes, and symbolication must be tested. The approach works but demands CI, publishing, and careful API stability.
AI-written summary · about
chapters (25)
- 0:00Introduction
- 2:28Backgrounds
- 2:48What you should know
- 3:29Search
- 3:59Shared Business Layer
- 4:20Multiplatform Layer
- 4:35What is Multiplatform
- 5:28Agenda
- 6:08Educating your team
- 7:19Why multiplatform
- 7:40Shared codebase
- 8:57Common Goal
- 9:43Kotlin Community
- 10:10iOS Community
- 12:38Value Types
- 14:59Library Ecosystem
- 24:00Library initialization
- 25:44Networking
- 27:10Network
- 29:48Concurrency
- 31:05Shipping internally
- 35:15Ups and Downs
- 39:53Testing
- 41:47Community Involvement
- 43:21Summary
related talks
36mIntroducing Kotlin Multiplatform in an existing project
52mBuilding apps using Kotlin Native
41mKotlin Multiplatform Mobile: From Hello World to Production
44mBuilding a library for Android and iOS using Kotlin Multiplatform
39mAnd That, Folks, is How We Shared Code Between Android, iOS and the Backend
40mKotlin goes global
34mKotlin Multiplatform: code sharing without compromise
32mUsing platform-specific code in Kotlin Multiplatform
