Podcast
Videos
September 6, 2022
Nov 2022
6 Min

Kotlin, eine Alternative zu Java in der Android Entwicklung?

Eine junge, moderne Programmiersprache hat sich seit der Google I/O Keynote am 17. Mai 2017 unter den Android Entwicklern Gehör verschafft. Das Android Team verkündete die volle Unterstützung von Kotlin bei der Entwicklung von Android Apps mithilfe von Android Studio.

Schon in den Wochen danach wurde das Thema bei uns diskutiert und nun entsteht bereits die erste App unter der Verwendung von Kotlin. In diesem Artikel möchten wir einige Vorteile gegenüber Java und bei der Verwendung des Android Frameworks vorstellen.

Kotlin ist eine statisch-typisierte Programmiersprache, welche auf der Java Virtual Machine läuft und auch als JavaScript kompiliert werden kann. Seit 2011 entwickelt JetBrains die neue Sprache als Alternative oder Ergänzung zu Java. Dabei ist es den Entwicklern gelungen eine Sprache zu schaffen, die ausdrucksstark, präzise, leicht zu lesen und zu schreiben ist.

JetBrains unterstützt Entwickler beim Erlernen der Sprache durch eine 100% Kompatibilität mit Java. Das heißt man muss kein neues Projekt aufsetzten und alles sofort konvertieren, sondern kann Stück für Stück anfangen einzelne Klassen in Kotlin zu schreiben. Als Hilfestellung kann man den Code auch von der IDE konvertieren lassen. Das funktioniert sowohl in Richtung Kotlin, als auch in Richtung Java. Im Rahmen der Android Entwicklung ist mit Android Studio 3.0 der Support für Kotlin direkt integriert und alle existierenden Android Bibliotheken können zusammen  mit der neuen Sprache verwendet werden.

Im Folgenden sind Beispiele aufgeführt, welche Besonderheiten und Vorteile Kotlins im Vergleich zu Java deutlich machen.

Syntax

Die Syntax ist vertraut für Programmierer aus der Objekt Orientierung und kann sofort verstanden werden.

Typinferenz

Kotlin schließt auf Datentypen, je nach Zuweisung.

Null

Als Java-Entwickler muss man in ständiger Angst einer NullPointerException leben und diese möglichst verhindern. Kotlin löst dieses Problem, indem Datentypen per Default nicht Null sein können. Mit einem ? lässt man auch Null als Wert zu und verhindert bei benutzen der Variable eine NPE. Möchte man, dass die Exception geworfen wird, setzt man !!.

Strings

Intelligente Casts

Kotlin verfolgt die Logik und castet automatisch, wenn möglich.

When

Der When-Ausdruck ersetzt das Switch-Case. Die Abfragen sind sehr flexibel und bedeutend kürzer als in Java.

Zahlenbereiche

Datenobjekt

Hier zu sehen ist ein POJO reduziert auf wenige Zeilen. Enthalten sind Getter, Setter, toString(), equals(), hashCode() und copy().

Nicht zuletzt möchten wir nun vorstellen, wie Kotlin das Entwickeln speziell im Bereich der Android Entwicklung einfacher und übersichtlicher macht.

Wer schon einmal Android entwickelt hat, kennt die Funktion findViewById(). Mit dieser Funktion werden die Layoutelemente aus den XML-Dateien angesprochen und Instanzen in Java erstellt, um diese zur Laufzeit zu verändern oder Events abzufangen. Jedes Layoutelement (View) muss dabei einzeln gefunden werden, um darauf zugreifen zu können. Diesen Overhead reduziert Kotlin auf eine Zeile. Ist die Layoutdatei einmal importiert, können die einzelnen Views direkt durch ihre Ids, welche in den XML-Dateien vergeben werden, angesprochen werden.

Mehr Informationen über die Möglichkeiten von Kotlin sind hier zu finden.

Nachdem wir nun schon in einem ersten Projekt mit Kotlin gearbeitet haben, werden weitere Folgen, um mehr Erfahrungen mit der neuen Programmiersprache zu sammeln und diese auf ihre Qualität zu testen.

Bisher habe ich eigentlich nur positive Erfahrungen mit Kotlin gemacht: Features wie Data Classes oder Lambdas machen es leicht, kompakten Code ohne unnötiges Boilerplate zu schreiben und die eingebaute Null-Safety hat mich schon an einigen Stellen vor Schlimmeren bewahrt. Und auch der Einstieg in die Programmiersprache gestaltete sich dank der guten Dokumentation und der von Android Studio gebotenen Funktion, Java Code direkt in äquivalenten Kotlin Code zu übersetzten, denkbar einfach. Jonas Mehlhaus, App-Entwickler
Andreas Link
Andreas Link
Anh Dung Pham
Anh Dung Pham
Cihat Gündüz
Cihat Gündüz
Andreas Link
Ekrem Sentürk
Eva Maria Stock
Eva-Marie Stock
Andreas Link
Giulia Maier
Inken Marei Kolthoff
Inken Marei Kolthoff
Janina Baumann
Janina Baumann
Janina Bokeloh
Janina Bokeloh
Jeanette Schmidt
Jeanette Schmidt
Jens Krug
Jens Krug
Kajorn Pathomkeerati
Kajorn Pathomkeerati
Karl Barth
Karl Barth
Kay Dollt
Kay Dollt
Murat Yilmaz
Murat Yilmaz
Thorsten Hack
Thorsten Hack
Thorsten Hack
Thorsten Hack
Inken Marei Kolthoff
Cynthia Murat
Inhaltsverzeichnis

Weitere Artikel

Structures in Progress
Kay Dollt
26.11.2022
3 Min

Structures in Progress

Ist das auch skalierbar? Das ist die entscheidende Frage für viele Startups, wenn das Geschäftsmodell erfolgreich ist.

Artikel lesen
Sicherheitskonzept mit Jamit Labs Apps - Workshop auf der 13. Structured FINANCE
Janina Baumann
26.11.2022
3 Min

Sicherheitskonzept mit Jamit Labs Apps - Workshop auf der 13. Structured FINANCE

Die Structured FINANCE ist eine Kongressmesse für Unternehmensfinanzierung und gilt als die Leitveranstaltung für CFOs und Treasurer.

Artikel lesen
Bitrise CI für iOS optimal nutzen - automatisiert und schnell
Cihat Gündüz
26.11.2022
12 Min

Bitrise CI für iOS optimal nutzen - automatisiert und schnell

Nachdem wir das Basis-Setup erfolgreich abgeschlossen haben, können wir uns nun daran machen, wiederkehrende Aufgaben zu automatisieren und schneller zu machen. Insbesondere soll um diese Punkte gehen:

Artikel lesen

Jetzt kostenloses Strategiegespräch sichern!

Die Beratungen sind grundsätzlich schnell ausgebucht, deshalb fülle jetzt in 2 Minuten das kurze Formular aus.

Jetzt Strategiegespräch sichern