Interview mit MobileTech-Conference-Speaker Benedict Pregler

„Kotlin trifft einen wunden Punkt der Android-Entwickler“
Keine Kommentare

In dieser Woche hat JetBrains die erste Hauptversion der JVM-Sprache Kotlin veröffentlicht. Wir haben das Release zum Anlass genommen, MobileTechCon Speaker Benedict Pregler nach seinen Erfahrungen mit der JVM-Sprache zu befragen. Mit welchen Features kann Kotlin punkten? Und wo gibt es noch Verbesserungsbedarf?

Kotlin vs. Java, das ist ein bisschen wie David gegen Goliath. Warum ist Kotlin für dich eine gute Alternative für die Android-Entwicklung?

Benedict Pregler: Bei der Android-Entwicklung mit Java muss bedacht werden, dass noch größtenteils Java 6 verwendet wird. Daher können die lang ersehnten Features aus der aktuellen Java 8 Version gar nicht verwendet werden. Zwar hat Google angekündigt, auf das aktuelle OpenJDK zu wechseln, bis aber alle Geräte diese Version unterstützen, wird es noch sehr lange dauern.

Daher trifft JetBrains mit Kotlin einen wunden Punkt der Android-Entwickler. JetBrains hat es geschafft, eine stark typisierte Sprache zu erschaffen, welche auch an sehr vielen Stellen sogenannten Boilerplate Code vermeidet, eine flache Lernkurve hat und – meiner Meinung nach – schlussendlich mehr Spaß macht als Java. Nicht zu vergessen ist die sehr gute Integration in die IDE. Hier liegt der Vorteil darin, dass die Sprache von JetBrains kommt, die außerdem den Unterbau von Android-Studio machen und sich mit dem Programmieren und den Wünschen eines Programmierers sehr gut auskennen.

Welche Sprachfeatures würdest du hier besonders herausstellen?

Benedict Pregler: Mit Java 8 konnten endlich Lambdas benutzt werden und diese gibt es natürlich auch mit Kotlin. Folglich kann mit Kotlin ebenso funktional programmiert werden. Ein weiterer Punkt, welcher viele schon von anderen Sprachen kennen, sind Optionals. Wenn es möglich ist, dass ein Objekt zu einem beliebigen Zeitpunkt den Wert null annehmen kann, so muss es unter Kotlin ein Optional sein. Dies verhindert viele Null Pointer Exceptions und ist überdies beim Programmieren um einiges angenehmer, da sofort ersichtlich ist, dass dieses Objekt null sein kann.

Aber der wichtigste Punkt für viele ist die 100% Interoperabilität mit Java. Das heißt, ich kann ohne Probleme Java-Code aus meinem Kotlin-Code aufrufen und natürlich auch umgekehrt. Dadurch können weiterhin alle bekannten Java-Bibliotheken benutzt werden und bei einer Umstellung von Java auf Kotlin muss nicht sofort das ganze Projekt umgeschrieben werden.

Lesen Sie auch: Mobiler Mehrwert – warum gute Apps mehr sind, als responsive Website-Versionen

Was muss man bei der Integration von Kotlin in Android Studio beachten?

Benedict Pregler: Android-Studio und Kotlin kommen von JetBrains, daher ist die Integration in Android-Studio perfekt. Deshalb ist es nur nötig, Kotlin als Plug-in in Android Studio zu installieren und zu aktivieren. Das Plug-in kann sogar automatisch Kotlin für das aktuelle Android-Projekt aktivieren (die build.gradle anpassen) und es enthält weiterhin einen einfachen Java-zu-Kotlin-Konverter.

Dieser Konverter funktioniert prinzipiell gut. Aber meine Empfehlung wäre, noch den entstandenen Kotlin-Code zu refakturieren. Der Konverter erkennt nicht, wo im konvertierten Code neue coole Kotlin- Sprachfeatures genutzt werden können, wie z.B. Lambdas.

Kotlin schreibt sich auf die Fahne, Boilerplate Code zu vermeiden. Klingt ja erst mal super. Kannst du Beispiele nennen?

Benedict Pregler: Sehr viel Code kann zum Beispiel bei dem Datenmodell gespart werden, so kann mit Kotlin eine sogenannte Dataclass in einer Zeile erstellt werden. Diese Dataclass ist vergleichbar mit einem POJO in Java, das nur Daten halten soll. Mit dem Zusatz, dass eine Dataclass automatisch Getter, Setter, equals(), hashCode(), toString() und copy() enthält. Daher kann man sich auf die wichtigen Dinge konzentrieren und die Klasse wird nicht mit Getter und Setter aufgebläht. Natürlich besteht weiterhin die Möglichkeit, die jeweiligen Getter, Setter sowie die Methoden anzupassen.

Ein weiteres Beispiel sind die Extension-Methoden und -Property. Extensions können an jede Klasse angehängt werden und sind dann wie eine Methode, welche die Klasse bereitstellt, benutzbar. Es ist nicht nötig, den Code dieser Klasse zu erben oder ein Entwurfsmuster wie den Dekorierer zu verwenden. Ferner kann die Extension, theoretisch, überall im Code definiert werden. Mit Java ist es üblich, sehr viele Utils-Klassen und Methoden zu definieren. Dies wird bei Kotlin mit den Extensions eleganter gelöst und ist auch beim aufrufen und später beim Lesen des Codes sehr viel präziser und angenehmer. Ein einfaches Beispiel wäre an der String-Klasse die Extension getAllVowels() zu definieren und damit kann nun an jedem String “EinString”.getAllVowels() aufgerufen werden.

Wo hapert es derzeit noch bei Kotlin, wenn man es für Android einsetzen möchte? Was würdest du dir in dieser Hinsicht noch wünschen?

Benedict Pregler: Möchte man sehr penibel sein, so gibt es an manchen Stellen noch nicht die gewohnte Vorschläge der IDE, um einen Fehler zu beheben. Diese falschen Vorschläge werden aber mit jedem neuen Update weniger und damit immer seltener. Auch ist dies etwas, was nicht vom Coden mit Kotlin abhält oder auch die Ausführung verhindert.

Wünschen würde ich mir eher von der Android-Entwickler-Community, mal einen Blick zu riskieren, dazu gibt es mittlerweile sehr viele Anleitungen und Beispiele online zu finden.

Benedict PreglerBenedict Pregler ist seit 2014 als Werkstudent bei der arconsis IT-Solutions GmbH in Karlsruhe tätig. Er beschäftigt sich intensiv mit der nativen Android-Entwicklung und verfolgt mit großem Enthusiasmus neue Entwicklungen rund um das Thema mobile Softwareentwicklung.


 Aufmacherbild: businessman hit on the face by punch via Shutterstock / Urheberrecht: Odor Zsolt

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -