Elevate your KMP
experience with SKIE

A Swift-friendly API Generator for Kotlin Multiplatform

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.

Kotlin to Swift Code Transformations

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.

Flow Support

Kotlin Flows are automatically and transparently converted to Swift AsyncSequences.

  • Proper compile-time checking
  • Swift-native ergonomics
  • Flow, StateFlow and MutableStateFlow
Kotlin
No changes on Kotlin side

Suspend Interop

Kotlin suspend functions are converted to Swift's native async functions.

  • Cancellation support
  • Callable from any thread
  • No wrapping necessary
Kotlin
A regular suspend function

Sealed class wrapped as an enum

Sealed classes are unchanged, but an associated enum is generated, as well as a wrapper function to use in switch statements.

  • Exhaustively checked sealed classes
  • Similar to enums with associated values
Kotlin
Sealed classes are ever-present

Zero-Effort Integration

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:

1. License

Apply Touchlab's licensing plugin in your Gradle Settings file and give it your access key.

2. Plugin

Add SKIE Gradle plugin to your shared module, that produces a framework for iOS.

3. Profit

You and your team are ready to enjoy Swift-friendly and compile-time safe APIs.

Critical features for the KMP iOS developer experience

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.

Direct Linking

The generated Swift is compiled and linked directly to the Xcode Framework. No extra deployment config required.

Flows

Use any Flow as an AsyncSequence from Swift, keeping the element type intact. Safe and smart.

Suspend Interop

Call Kotlin suspend functions the same way as Swift's async functions, with cancelation and background thread support.

Transparent Enums

Kotlin enums are transparently converted to proper Swift enums. This allows for exhaustive operations on the Swift side.

Sealed Hierarchies

Sealed class and sealed interface handling allows you to exhaustively switch on sealed Kotlin hierarchies from Swift.

Default Parameters

Overloaded methods are added to the exposed Swift interface to allow calling methods without specifying each argument.

There's more!

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.

Better APIs are valuable for everybody

androidAndroid Devs
appleiOS Devs
decision processEngineering Managers

Android Developers

No API Anxiety

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.

Risk Mitigation

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.

Comprehensive Testing

We test SKIE against a thousand public KMP libraries along with hundreds of hand-written tests.

Immense Flexibility

No two projects are the same. SKIE has granular configurability, letting your team decide what to enhance.

Made by Touchlab

Touchlab has years of experience with Kotlin Multiplatform in production. We built SKIE to solve our problems, let it solve yours too.