What was challenging?
The Driodcon app with Compose for iOS started as a little experiment. We know the team has been working hard on Kotlin Multiplatform support, but since Kotlin/Native and iOS support got started later than the other platforms (and is such a huge effort), we figured we wouldn’t be able to do much. In the end, the biggest problem we had was just getting config setup to build.
We did run into other technical issues. Color space issues for some images, some unimplemented features, that kind of thing. But that’s all what we’d expect at this stage. It’s early for most teams to build with Compose UI on iOS, although clearly you can.
What’s the value?
Kotlin on iOS has great native interop, so you can add Kotlin modules alongside Swift modules. They can coexist in a natural way. Similarly, you can write parts of your UI with shared Compose, then if you decide that a screen should really be “native”, you can develop a Swift UI version of that screen right on top of the shared architecture. It is not an all-or-nothing approach, which is why we’ve loved the Kotlin approach since the beginning.
Of course, KMP for iOS is still relatively new. To really succeed, the developer experience for iOS needs to improve, which is where we’ve been spending a lot of our effort. Better interop for Swift, better tooling and workflows for teams. If we can really nail that, Android and iOS teams will start thinking and working as mobile teams. That’s part of the long term vision.