When Swift calls Kotlin through Objective-C, critical Kotlin language features are dropped. SKIE bridges modern types and coroutines in the best way: with real Swift.
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.
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.
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.