Swift-facing APIs
Generated interfaces technically compile, but optionals, errors, flows or naming make them awkward to use from Swift.
iOS + Kotlin Multiplatform
Kotlin Multiplatform should help you share code without making the iOS app feel like an afterthought. I help teams improve the Swift-facing APIs, decide what should stay native and make everyday development and releases less painful.
Who this is for
This is for teams already using KMP, actively adopting it or reaching a product milestone where shared Kotlin and native iOS need to work together cleanly.
It’s especially useful for Android or Kotlin-led teams that need stronger iOS support, and for iOS engineers who need a more comfortable way into the shared code.
Where it usually gets awkward
Generated interfaces technically compile, but optionals, errors, flows or naming make them awkward to use from Swift.
The team needs a practical decision about what belongs in shared Kotlin and what should remain native to iOS.
Shared state and asynchronous work need to fit naturally into SwiftUI and Swift concurrency.
Build steps, project setup or local iteration make everyday iOS work slower than it should be.
It is unclear which behaviour is tested in shared code, on iOS, or across an integration boundary.
Framework packaging, CI and store delivery turn shared-code changes into release risk.
Start with a technical review
I’ll look at the current codebase with the team, explain what I think is causing the friction and give you a practical order for fixing it.
Review the shared modules, Swift APIs, native integration and current build path.
Work out what belongs where, which risks matter and which changes will help iOS developers first.
Give the team written findings, talk them through and agree the order of implementation.
Experience on both sides
My background is deepest in native iOS, and I’ve also worked in production across Android and a mature Kotlin Multiplatform product. I’m comfortable in the awkward middle where Kotlin, Swift, Xcode, shared architecture and release work all meet.
Bring the awkward bit
Tell me what the team has today, where the friction shows up and what you need to ship. I’ll tell you whether a technical review sounds useful.