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 a product share the right work without making iOS feel like a wrapper around somebody else’s architecture. I help teams improve the Swift-facing experience, choose useful boundaries and remove friction from development through release.
Who this is for
This is for teams already using KMP, actively adopting it, or dealing with a real product milestone where shared Kotlin and native iOS need to meet cleanly.
It is especially useful for Android or Kotlin-led teams that need deeper iOS ownership, and for iOS engineers who need a more comfortable route into shared code.
Where friction appears
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.
Technical discovery
A focused review creates a shared picture of the current codebase and a practical sequence for improving it.
Review the shared modules, Swift API surface, native integration and current build path.
Clarify boundaries, ownership, risks and the smallest changes that improve the iOS workflow.
Leave the team with written findings, a walkthrough and an implementation sequence.
Hands-on perspective
My background is deepest in native iOS, with hands-on production work across Android and a mature Kotlin Multiplatform product. I focus on the engineering boundary where Kotlin, Swift, Xcode, shared and native architecture, and delivery meet.
Bring the awkward bit
Tell me what the team has today, how the friction shows up and which product milestone is at risk. We can decide whether a focused technical discovery is the useful next step.