Lars Vogel Geschäftsführer der vogella GmbH

„Wir sind erleichtert, mit Visual Studio Code endlich einmal ein elegantes Tooling an die Hand und eine Pause vom langsamen Android Studio zu bekommen.“

Jonas Hungershausen Freelancer

„Die Ansätze von Dart empfinden wir als erfrischend neu nach vielen Jahren der mobilen Entwicklung mit Java und den unhandlichen Android-XML-Layoutfiles.“

Google schickt ein neues Betriebssystem, Google Fuchsia, um die Gunst der User ins Rennen, und verunsichert damit ein wenig die Gemeinschaft der Android-Entwickler. Passend zum neuen Betriebssystem hat Google das Flutter SDK entwickelt, mit dem man für Fuchsia Applikationen erstellen kann. Flutter eignet sich allerdings nicht nur für die Entwicklung von Fuchsia-Anwendungen, sondern auch für solche, die auf Android sowie iOS laufen – und das mit (fast) der gleichen Codebasis.

Google Fuchsia ist ein Echtzeitsystem, das auf einem neuen Mikrokernel, genannt Zircon (ehem. Magenta), basiert. Das neue OS unterscheidet sich von Googles bislang entwickelten Betriebssystemen (Android und Chrome OS), die auf dem Linux-Kernel basieren. Magenta wurde seinerzeit vom Projekt „Little Kernel“ abgeleitet, das ursprünglich als Android Bootloader diente und in C geschrieben ist. Laut Google soll Fuchsia das Android-Betriebssystem irgendwann ersetzen. Interessant ist außerdem, dass Googles neues OS unter sehr freizügigen Lizenzen (eine Kombination aus BSD-, MIT- und Apache-Lizenz) stehen wird und man sich damit von der GPL, die für Linux verwendet wird, verabschiedet. Das macht sicherlich die kommerzielle Adaption für andere Unternehmen attraktiver, da durch die Nutzung dieser Lizenzen keine Verpflichtung besteht, eigene Änderungen am Betriebssystem erneut zu veröffentlichen.

Das speziell für Fuchsia-, aber auch für die Entwicklung von Android- und iOS-Anwendungen vorgesehene Flutter SDK nutzt die Programmiersprache Dart, also nicht mehr Java oder Kotlin für die gewohnte Entwicklung von Apps mit dem Android SDK. Man fragt sich nun, was das Ganze soll. Ist Google nicht mehr mit Android und den entsprechenden Enwicklungstools zufrieden? Und sind Java bzw. Kotlin doch nicht mehr die Sprachen der Wahl für mobile Applikationen? Genaues weiß man natürlich nicht. Aber allein die Tatsache, dass Google offensichtlich ordentlich in ein neues System investiert, lässt einen entweder auf etwas Neues hoffen oder es wird einem angst und bange, je nach Einstellung.

Die Programmiersprache Dart

Flutter-Applikationen erstellt man also mit Dart. Warum aber gerade Dart und nicht Java oder Kotlin? Aus dem Hause Google heißt es dazu, dass man sich dutzende Programmiersprachen angeschaut und sich dann für Dart entschieden hat, weil es besser als vergleichbare Sprachen sein soll. Ob das stimmt, sei einmal dahingestellt. Google gab jedenfalls vor einiger Zeit schon bekannt, dass man AdSense auf die hauseigene JavaScript-Alternative umgestellt habe, was das Bekenntnis des Suchmaschinenriesen zu Dart jedenfalls bestätigt. Denn mit AdSense (Googles Lösung für Werbung im Internet) verdient man in Mountain View immer noch einen Löwenanteil des Gewinns. Somit basiert der kritischste Teil von Googles Infrastruktur auf Dart. Von daher macht es sicherlich Sinn, wenn Google andere versucht zu motivieren, diese Programmiersprache ebenfalls zu nutzen. Außerdem ist das Unternehmen ja immer noch in einem Rechtsstreit mit Oracle wegen der Nutzung der Java-APIs in Android, was aus Sicht von Google zusätzlich für eine Alternative sprechen dürfte. Und zu guter Letzt wird Dart, wie oben bereits erwähnt, ausschließlich von Google entwickelt – was sicherlich auch im Sinne des Unternehmens ist, das sich nicht gerne an Open-Source-Projekten anderer beteiligt.

Einer der gerne hervorgehobenen Punkte ist, dass Dart sowohl Ahead of Time (AoT) als auch Just in Time (JiT) kompiliert. Dart wird also in nativen Code übersetzt, kann aber wie Java zur Laufzeit noch nachoptimiert werden. Damit vereint es die Vorteile von Programmiersprachen wie C (AoT) und Java (JiT). Dabei kommen die Objekterzeugung und der Garbage Collector ohne Locks aus, d. h. Aussetzer wie in früheren Java-Zeiten sollen nicht mehr vorkommen.

Eine Sache, die den Autoren an dem Flutter SDK sehr gut gefällt ist, dass man User Interfaces direkt in der Programmiersprache über Properties definieren kann. Ganz ehrlich, mag irgendjemand die Android-XML-Layoutfiles wirklich? Wahrscheinlich keiner. Wenn man dann noch versucht, in diesen XML-Dateien das Android Data Binding zu verwenden, findet man sich sehr schnell in der XML-Hölle wieder. In Dart und Flutter geht die Definition von UIs hingegen direkt im Code und sieht auch noch elegant aus, wie das Beispiel in Listing 1 zeigt, das in Dart 1 geschrieben wurde. Der new-Operator ist außerdem zusammen mit dem const Keyword in Dart 2 obsolet, d. h. man kann dann Dart-Widgets noch eleganter schreiben.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 4.18 - "Déjà Vue.js?"

Alle Infos zum Heft
579845105Neue Android- und iOS-Welt mit dem Flutter SDK
X
- Gib Deinen Standort ein -
- or -