Sitemap

Level Up Coding

Coding tutorials and news. The developer homepage gitconnected.com && skilled.dev && levelup.dev

SKIE: The missing bridge for KMP on iOS

6 min read3 days ago

Stop writing wrappers. Let SKIE speak Swift for you.

Press enter or click to view image in full size
Photo by David Martin on Unsplash

If you are not Medium Member click this link to read it free.

I’ve always been driven to explore the frontiers of technology, and that curiosity is what pulled me into Kotlin Multiplatform (KMP). But if you’ve also made that journey, you know the ritual all too well. You write elegant business logic, an API client on Ktor, and database operations on SQLDelight. All of this is in the commonMain module. You feel on top of the world :)

And then… you need to connect this module to an iOS project.

And this is where the “pain” begins. The Kotlin code, compiled into a .framework, looks alien to a Swift developer, to put it mildly.

  • Your suspend functions turn into functions with completionHandlers (hello, callback hell).
  • Your Flows require manual collection, cancellation, and wrappers like CFlow or CommonFlow.
  • Your elegant sealed classes (for Success/Error/Loading states) turn into cumbersome classes that you have to check in Swift via if let... or a non-exhaustive switch.

Your iOS teammates look at this, shrug, and say: “It’ll be faster if I just rewrite this in Swift”. At that moment, your “shared logic” stops being shared :)

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web
Already have an account? Sign in
Level Up Coding
Dmitry Glazunov

Written by Dmitry Glazunov

Team Lead • Staff Software Engineer — writing about mobile development, engineering, and team leadership.

Responses (3)

Write a response