Series Posts

· 2 min read

SKIE is Open Source

SKIE, our tool to bridge Kotlin and Swift APIs for Kotlin Multiplatform, has been released as open source. This is a critical tool for any developer or team calling Kotlin code from Swift.
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.
  • Exhaustive sealed classes, and real Swift enums.
  • Default arguments.
  • Seamless suspend functions and Flows.
SKIE adds this functionality with some Kotlin IR changes, but it also generates Swift, then compiles and links that Swift directly back into the Xcode Framework generated by the Kotlin compiler. That means you can run SKIE on your project, and you do not need to change packaging or deployment of the Xcode Framework.

SKIE is now open source and freely available. The functionality introduced by SKIE will make Kotlin APIs much simpler to design for iOS, and make calling them from Swift a much better experience.

The bottom line: Every KMP project exporting to Swift should consider trying SKIE, and every new project should have it added from the start.

Essential SKIE Resources

Getting Started Guide

SKIE is easy to install on new projects, but seeing it in action will help understand how it works and how best to use it. We have a demo app that walks through the major features of SKIE. Over the coming weeks we will also be publishing updates to our reference app KaMP Kit, and content around using KMMBridge and SKIE to pilot KMP in existing teams and how to publish internal SDKs for larger teams.

Migration Guide

SKIE was designed to be as source-compatible as possible, but it does change the types of the API exposed from Kotlin to Swift. If you have an existing code base, you should understand how to approach adding SKIE in a way that does not disrupt your team.

SKIE Docs

Detailed feature and configuration docs.

SKIE GitHub Repo

Add a star if you want to help support our work!

touchlab/SKIE

Bullet-proof SKIE Adoption
SKIE offers a significantly improved KMP experience and increased efficiency. Make sure you get the full benefits by using Touchlab Pro to get started.

Thanks

SKIE was a huge effort. We’ll have content coming out soon covering some of the details on the scope of work and testing involved.

Thanks first to the Touchlab team in general, and Tadeas and Filip specifically, for the excellent work. We had no idea of the scope of work when we started. It’s been a solid year of serious work, but the result is fantastic.

We’d also like to call out the Block team for their continued support of Touchlab and our KMP efforts.

Thanks to our friends at JetBrains for their feedback and assistance with some deep compiler stuff.

Finally, thanks to the Kotlin Multiplatform community. It’s been growing dramatically, and we look forward to hearing from you!