Kotlin/Native v0.6 is Here!

Posted on by

We are pleased to announce Kotlin/Native v0.6 (Valentine’s Day release) of our toolchain. This is a major update, including the following features:

Support for multiplatform projects in compiler and Gradle plugin

Transparent Objective-C/Kotlin container classes interoperability

Support first embedded target (STM32 board)

Kotlin 1.2.20, Gradle 4.5 and Java 9 supported

Smaller WebAssembly binaries (basic applications is around 160KiB now)

CLion plugin update for CLion 2018.1 (fixed the issue with macOS platform libraries indexer)

With v0.6 we brought Kotlin/Native multiplatform projects support, so same Gradle build could be used for different Kotlin backends, such as JVM, Native and JS. See this repository for usage example.

Also, we finally provide an ability to create Kotlin/Native programs aimed for embedded targets, such as STM32-based microcontrollers (using Zephyr Project kernel). Note that support is still experimental so your mileage may vary, and there are some shortcomings around C interoperability, which will be fixed in upcoming releases.

One interesting feature of v0.6 is support for transparent collections interoperability in -produce framework operational mode. It means, one could transparently use Kotlin’s List , MutableList , Set , MutableSet , Map and MutableMap as Objective-C/Swift collections, such as NSList , NSMutableList , NSSet , NSMutableSet , NSDictionary and NSMutableDictionary respectively, when compiling Kotlin code to the framework.

An important goal of this release was to improve usability and stability of the compiler, so we fixed a number of known bugs and Kotlin/JVM incompatibilities.

And finally, a plugin for CLion 2018.1 with support for Kotlin/Native v0.6 is available. Due to certain technical reasons, it’s not possible to automatically update to the new version this time, so you need to manually install it from here.

Enjoy this release, and may love be with you!

Binaries can be downloaded from the following links: macOS, Linux, Windows

GitHub release page is here.