ProCust
Kotlin für Android: Warum es zum Standard wurde

Kotlin für Android: Warum es zum Standard wurde

Warum Google Kotlin zur ersten Wahl für Android-Apps gemacht hat, was die Sprache besser kann als Java und wann native App-Entwicklung sinnvoll ist.

Kurz gefasst: Kotlin ist seit 2019 Googles bevorzugte Sprache für die Android-Entwicklung, und moderne Werkzeuge wie Jetpack Compose sind ausschließlich für Kotlin gebaut. Die Sprache ist kürzer und sicherer als Java, vor allem durch eingebaute Null-Sicherheit und Coroutines für asynchronen Code, und bleibt dabei voll mit bestehendem Java-Code kompatibel. Wer heute eine native Android-App entwickelt, schreibt sie in Kotlin. Offen ist nur, ob eine native App oder ein Cross-Platform-Ansatz besser zu Ihrem Projekt passt.

Wie Kotlin zur Standardsprache für Android wurde

Kotlin stammt von JetBrains, dem Hersteller von IntelliJ IDEA, auf dem auch Android Studio basiert. Die erste stabile Version erschien 2016. Auf der Google I/O 2017 kündigte Google die offizielle Unterstützung für Android an, 2019 folgte die Ankündigung "Kotlin-first": Neue Bibliotheken, Dokumentation und Beispiele entstehen seitdem zuerst für Kotlin.

Der Wechsel kam nicht aus dem Nichts. Android-Entwickler arbeiteten lange mit einer älteren Java-Version, weil die Plattform neuere Sprachfunktionen nur verzögert unterstützte. Kotlin brachte moderne Konzepte auf die bestehende Java-Laufzeit, ohne dass vorhandener Code neu geschrieben werden musste. Beide Sprachen lassen sich in einem Projekt mischen, sodass Teams Datei für Datei umstellen konnten.

Was Kotlin in der App-Entwicklung besser macht

Null-Sicherheit

Einer der häufigsten Absturzgründe in Java-Apps ist die NullPointerException: Ein Programmteil greift auf ein Objekt zu, das nicht existiert. Kotlin unterscheidet im Typsystem zwischen Werten, die leer sein dürfen, und solchen, die es nicht dürfen. Der Compiler zwingt Entwickler, den leeren Fall zu behandeln, bevor die App überhaupt gebaut wird. Diese Fehlerklasse wird dadurch deutlich seltener.

Weniger Code für dieselbe Aufgabe

Datenklassen, Typinferenz, Erweiterungsfunktionen und eine kompakte Syntax für Lambdas sorgen dafür, dass derselbe Sachverhalt mit weniger Zeilen ausgedrückt wird. Weniger Code heißt nicht automatisch bessere Software, aber er ist leichter zu lesen und zu prüfen.

Coroutines für asynchrone Abläufe

Apps laden ständig Daten aus dem Netz, lesen Datenbanken oder warten auf Sensoren. Mit Coroutines schreibt man solche Abläufe so, als liefen sie nacheinander ab, obwohl sie die Oberfläche nicht blockieren. Das ist übersichtlicher als verschachtelte Callbacks und reduziert typische Fehler wie hängende Bildschirme.

Jetpack Compose

Compose ist das moderne Oberflächen-Framework für Android. Statt Layouts in XML zu beschreiben, definiert man die Oberfläche direkt in Kotlin als Funktion des aktuellen Zustands. Compose ist seit 2021 stabil und funktioniert nur mit Kotlin. Spätestens damit ist die Sprache für neue Android-Projekte gesetzt.

Kotlin über Android hinaus

Kotlin läuft auch auf dem Server, etwa mit Spring Boot oder Ktor. Für die App-Entwicklung besonders interessant ist Kotlin Multiplatform: Geschäftslogik, Netzwerkzugriff und Datenhaltung werden einmal in Kotlin geschrieben und auf Android und iOS geteilt, während die Oberfläche nativ bleiben kann. Kotlin Multiplatform gilt seit Ende 2023 als stabil. Für Teams mit starkem Android-Hintergrund ist das eine Alternative zu React Native oder Flutter.

Native Android-App oder Cross-Platform?

Kotlin ist die richtige Sprache, wenn Sie eine native Android-App bauen. Die eigentliche Projektfrage lautet aber oft: Brauchen Sie überhaupt zwei native Apps?

Eine native Entwicklung mit Kotlin für Android und Swift für iOS lohnt sich, wenn die App eng mit der Hardware arbeitet, etwa mit Bluetooth-Geräten, Kamera-Pipelines oder Hintergrunddiensten, oder wenn höchste Performance gefragt ist. Sie bedeutet aber auch zwei Codebasen und meist zwei Spezialisierungen im Team. Wie die iOS-Seite aussieht, beschreiben wir in Ihre erste iOS-App mit Swift.

Für viele Business-Apps ist ein Cross-Platform-Framework wirtschaftlicher. React Native und Flutter liefern mit einer Codebasis beide Plattformen und erreichen bei typischen Anwendungen eine Performance, die Nutzer nicht von nativen Apps unterscheiden. Den Vergleich finden Sie in React Native vs. Flutter und in unserer Einordnung zur Performance von nativen und Cross-Platform-Apps. Auch bei Cross-Platform-Apps kommt Kotlin übrigens zum Einsatz, nämlich dort, wo native Module für Android geschrieben werden müssen.

Häufige Fragen (FAQ)

Muss eine bestehende Java-App auf Kotlin umgeschrieben werden?

Nein. Java und Kotlin laufen im selben Projekt nebeneinander. Sinnvoll ist es, neue Funktionen in Kotlin zu schreiben und bestehenden Code schrittweise umzustellen, wenn er ohnehin angefasst wird.

Ist Kotlin langsamer als Java?

Im Betrieb praktisch nicht. Kotlin wird wie Java zu Bytecode kompiliert und läuft auf derselben Android-Laufzeit. Die Build-Zeiten können etwas länger sein, das betrifft aber nur die Entwicklung.

Kann ich mit Kotlin auch eine iOS-App bauen?

Mit Kotlin Multiplatform können Sie die Logik einer App für iOS mitnutzen. Die Oberfläche wird entweder nativ in SwiftUI gebaut oder mit Compose Multiplatform geteilt. Für reine iOS-Projekte bleibt Swift die naheliegende Wahl.

Wann ist eine native Kotlin-App die bessere Wahl als React Native?

Wenn die App tief in Android-Funktionen eingreift, sehr rechenintensiv ist oder nur auf Android erscheinen soll, etwa bei Geräten für Lager und Logistik. Für klassische Business-Apps auf beiden Plattformen ist Cross-Platform meist günstiger.

Fazit

Kotlin hat sich durchgesetzt, weil es die konkreten Schwächen von Java auf Android behoben hat, ohne bestehende Projekte zu entwerten. Die Sprachwahl ist für native Android-Apps damit entschieden, die Architekturfrage zwischen nativ und Cross-Platform sollten Sie dagegen für jedes Projekt neu stellen.

Wenn Sie eine Android- oder iOS-App planen und den passenden Ansatz finden möchten, sprechen Sie mit uns über App-Entwicklung.