iX 4/2019
S. 70
Review
Mobile Apps
Aufmacherbild

Cross-Plattform-Entwicklung mit Flutter

Aus einem Topf

Mit Googles neuem Cross-Plattform-Framework Flutter sollen sich ohne großen Aufwand aus derselben Codebasis mobile Apps für iOS und Android mit nativem Look-and-Feel erstellen lassen.

Flutter ist der neueste Wettbewerber in der Klasse der Cross-Plattform-Frameworks. Google hat Flutter 2015 als neues Projekt mit dem Codenamen „Sky“ zum ersten Mal öffentlich gezeigt. Die Version 1.0 wurde im Dezember 2018 veröffentlicht, seit Ende Februar 2019 ist Flutter 1.2 verfügbar.

Das Unternehmen hat Flutter von Anfang an für verschiedene Ökosysteme geplant. Die Definition einer Cross-Plattform-Technik für mobile Anwendungen bedeutet in der Praxis letztlich die Unterstützung von Android und iOS. Flutter bietet das, ist jedoch darüber hinaus als primäre UI-Technik für Googles Android-Nachfolger Fuchsia geplant. Liest man das Marketingmaterial, hören sich die enthaltenen Features für App-Entwickler wie die Erfüllung eines Traums an:

 einfache Cross-Plattform-Entwicklung für iOS und Android;

 schnelle Entwicklung inklusive Prototyping;

 Hot Reloading in der Entwicklungsumgebung;

 komplett native Codeausführung auf beiden Zielplattformen.

Dieser Artikel zeigt, ob Flutter diese Versprechen halten kann. Nach einem Blick auf die Architektur des Systems erklärt er, was hinter den Kulissen einer Flutter-App passiert und wie das Framework in der Gegenüberstellung mit vergleichbaren Produkten abschneidet.

Versucht man, die einzelnen Bestandteile zu definieren, stellt man schnell fest, dass Flutter sich gut in vier Bereiche unterteilen lässt. Diese Abgrenzung ist nicht völlig frei von Überlappungen. So hat Dart als integrierte Programmiersprache natürlich Einfluss auf den Kern des Systems sowie auf die UI-Widgets und umgekehrt. Die vier Bereiche sind:

 Dart als Flutters Programmiersprache

 Flutter Core

 Flutter Foundation Library

 Widgets

Von JavaScript zu Dart

Zunächst rief die Wahl von Dart als Flutters zugrunde liegender Programmiersprache auf dem Dart-Entwickler-Summit 2015 einige Überraschung hervor. Google hätte schließlich eine Vielzahl anderer Sprachen wählen können. Neben dem offensichtlich aufgrund seiner Verbreitung populären JavaScript nutzt das Unternehmen bereits Java und Kotlin für die native Entwicklung von Android-Apps.

Die Programmiersprache Dart hat eine weiter zurückliegende Geschichte als Flutter. Sie wurde 2011 auf der GOTO-Konferenz als Alternative zu JavaScript vorgestellt und 2013 als Dart 1.0 veröffentlicht. Frühe Versionen von Flutter basierten zunächst auf Dart 1, mittlerweile ist das Framework auf die Version 2 umgestellt. Die finale Version der Sprachspezifikation und des SDK von Dart 2 wurden Mitte 2018 und damit noch vor Flutter 1.0 veröffentlicht. Gegenwärtig ist Dart 2.2 aktuell.

In den ersten Jahren ihrer Existenz erlangte Dart einen gewissen Bekanntheitsgrad unter Webentwicklern. Das Ziel war zunächst, eine neue Sprache für die Programmierung von Webanwendungen zu schaffen. Dart sollte eine Alternative zu JavaScript sein und als native Laufzeitumgebung für Web-Apps in Googles Chrome dienen.