Skip to main content

SKIE

Welcome to the SKIE documentation. Let's give your iOS developer experience a boost, shall we?

Overview

One of the main downsides of Kotlin Multiplatform is the lack of a direct Swift interop. Without it, Swift can communicate with Kotlin only indirectly - through Objective-C. While this approach works, it has many limitations, so Kotlin loses support for many of its language features.

SKIE (pronounced as sky) is a special Kotlin native compiler plugin that brings back support for some of these features by modifying the Xcode Framework produced by the Kotlin compiler. Thanks to that, you don't have to change how you distribute and consume your Kotlin Multiplatform frameworks.

If you're new to SKIE, we have the Getting Started Guide, which will walk you through SKIE using practical examples from our demo application. We also have the SKIE features overview for those who prefer more traditional documentation.

tip

Kotlin 2.0 is out, together with SKIE 0.10.0!

Installation

The best installation process will depend on your project:

How to reach us

There are two primary ways to interact with the SKIE developers:

tip

If you don't have the KotlinLang Slack account yet, join here. After you get access, join the #touchlab-tools channel where we provide support for SKIE and other Touchlab's open-source libraries.

To report bugs, please use the GitHub issues. We also use the GitHub Discussions as a place where you can suggest new features and provide feedback.

You can also use the GitHub Discussions if you want to ask us general questions but don't want to join the KotlinLang Slack. However, if you have access to the KotlinLang Slack, please ask the questions there because it allows us to have a more interactive discussion.

tip

Touchlab offers commercial services related to Kotlin Multiplatform and SKIE:

Versioning

SKIE follows semantic versioning, and we publish a changelog for each release. Make sure to read the changelog any time you are updating SKIE. It contains important information about new features and potentially breaking changes.

Compatibility with Kotlin

note

SKIE is currently compatible with Kotlin versions from 1.8.0 up to 2.0.10.

Similarly to other compiler plugins, SKIE only works with compatible Kotlin versions. SKIE checks the Kotlin version during the installation and will tell you if the used Kotlin version is not supported. A single version of SKIE can support multiple different versions of Kotlin at the same time.

We plan to always support at least two feature releases of Kotlin with all incremental releases, if reasonably possible. For example:

  • If the latest Kotlin version is 1.9.21, we would support at least all the stable versions from 1.8.0 up to 1.9.21.
  • If the latest Kotlin version is 2.0.0, we would support at least all the stable versions from 1.9.0 up to 2.0.0.
tip

For the best experience, we recommend using the latest version of SKIE with the latest supported version of Kotlin.

A new SKIE version with support for a new Kotlin version is usually released within a couple of working days after the Kotlin release. The delay tends to be shorter for the x.y.0 and x.y.20 releases.

SKIE doesn't support the preview versions of Kotlin except for the SKIE preview versions that we publish for the x.y.0 and x.y.20 releases. We don't release these SKIE previews for all Kotlin previews. We usually release these previews only later in the Kotlin release process - around the RC1 or RC2. However, this depends on the specifics of the given Kotlin release.

Compatibility with Swift

note

SKIE is currently compatible with Swift 5.8 (Xcode 14.3) and newer.

While older versions of Swift might work with SKIE, it's important to note that this is not guaranteed because we don't test SKIE with those versions.

Some SKIE features might require newer versions of Swift because they rely on new language features. In that case, these features will automatically not be available if the project uses an older supported version.

As with Kotlin, the minimum officially supported Swift version will increase over time. We plan to support new Swift versions for at least a year after release.