Cross-Plattform-Entwicklung mit Flutter

Flutter, Googles Open Source Framework zur Entwicklung mobiler Apps, verfolgt den Ansatz, plattformübergreifende Entwicklung zu ermöglichen. Auch die iWelt konnte mit Flutter bereits erfolgreich Projekte umsetzen.

Schon bevor Google am 4. Dezember 2018 die Version 1.0 seines Cross-Plattform-Framework vorgestellt hat, war die neue Technologie für die iWelt interessant. Das Konzept der Cross-Plattform-Entwicklung ist keine Neuheit. Auch vorher gab es schon SDKs (Software Development Kits), die weltweit in großen Projekten benutzt wurden, wie zum Beispiel Cordova oder Xamarin. Doch was unterscheidet Flutter von anderen Cross-Plattform-SDKs?

Welche Vorteile bietet Flutter?

Ein großer Vorteil von Flutter ist, dass der Code auf dem Endgerät nicht interpretiert wird, sondern vor der Installation in nativen plattformspezifischen Code kompiliert wird. Eine damit entwickelte App liefert 60 Bilder pro Sekunde (also 60 fps). Dadurch hat man, neben einer besseren Performance, auch den Vorteil, dass man auf alle Ressourcen des Gerätes zugreifen kann.

 

Programmieren mit Flutter

Flutter Apps werden mit Dart programmiert. Diese Open-Source-Programmier-Sprache wird ebenfalls von Google entwickelt. Der Einstieg gelingt sehr schnell. Dank der Einführung auf der Website[1], können in wenigen Minuten alle Schritte von der Installation bis hin zum Test der ersten Demo-App durchgeführt werden.

Flutter ist darauf ausgelegt, optisch ansprechende, dynamische Benutzeroberflächen zu generieren. Jede Komponente, wie beispielsweise ein Button, Textfeld, oder auch ein Theme ist ein sogenanntes „Widget“. Diese können in vielen beliebigen Varianten miteinander kombiniert werden. Man kann aus einem großen Katalog aus Material- oder Cupertino-Style Widgets auswählen oder eigene Widgets erstellen. Widgets können einfach, ähnlich eines Baukastensystems, zu einer modernen Benutzeroberfläche zusammengestellt werden. Auch Animationen können mit wenig Zeilen Code hinzugefügt werden.

 

Auf welchen Devices funktioniert Flutter?

Momentan ist das Flutter-Framework darauf ausgelegt, Apps für Android- und iOS-Geräte exportieren zu können. Es gibt aber bereits Ansätze von Google, die es ermöglichen, Flutter-Apps auf anderen Betriebssystemen, wie MacOS, Windows und Linux, laufen zu lassen.

Außerdem gibt es das Projekt „Hummingbird“, das den Dart-Code in JavaScript umwandelt und es somit möglich macht, Flutter-Apps in Webbrowsern laufen zu lassen. Dieses Feature steht seit der Google I/O am 07.05.2019 bereits als „Technical Preview“ unter dem Namen „Flutter for web“ zur Verfügung[2]. Auch für den Fall, dass Google in Zukunft das Betriebssystem Android mit Fuchsia[3]ersetzt, ist man gewappnet, denn es ist heute bereits möglich Fuchsia-Apps mit Flutter[4]zu entwickeln. Teile der Watchfaces der kürzlich vorgestellten Smart Clock von Lenovo sind mit Flutter implementiert[5]. Das zeigt, dass Flutter in Zukunft noch wertvoller werden kann, da die entwickelten Programme möglicherweise auf den meisten Geräten verfügbar sein könnten.

Wo kommt Flutter bei der iWelt zum Einsatz?

Im Rahmen einer Bachelorarbeit nutzte die iWelt die Möglichkeiten, Flutter im Rahmen eines realen Projekts für die Würzburger Basketballmannschaft zu evaluieren. Ziel war es, die bis dahin nur unter iOS verfügbare App der „s.Oliver Würzburg“ neu in Flutter zu entwickeln. Die neue App sollte dann ebenfalls für Android erhältlich sein und den neuen Magento 2 Shop nativ anstatt „nur“ als WebView (siehe Abbildungen) einbinden. Die bekannten Funktionen wie Tabelle, Spielplan, Liveticker und News sollten ein moderneres Design bekommen. Auch Push-Benachrichtigungen für anstehende Livespiele oder Ankündigen von neuen Produkten im Fanshop sollten über die neue App empfangen werden können.

Die Umsetzung begann im November 2018. Bereits nach weniger als 6 Wochen im November konnte ein erster Stand präsentiert werden, der alle geforderten Features abdeckte.

Seitdem wurden weitere Projekte mit Flutter umgesetzt.

Gemeinsam mit der Firma Beck, ein deutschlandweit agierendes Elektrotechnik Unternehmen aus Würzburg, wurde eine in das Lagerwesen integrierte App entwickelt. Diese ermöglicht es den Außendienstmitarbeitern vor Ort beim Kunden die benötigten Teile im Produktkatalog zu finden und direkt zu bestellen. Außerdem konnte das Framework auch schon in einem komplexen IoT (Internet of Things)Projekt eingesetzt werden. Die Einbindung verschiedener Sensoren (Kamera, Bluetooth) gelingt damit ebenso einfach wie die Einbindung einer nativen Google Maps Karte. Viele Funktionen des Google Firebase Pakets werden ebenfalls in Flutter unterstützt. Dadurch konnten u.a. auch Machine Learning Algorithmen in unseren Flutter Apps genutzt werden.

Die Erfahrungen haben gezeigt, dass die Entwicklung einer Flutter-App für iOS und Android nur etwa 50 – 60 Prozent der Entwicklungszeit beansprucht, die es benötigt, beide Apps nativ umzusetzen.

Auch die App für die kommende Main.IT am 26.09.2019 wird mit Flutter umgesetzt.