Skip to content

iOS + Kotlin Multiplatform

Make KMP work properly for your iOS team.

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

Teams already close to the code.

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

The shared code is only part of the system.

Swift-facing APIs

Generated interfaces technically compile, but optionals, errors, flows or naming make them awkward to use from Swift.

Shared and native boundaries

The team needs a practical decision about what belongs in shared Kotlin and what should remain native to iOS.

SwiftUI and concurrency

Shared state and asynchronous work need to fit naturally into SwiftUI and Swift concurrency.

Xcode and Gradle workflow

Build steps, project setup or local iteration make everyday iOS work slower than it should be.

Testing ownership

It is unclear which behaviour is tested in shared code, on iOS, or across an integration boundary.

Release friction

Framework packaging, CI and store delivery turn shared-code changes into release risk.

Technical discovery

Start with the real constraints.

A focused review creates a shared picture of the current codebase and a practical sequence for improving it.

  1. 01
    Inspect

    Review the shared modules, Swift API surface, native integration and current build path.

  2. 02
    Decide

    Clarify boundaries, ownership, risks and the smallest changes that improve the iOS workflow.

  3. 03
    Deliver

    Leave the team with written findings, a walkthrough and an implementation sequence.

Hands-on perspective

iOS depth, production KMP context.

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

Show me where iOS and KMP are fighting each other.

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.