Ok Multiplatform!
summary
Okio moves from Java to a Kotlin multiplatform implementation and releases Okio 2, starting by targeting the JVM, converting Java files gradually, and using Gradle with Kotlin and Kotlin/Native plugins. Compatibility is preserved with JApiCmp checks for binary compatibility and JVM-name forwarding plus IDE-assisted migrations via IntelliJ replace with. Common code uses expect/actual and backfill strategy; benchmarks expose an inner-loop mistake — the == vs === bug — fixed to match or exceed prior performance, and R8/ProGuard shrinks the Kotlin stdlib.
AI-written summary · about
chapters (24)
- 0:00Introduction to Okio
- 1:11Why Okio was created
- 2:15Square’s Kotlin journey
- 3:39Early attempts at Kotlin port
- 5:07Kotlin KTX approach
- 6:52Introducing Okio 2
- 7:54JVM IO options and coroutines
- 8:59Idiomatic Kotlin API design
- 11:47Kotlin standard library size impact
- 12:29Gradle migration and project structure
- 14:35Milestone: Java-only Kotlin project
- 15:37Backfilling code to common module
- 17:46Compatibility challenges
- 21:41Binary vs source compatibility
- 23:31Migration tools and IntelliJ support
- 24:15JAPICMP for binary compatibility
- 25:40Testing strategy during migration
- 26:42Multiplatform ByteString implementation
- 27:48Kotlin multiplatform issues
- 28:52Optional expect annotations
- 29:38Documentation and multiplatform
- 30:01Performance comparison with Kotlin
- 31:46Announcing Okio 2 release
- 32:07Future plans and migration advice
related talks
39mAn Overview of Multiplatform Kotlin
35mIntro to Kotlin Multiplatform
01h 07mDevelop Multiplatform Projects in Kotlin
38mBuild a Multiplatform Future with Kotlin
38mMultiplatfom projects with Kotlin
42mKotlin Multiplatform Conversions at Android Jetpack Scale
36mExploring Kotlin Multiplatform
41mApollo-Android: a Journey to Kotlin Multiplatform
