Moderne Android-Entwicklung mit Kotlin

Kotlin verspricht eine gut lesbare und prägnante Syntax, moderne Sprachfeatures und funktionale Programmierung bei hoher Sicherheit. Lässt die Java-Alternative durch ihr nahtloses Zusammenspiel mit Android auch die Herzen der App-Entwickler höher schlagen?

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen
Moderne Android-Entwicklung mit Kotlin
Lesezeit: 17 Min.
Von
  • Benjamin Schmid
Inhaltsverzeichnis

Nach gut fünf Jahren der Entwicklung brachte JetBrains im Februar 2016 die lange ersehnte Version Kotlin 1.0 heraus und versprach Stabilität: Künftige Kotlin-Versionen sollen an bestehendem Code keine Änderungen mehr erfordern. Als statisch typisierte Allzwecksprache für JVM und Browser lässt sich Kotlin überall einsetzen, wo Java läuft.

Einen ersten Eindruck der prägnanten Schreibweise und zugleich guten Lesbarkeit demonstriert das folgende erweiterte "Hello World". Auch ohne Vorerfahrungen dürfte das Beispiel den meisten Java-Entwicklern verständlich sein.

import java.util.*

fun main(args: Array<String>) {
val name = if (args.size > 0) args[0] else "Publikum"
val zuschauer = Gast(name, title = Title.wertes)

println(zuschauer)
println("Hallo ${zuschauer.title} $name")
}

data class Gast(val name: String,
var zeit: Date = Date(),
val title: Title?)
enum class Title { Herr, Frau, wertes }

Das Beispiel zeigt einige Eigenschaften, die das Arbeiten mit Kotlin effizient gestalten. Dazu gehören die prägnanten Schlüsselwörter und optionalen Semikolons am Zeilenende oder die Verwendung von Ausdrücken in String Templates. Parameter können Default-Werte tragen und werden damit optional.

Als statisch und streng typisierte Sprache bietet Kotlin die bekannt gute Typsicherheit, erspart dem Entwickler aber unnötige Tipparbeit. Dank Type Inference erschließen insbesondere lokale Variablen ihren Typ selbst, sodass Typangaben üblicherweise nur an Schnittstellen notwendig sind.

Die Data-Klasse Gast ist ein einfacher, erweiterbarer Werte-Container. Kotlin übernimmt viel vom klassischen Boilerplate-Code wie Getter- und Setter-Methoden, Nullwertprüfungen, die equals(), hashCode() und toString()-Implementierungen sowie einzelne Komfortfunktionen. So lassen sich Data Classes etwa wieder komfortabel in ihre einzelnen Properties zerlegen.

var (zname, _, ztitel) = zuschauer

Die funktionsgleiche Java-Implementierung der dreizeiligen Data Class Gast bringt es dagegen auf stattliche 100 Zeilen.

Dass Kotlin-Code trotz seiner Kürze dennoch gut und intuitiv lesbar ist, wird in der Praxis durch die kurze Einarbeitungszeit deutlich. Routinierten Java-Entwicklern genügt oft etwas Basiswissen und der Wunsch nach eleganterem Code, um sich – geführt durch Compiler und IDE – einen Großteil der Kotlin-Funktionen zu erschließen.

Dort wo Intuition nicht mehr genügt, hilft ein Blick in die gelungene Dokumentation. Für die ersten Schritte oder das weiterführende Studium eignen sich die Kotlin Koans. Dieses Curriculum aus 42 Lerneinheiten können Interessierte direkt im Browser oder mit dem "Kotlin Koans"-Plug-in in der freien IntelliJ IDE (leider nicht in Android Studio) abarbeiten.

Wenn es um Kotlin im Kontext der Android-Entwicklung geht, zeichnet sich die Sprache sicher vor allem durch ihre Interoperabilität aus. Trotz der vielen, fortschrittlichen Sprach-Features begnügt sich Kotlin mit Java-6-Bytecode und ist damit im Gegensatz zu Java 8 uneingeschränkt mit allen Android-Versionen kompatibel.

Im Projekt lassen sich sowohl Java- und Kotlin-Bibliotheken als auch einzelne Klassen des Quellcodes in beiden Sprachen frei mischen und können ohne Einschränkungen aufeinander zugreifen. Über eine Konvertierungsfunktion in Android Studio können Entwickler Bestandsprojekte stufenweise nach Kotlin migrieren und so im direkten Vergleich erleben. Der nahtlose Zugriff in beide Richtungen hebt Kotlin deutlich von anderen JVM-Sprachen ab.

Aus dem selben Hause wie Kotlin stammt auch IntelliJ IDEA. Die IDE bildet die Grundlage für Googles offizielle Entwicklungsumgebung Android Studio. Zudem setzt Androids Build-System Gradle ab Version 3 auf Kotlin als zusätzliche Möglichkeit für die Build-Definitionen. Beides verspricht exzellente Tooling-Integration und Zukunftssicherheit.

Der Einstieg in die App-Entwicklung mit Kotlin gelingt denkbar einfach. Unter File|Settings | Plugins lässt sich Kotlin via caps]Install JetBrains plugin[/caps] in Android Studio installieren. Einen Neustart später bietet die Tastenkombination Strg + Shift + A unter dem Stichwort Kotlin die Aktion Configure Kotlin in Project an. Und schon können Entwickler Kotlin im Projekt einsetzen. Eine ausführlichere Anleitung findet sich in der offiziellen Schritt-für-Schritt-Anleitung.

Über die Aktion Convert Java File to Kotlin File lassen sich nun einzelne Java-Klassen automatisch nach Kotlin überführen. In komplexeren Klassen sind gelegentlich im geringen Umfang manuelle Nacharbeiten erforderlich. In der Regel sind diese der strikten Nullwert-Behandlung in Kotlin geschuldet.