The biggest change for iOS: Gemini + Room.
Gemini
I used the Google AI SDK ↗ for Bapdap, which is only available for Android. Yesterday, I found John O'Reilly's post describing how to roll your own calls to Gemini in KMP: https://johnoreilly.dev/posts/gemini-kotlin-multiplatform/ ↗
This is largely a like-for-like swap between the Google AI SDK for Android and the ktor-based Gemini calls for KMP, but definitely took some time to iron out all of the bugs.
Room KMP
Migrating from Room to Room KMP takes some work. I failed to remove some references to room-common, and I could not figure out why I was getting these errors in Xcode about room-common files not being found for iossimulatorarm64. Once I removed room common from the Version Catalog and the build.gradle files, I was off and running (to the next bug:).
KLIB resolver: Could not find "/Users/mattdyor/.gradle/caches/modules-2/files-2.1/androidx.room/room-common-iossimulatorarm64/2.7.0-alpha12/32131878ecfb1a2ebca6eed6006b355cd1b964bb/room-common-iosSimulatorArm64Main-2.7.0-alpha12.klib" in [/Users/mattdyor/AndroidStudioProjects/bapdap, /Users/mattdyor/.konan/klib, /Users/mattdyor/.konan/kotlin-native-prebuilt-macos-aarch64-2.0.21/klib/common, /Users/mattdyor/.konan/kotlin-native-prebuilt-macos-aarch64-2.0.21/klib/platform/ios_simulator_arm64]
What's Next
Bapdap should be ready to roll on iOS by January 7. Because it is written in Kotlin Multiplatform (using Compose Multiplatform), once I get iOS up and running I will also get Desktop and Web for free 😊 . If you have an Android, it is available today for closed testing ↗.