Don’t let the lack of proper Swift interop hinder your Kotlin Multiplatform adoption. With SKIE, you can restore the expressiveness of modern languages and enjoy a superior iOS developer experience.
SKIE improves interoperability between Kotlin and Swift by generating Swift wrappers for Objective-C headers created by the Kotlin compiler. It recreates features supported by both languages that are lost in the translation from Kotlin to Objective-C to Swift.
Kotlin Flows are automatically and transparently converted to Swift AsyncSequences.
Kotlin suspend functions are converted to Swift's native async functions.
Sealed classes are unchanged, but an associated enum is generated, as well as a wrapper function to use in switch statements.
With SKIE, there's no need for additional development effort or training. This powerful tool automatically analyzes your code and modifies the API surface to streamline your workflow. Getting started is as easy as following three simple steps:
Apply Touchlab's licensing plugin in your Gradle Settings file and give it your access key.
Add SKIE Gradle plugin to your shared module, that produces a framework for iOS.
You and your team are ready to enjoy Swift-friendly and compile-time safe APIs.
SKIE is packed with features that make Kotlin Multiplatform frameworks feel like native Swift. We carefully designed each feature to be intuitive, while staying consistent throughout many use-cases.
The generated Swift is compiled and linked directly to the Xcode Framework. No extra deployment config required.
Use any Flow as an AsyncSequence from Swift, keeping the element type intact. Safe and smart.
Call Kotlin suspend functions the same way as Swift's async functions, with cancelation and background thread support.
Kotlin enums are transparently converted to proper Swift enums. This allows for exhaustive operations on the Swift side.
Sealed class and sealed interface handling allows you to exhaustively switch on sealed Kotlin hierarchies from Swift.
Overloaded methods are added to the exposed Swift interface to allow calling methods without specifying each argument.
Our existing feature-set is merely scratching the surface of what’s possible. As we continuously explore new ideas and possibilities, we invite you to join us on our journey and take part in shaping our future direction.
Kotlin Multiplatform enables Android developers to write code that can be shared with their iOS colleagues. However, doing so results in a loss of many Kotlin language features even though both Kotlin and Swift support them. That makes it difficult for Android developers to judge what their code will look like from Swift.
With SKIE, Kotlin developers don’t have to worry about these complexities of cross-platform development. Their Kotlin code will retain its modern and expressive features and will seamlessly integrate with Swift. That way, developers can focus on more meaningful and engaging tasks.
Adopting Kotlin Multiplatform can be challenging and introducing a new tool to your team might be daunting. Low entry barrier has been part of SKIE from the beginning.
We test SKIE against a thousand public KMP libraries along with hundreds of hand-written tests.
No two projects are the same. SKIE has granular configurability, letting your team decide what to enhance.
Touchlab has years of experience with Kotlin Multiplatform in production. We built SKIE to solve our problems, let it solve yours too.