Flughafen App Entwicklung mit Google Flutter

Die neue EuroAirport App wurde mit dem Open Source Framework Flutter von Google entwickelt. Damit kann mit einer Codebasis sowohl die iOS- als auch die Android-App erstellt werden. Trotzdem erhalten die jeweiligen Apps die Betriebssystem-Spezifischen Benutzerelemente.

Autor: Roberto De Simone
Datum: 05.01.2024
Aktualisiert: 08.11.2024

iOS EuroAirport App Home Light Mode
Android EuroAirport App Home Light Mode

Auf dieser Seite

Warum wurde Flutter für die Entwicklung der App verwendet

Mit einer Codebasis kann sowohl die iOS- als auch die Android App erstellt werden (daneben unterstützt Flutter auch Web, Windows, macOS und Linux). Dies ist sicherlich ein zentrales Argument um sich für Flutter zu entscheiden, wobei auch andere Frameworks wie React Native oder Ionic eine Multiplattform-Unterstützung anbieten.

Flutter überzeugt durch seine grosse Popularität - es ist mittlerweile das beliebteste Werkzeug zur Entwicklung von Cross Plattform-Anwendungen.

Zudem kommt das Framework von Google, wodurch man bereits höhere Qualitätsstandards im Vergleich zu anderen Frameworks erwarten darf. Neben Google tragen weitere Firmen und Entwickler zur Weiterentwicklung des Frameworks bei.

Aus Sicht des Entwicklers überzeugt Flutter bezüglich der Entwicklungsproduktivität. Einmal mit dem Framework vertraut, kann man sehr schnell Apps entwickeln. Allerdings ist der Lernaufwand nicht zu unterschätzen. Es stehen eine Vielzahl von Widgets, Packages und Konzepte sowohl von Flutter selbst als auch von Drittanbietern zur Verfügung. Sich damit zurechtzufinden und Best Practices zu entwickeln, erfordert Zeit und Erfahrung, vor allem wenn es darum geht, eine seriöse Enterprise App zu entwickeln.

Eine Flutter App überzeugt zudem von ihrer Ausführungsgeschwindigkeit, da diese nativen Code erzeugt. Dazu muss man aber Folgendes wissen: Flutter verwendet keine Elemente der nativen Software Development Kits (SDKs) der jeweiligen Betriebssysteme (iOS und Android), wenn es darum geht, das Benutzerinterface zu entwickeln. Sämtliche Elemente (Widgets), welche für die Bildung eines Benutzerinterfaces benötigt werden, werden nachgebildet. Flutter besitzt dazu einen Canvas (Zeichenfläche). Dies ist einerseits ein Vorteil, da dadurch die Unterstützung von mehreren Betriebssystemen mit einer Codebasis geschaffen wird, andererseits ist es auch der grösste Nachteil von Flutter, da eben alle Elemente pixelgenau nachgebildet werden müssen. Ändert zum Beispiel Apple mit einem iOS Update das Aussehen von Elementen, so muss Flutter diese ebenfalls nachbilden, was allenfalls dazu führen kann, dass Flutter Apps zu Beginn eines Betriebssystem-Updates noch das Aussehen des vorhergehenden Betriebssystems besitzen.

Technische Eigenschaften einer Flutter App

Betriebssystem spezifisches Aussehen und Verhalten einer Flutter App

Um eine App entwickeln zu können, die dem Benutzer das Aussehen und das Verhalten seines vertrauten Betriebssystems gibt, bietet Flutter verschiedene Konfigurationsmöglichkeiten bei der App-Entwicklung. Für iOS wird eine sogenannte Cupertino-, und für Android wird eine Material App erstellt. Dazu stehen auch jeweils Komponenten-Widgets mit dem betriebssystemspezifischen Aussehen und Verhalten zur Verfügung.

Beispiel: In der EuroAirport App wird für den Wechsel zwischen Ankünften und Abflügen für Android ein TabBar und für iOS ein Segment verwendet.

iOS EuroAirport App Home Light Mode
Android EuroAirport App Home Light Mode

Um zwei unterschiedliche Apps mit demselben Quellcode erstellen zu können, muss der Quellcode so strukturiert sein, dass beim Kompilieren der Anwendung für Android die Material Widgets und für iOS die Cupertino Widgets verwendet werden.

Accessibility-Eigenschaften einer Flutter App

Eine moderne App sollte möglichst barrierefrei und für eine breite Anzahl von Benutzern bedienbar sein. Dazu gehört auch die Unterstützung von grossen Textgrössen oder auch der Support eines hellen und dunklen App-Themas. Beides wird von der EuroAirport App unterstützt.

iOS Setting zur Whal der Textgrösse
EuroAirport iOS App mit grösserer Textgrösse

Gerade die Unterstützung von grossen Textgrössen ist eine Herausforderung und zeitintensiv in der Umsetzung: es erfordert ein breites Testen auf einer Vielzahl von Geräten mit unterschiedlichen Einstellungen.

Zusammenfassung

Die App-Entwicklung mit Flutter kann insgesamt sehr gut empfohlen werden oder anders gesagt: für eine weitere App-Entwicklung würde ich erneut Flutter wählen, da die Produktivität im Vergleich zum Einsatz der nativen Entwicklungskonzepte schlichtweg deutlich höher ist.

Allerdings muss man sich bewusst sein, dass die Verwendung von Cross-Plattform Frameworks immer mit Kompromissen verbunden ist. Der Einsatz von “Packages” von Drittanbietern, um welche man de facto nicht herumkommt, um eine hohe Produktivität zu erreichen, führt auch zu Abhängigkeiten und auch zu Sicherheitsfragen. Werden diese “Packages” einmal nicht mehr unterstützt, weil sich z.B. etwas Neues in der Entwicklergemeinde durchgesetzt hat, so erfordert dies unter Umständen grössere Umbauarbeiten am Quellcode. Ebenso kann es sein, dass man nicht auf neue Flutter-Versionen aktualisieren kann, weil sich das Update eines Packages verzögert.

Ein weiterer Punkt, den es zu bedenken gilt: Google ist bekannt dafür, Produkte sterben zu lassen, wenn diese nicht mehr in ihre Strategie passen! Im Moment sieht es aber danach aus, dass die Investitionen in Flutter hoch sind und Flutter von Google selber eingesetzt wird.

Für Unternehmen, welche genügend finanzstark sind und keine oder nur minimale Abhängigkeiten von Drittanbietern wünschen, sind die nativen modernen Frameworks SwiftUI (iOS) und Jetpack Compose (Android) nach wie vor die erste Wahl.

Vom App Store oder Google Play laden