Kotlin 1.2.30 bringt Feinschliff und eine Anbindung an TestNG
Die Programmiersprache erlaubt nun auch Android-Module in Multiplattform-Projekten. Außerdem hat sie eine interessante Neuerung in der Standardbibliothek zu bieten.
![Kotlin 1.2.30 bringt Feinschliff und eine Anbindung an TestNG](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/3/8/2/1/1/4/javaleiter-2bec95c2787bde15.jpeg)
JetBrains hat Kotlin 1.2.30 veröffentlicht, das im Vergleich zu Version 1.2.20 der Programmiersprache vor allem Bugfixes, aber auch ein paar interessante Neuerungen bezüglich des Toolings enthält. Auch wenn das Release keine neuen Sprachfeatures mitbringt, gibt es eine nennenswerte Ergänzung in der Standardbibliothek in Form einer suspend-Funktion.
Neu ist zudem, dass sich nun Android-Projekte innerhalb der in Kotlin 1.2 eingeführten, aber noch experimentellen Multiplattformprojekte deklarieren lassen. Dazu müssen Entwickler im Gradle-Skript das Android-Plugin über apply plugin: 'kotlin-platform-android' einbinden. JetBrains hat als Einstiegshilfe ein einfaches Beispielprojekt veröffentlicht.
Hinsichtlich des Toolings sind vor allem zwei Neuerungen interessant. Entwickler können über kotlin.test.testng das TestNG-Framework innerhalb der Library kotlin.test verwenden. Außerdem ermöglicht das Werkzeug kapt zum Verarbeiten von Annotationen nun Links zum entsprechenden Kotlin-Code, statt wie bisher Stubs in Java beim Fehlerreport zu erzeugen. Um stattdessen auf Kotlin-Code zu verweisen, muss im kapt-Block innerhalb des Gradle-Skripts mapDiagnosticLocations = true stehen.
Lambdas mit Unterbrechung
Folgende auf den ersten Blick unscheinbare Funktion erweitert die Standardbibliothek von Kotlin:
public inline fun <R> suspend(
noinline block: suspend () -> R
): suspend () -> R = block
Sie stellt einen Wrapper für Funktionsliterale dar, um diese als sogenannte suspend function zu kennzeichnen. Solche Funktionen können den Ablauf unterbrechen, und zur Kennzeichnung dient in Kotlin der Funktionsmodifikator suspend. Der Aufruf einer solchen Funktion ist nur aus einer anderen suspend function oder einer Koroutine erlaubt. Der Wrapper ermöglicht das Kennzeichnen von Lambdas und bereitet die Einführung des suspend-Modifikators für Lambdas in einer künftigen Kotlin-Version vor.
Darüber hinaus gibt einige Ergänzungen und Bugfixes für das IntelliJ-Plug-in. Unter anderem lässt sich nun die Data-Flow-Analyse über gemischten Code aus Java und Kotlin durchführen.
Hintergründe und Plug-ins für Kotlin
Für Kotlin liegt auch das Tutorial "iX Thema – Einführung in die Programmierung mit Kotlin" als E-Book vor. Es ist für 7,99 Euro erhältlich.
Kotlin ist eine objektorientierte, statisch typisierte Programmiersprache aus dem Hause des Toolherstellers JetBrains, die ursprünglich hauptsächlich von einem Team in Sankt Petersburg entwickelt wurde und ihren Namen von einer Insel westlich der russischen Stadt hat. Im Mai erklärte Google Kotlin neben Java zur offiziellen Programmiersprache für Android.
Weitere Details wie die Ergänzungen für den Kotlin-Compiler lassen sich dem Blogbeitrag zu Kotlin 1.2.30 entnehmen. Das zugehörige Plug-in funktioniert mit den 2017.x-Versionen von IntelliJ IDEA, der Preview von IntelliJ 2018.1 und Android Studio 3.0. (rme)