· 3 min read Posted by Touchlab Engineering

Touchlab Open Source Updates - Sep 2023

Touchlab has pushed some major open source updates over the past few weeks that will have an impact on how teams use KMP, and on KMP adoption overall. Here are the highlights.

Much of Touchlab’s focus in the KMP library space is on iOS developer experience and on helping teams build with Kotlin. As the platform matures and adoption grows, updating and improving these tools is critical. For teams looking to get started with KMP, and for developers who have struggled with the exported iOS API, these updates are especially useful.

SKIE

SKIE (Swift/Kotlin Interface Enhancer) is our flagship KMP and iOS Dev Ex tool. It targets the interface exported from Kotlin to iOS. As most people who have tried KMP know, Kotlin provides excellent interop to Swift, but this is relative to other options. For various technical reasons, much the rich modern language API provided by Kotlin is lost. SKIE augments the API to bring those features back.

SKIE introduces true Coroutines interop, as well as real Swift enums, sealed class support, and default parameters, among other quality-of-life features.

There’s a lot of magic in exactly how this all works, which is best left to the docs. In summary, SKIE is a drop-in enhancement that, among other things, produces real Swift code and true Swift APIs.

See the SKIE is Open Source announcement for all of the details.

If you have existing code, it is important to read the SKIE Migration Guide as SKIE will change types. We also provide support with Touchlab Pro, and direct Migration services for teams looking to get started on a solid footing.

SKIE Demo Project

The best way to really understand SKIE’s features is to check out the SKIE Demo Project. It is a very simple application that walks through exactly what each feature does.

Youtube Live SKIE Demo and Q&A

We’ll be doing a live code walkthrough of the demo project and answering questions! Check out the Youtube Live SKIE Demo and Q&A this coming Thursday, September 28th, 10am EST!

Kermit 2.0

Kermit is our multiplatform logging library. We’ve released our first official 2.0 version. We’ve used the library in many projects, and have had lots of feedback. This update reflects a maturing of the API, and adds flexibility for users who would prefer a custom API surface on top of a flexible, configurable base library.

CrashKiOS Updates

CrashKiOS allows production iOS applications to see symbolicated crash reports from Kotlin code, with Crashlytics or Bugsnag (possibly Sentry again soon). This update is mostly sample and version bumps, but also includes a critical fix for Bugsnag (shout out to Rick for figuring out the hard stuff :)).

Stately 2.0

Stately’s original purpose was to help with the Kotlin/Native strict memory model. That memory model has been deprecated. However, Stately has some other useful concurrency features, and not everybody has moved off of the strict memory model. Stately 2.0 provides concurrency primitives, concurrent collections, and updated “legacy” modules for teams still working with the strict memory model.

KMMBridge

KMMBridge is Gradle tool that allows you publish Kotlin Xcode Framework binaries. This is necessary tooling for many teams integrating Kotlin into production environments. Since its introduction we’ve had a lot of feedback resulting in an overhauled and simplified design. Our first updated release should be launching in the next few days. Sign up for the newsletter🗞, watch the blog, or keep an eye on the #touchlab-tools channel in the Kotlin slack for updates!