Carsten Sandtner mediaman GmbH

„Flutter ist durchdacht und macht wirklich Spaß. Schnell eine App-Idee umsetzen oder etwas mit einem Proof of Concept testen? Mit Flutter kein Problem. Wer sich in das Widgetsystem eingearbeitet hat, wird es zu schätzen wissen.“

Google veröffentlichte 2017 die erste Alphaversion eines neuen Frameworks zur Entwicklung von plattformunabhängigen mobilen Applikationen. Das auf den Namen Flutter getaufte Framework basiert auf der Programmiersprache Dart und verfolgt einen anderen Ansatz als bisherige Frameworks, wie beispielsweise Facebooks React Native oder Native Script von Telerik. Seit Dezember 2018 hat das Projekt Version 1.0 erreicht.

Flutter tritt an, um die plattformunabhängige App-Entwicklung zu vereinfachen. Anders als bereits existierende Frameworks verwendet Flutter nicht die nativen UI-Komponenten der Plattformen. Zum Zeichnen der Komponenten wird eine eigene Rendering-Engine namens Skia benutzt. Damit das Look and Feel der jeweiligen Plattformen gewährleistet wird, hat das Flutter-Team alle wichtigen Elemente von iOS und Android nachgebaut (wobei iOS etwas stiefmütterlich behandelt wird, Androids Material Design dagegen erwartungsgemäß gut umgesetzt ist). Was im ersten Moment wie ein Nachteil klingt, ist bei Apps mit eigenem Design und Branding keiner mehr. Hier hat Flutter eindeutig seine Stärken. Was das im Einzelnen bedeutet, sehen wir im weiteren Verlauf des Artikels genauer. Doch so viel vorab: Einen UI-Design-Editor wird bei Flutter nicht mitgeliefert. Weder Xcodes Storyboard noch Androids Layouteditor werden unterstützt. Die Beschreibung des UI ist, ähnlich wie bei React oder VueJS, im Quellcode verankert. Das macht Flutter vor allem für Entwickler sehr intuitiv und einfach zu erlernen und ist weniger tragisch, als es im ersten Moment erscheint.

Dart?

Flutter basiert auf Googles hauseigener Programmiersprache Dart. Version 1.0 ist 2013 erschienen, inzwischen ist Version 2.0 aktuell. Dart hat den Anspruch, für die Web- und App-Entwicklung eine einfache, schnell zu erlernende und robuste Programmiersprache zu sein. Eine klare Syntax, viele bereits enthaltene Core-Module und ein großes Ökosystem von verfügbaren Paketen tragen ebenso dazu bei wie eine aktive Community.

Der Sprachsyntax ähnelt der von C, sodass der Umstieg von Sprachen wie C/C++, Java oder JavaScript schnell zu schaffen ist. Dart ist streng typisiert und objektorientiert. Durch die Kompilierung zu ARM- und x86-Code sind Dart-Programme auf mobilen Betriebssystemen, wie Android oder iOS, ausführbar. Ein Dart Transpiler sorgt für die Konvertierung in JavaScript-Code, was Dart auch im Web zu einer Alternative machen soll. Dart kann den Quelltext in zwei Varianten kompilieren:

  • JIT: Wie bei JavaScript wird der Code just in time während der Ausführung kompiliert bzw. interpretiert. Das ermöglicht ein Hot Reloading der Programme während der Entwicklung. Auf diesen nicht unerheblichen Vorteil während der Entwicklung kommen wir später zurück.
  • AOT: Ahead-of-Time-Kompilierung erstellt nativen ARM- oder x86-Code, der so die Ausführung auf den Endgeräten ermöglicht und damit erst die Distribution als App. Bekanntermaßen erlauben manche Plattformen keinen Interpreter in einer App.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 3.19 - "Machine Learning mit Python"

Alle Infos zum Heft
579886551App-Entwicklung mit Googles Cross Platform Framework
X
- Gib Deinen Standort ein -
- or -