Android-Erweiterung soll Entwicklung mit Kotlin vereinfachen

Google hat mit Android KTX eine Erweiterung veröffentlicht, mit der in Kotlin verfasste Android-Software die Vorzüge der Programmiersprache gegenüber Java ausspielen kann.

In Pocket speichern vorlesen Druckansicht 13 Kommentare lesen
Eine Android-Erweiterung soll Entwicklung mit Kotlin vereinfachen
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag

Nachdem Google im Frühjahr 2017 Kotlin neben Java zur offiziellen Programmiersprache für Android erklärt hat, hielt JetBrains JVM-Sprache Einzug in Android Studio 3.0. Entwickler können damit zwar Anwendungen vollständig mit Kotlin erstellen, die Ausrichtung auf Java schimmert jedoch noch in vielen Bereichen durch. Das will das Android-Team mit einer Erweiterung nun ändern.

Android KTX bietet eine API-Schicht für Kotlin zum Zugriff auf die Android-Aufrufe. Sie zielt auf die Funktionen, die Kotlin von Haus aus mitbringt, aber in Java fehlen. Außerdem setzt sie einige Methoden so um, wie Kotlin-Entwickler sie gewohnt sind. Ein einfaches Beispiel ist die Umwandlung eines Strings in eine URI. In der herkömmlichen Android-API dient dazu der Befehl

val uri = Uri.parse(myUriString) 

Da Kotlin-Entwickler jedoch gewohnt sind, Typumwandlungen über Befehle im Format .toInt oder .toPattern durchzuführen, bietet die Extension für URIs eine analoge Methode:

val uri = myUriString.toUri()

Während die String-Umwandlung nur syntaktischer Zucker ist, wird Kotlin-Code an anderen Stellen nicht nur deutlich kürzer, sondern auch übersichtlicher, wie folgendes Beispiel vom GitHub-Repository zeigt, das den Codeblock:

view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
})

auf folgenden reduziert:

view.doOnPreDraw {
actionToBeTriggered()
}

Das gezeigte Einfügen einer Callback-Funktion, die das System aufruft, bevor die Ansicht neu gezeichnet wird, zeigt, wie die Extension die Syntax auf das Wesentliche reduziert und die ansonsten erforderlichen Wrapper entfernt. Um Android KTX zu verwenden, müssen Entwickler es in "build.gradle" integrieren, in der aktuellen Version 0.1 mit folgendem Eintrag:

implementation 'androidx.core:core-ktx:0.1'

Derzeit befindet sich die Erweiterung in der Preview-Phase, sodass die APIs vor dem Erreichen von Version 1.0 nicht als stabil angesehen werden dürfen. Bisher deckt Android KTX nur das Android-Framework ab, Ergänzungen für die Android Support Library befinden sich in Planung. Weitere Details lassen sich dem Android-Entwicklerblog und dem GitHub-Repo entnehmen. Die vollständige API-Dokumentation ist ebenfalls auf GitHub zu finden.

Googles Erweiterung für Kotlin-Entwickler ist nicht die erste für die Android-Plattform. JetBrains, das Unternehmen hinter der JVM-Sprache, bietet mit den Kotlin Android Extensions ein Plug-in, das ebenfalls den Code übersichtlicher und kompakter gestaltet. Es zeichnet sich unter anderem dadurch aus, dass es den Aufruf findViewById() kapselt. Dabei nimmt es Entwicklern nicht nur den zusätzlichen Aufruf ab, sodass sie die Inhalte der Elemente beispielsweise über button1.text = "Drück mich" direkt als Property setzen können, sondern optimiert zusätzlich das Laufzeitverhalten durch das Cachen von Views in Containern. Wünschenswert wäre, dass mittelfristig beide Erweiterungen überflüssig werden und Android eine native Kotlin-API erhält. (rme)