Flutter - Die Zukunft der Mobile App Entwicklung?

Flutter ist ein Framework zur Entwicklung von mobilen Anwendungen für die Betriebssysteme Android und IOS.

Was ist Flutter?

Flutter ist ein Framework zur Entwicklung von mobilen Anwendungen für die Betriebssysteme Android und IOS. Entwickelt wurde es von Google und auf der Dart Developer Summit 2015 wurde es das erste Mal vorgestellt. Am 4. Dezember 2018 wurde Flutter 1.0 veröffentlicht, was auch das Ende der Betaphase markiert.

Um Flutter verwenden zu können, muss die Applikation in Dart geschrieben werden, was aber kein großes Problem darstellt, da Dart große Parallelen zu Java oder C# aufweist.

Die Mindestversion, um Flutter Apps ausführen zu können, liegt bei 4.1 für Android und 8 bei IOS. Damit erreicht man 99 % aller Handys mit Android oder IOS als Betriebssystem.

Warum Flutter anstatt native Android oder IOS Entwicklung?

Flutter liefert eine eigene Render Engine names Skia aus. Dies hat den Vorteil, dass kein Betriebssystem spezifischen Komponenten verwendet werden. Eine App, die in Flutter geschrieben wurde, sieht auf Android 4.1 genau gleich wie auf Android 8.0 aus. Hingegen bei nativer Android Entwicklung kann die App auf den verschiedenen Android Versionen unterschiedlich aussehen.

Einer der größten Vorteile von Flutter ist, dass nur mehr EINE Codebasis gewartet werden muss. Die gesamte Applikation wird in Flutter geschrieben und kann auf Android und IOS veröffentlicht werden und ist somit ideal für hybride Appentwicklung.

Sollte eine notwendige Funktionalität seitens Flutter nicht zur Verfügung gestellt werden, kann auf native plattformspezifische Komponenten direkt zugegriffen werden. Auch das Design kann pro Zielplattform spezifisch definiert werden, sollte das gewünscht oder notwendig sein.

Eines der bemerkenswertesten Features von Flutter ist das zustandsbasierte Hot-Reloading. Bei Änderungen im Code wird die neue Version auf dem Handy oder dem Emulator wirksam und der aktuelle Zustand der Applikation bleibt erhalten.

Welche Probleme bringt Flutter mit sich?

Da Flutter noch relativ neu und ist, ist die Anzahl der externen Bibliotheken noch nicht so umfangreich wie in anderen Sprachen, wobei es mittlerweile für fast alle benötigten Funktionalitäten eine Bibliothek von Google oder von der Community gibt.

Was ist Flutter Web und wie funktioniert es?

Hummingbird wurde von Google entwickelt und ermöglicht Flutter als Webapplikation. Auf der Google I/O 2019 wurde das Projekt Hummingbird offiziell als „Flutter for Web“ präsentiert. Ziel von Flutter Web ist es, mit einer Codebasis nicht nur Android und iOS zu bedienen, sondern auch den Browser. Auch wenn man den Code für Android/iOS zu 100% für Web wiederverwenden könnte, wird höchstwahrscheinlich für Flutter Web eigens Code geschrieben werden müssen. Eine Webanwendung hat einfach ein ganz anderes Look-and-Feel als eine mobile Anwendung. Nichtsdestotrotz kann man State und Logik bei einer sauberen Trennung wiederverwenden.

Wie funktioniert Flutter Web?

Grundsätzlich ist Dart als eine Web-Programmiersprache entworfen und entwickelt worden, wodurch sie bereits vor Flutter im Web zum Einsatz gekommen ist. Da der Browser keinen Dart Code ausführen kann, wird dieser mit dem von Google entwickelten Dart2js Compiler in Javascript übersetzt. Der zu Javascript verwandelte Flutter Code erzeugt nun HTML Elemente, welche im Browser dargestellt werden.

Leider kommt es hier noch zu Performance-Problemen, wodurch eine Flutter Web-App öfters leicht ruckelt und nicht ganz so flüssig zu bedienen ist. Google hat hierfür aber bereits eine Alternative. Es ist möglich eine Flutter Web Anwendung mit der eigenen Render Engine Skia auszuliefern.

Diese läuft im Browser mit Hilfe von WebAssembly und anstelle von HTML Elementen wird ein großes Canvas erzeugt, worauf Skia die Elemente rendert. Dies läuft wesentlich flüssiger als die andere Variante. Um Accessibility zu gewährleisten, wird intern ein sogenannter Accessibility-Tree aufgebaut, welcher mit aktuell verfügbaren Screenreadern kompatibel ist.

Natürlich ist die Bedienung einer Web-Anwendung grundlegend anders als die einer mobilen Anwendung. Deshalb arbeitet Google mit Hochdruck daran, die bestehenden UI-Komponenten so zu überarbeiten, dass diese auch mit der gewohnten Maus-Interaktion verwendet werden können, welche sich ja signifikant von der Touch-Eingabe auf mobilen Geräten unterscheidet. Hier ist bereits ein Großteil erledigt.

Plugins, die beispielsweise native Funktionen auf Smartphones ausführen, müssen, um im Web auch zu funktionieren, upgedatet werden. Google geht hier mit gutem Beispiel voran und arbeitet am Web-Support für etliche Plugins, wie zum Beispiel das gesamte Firebase Umfeld.

Persönliche Erfahrungen

„Obwohl Flutter noch ziemlich neu ist, findet man im Internet für Probleme meistens eine Lösung. Gerade auf Stack Overflow ist Flutter eines der gefragtesten Technologien.
Die Art und Weise Apps mit Flutter zu schreiben ist extrem angenehm und ich würde eine Entwicklung mit Flutter in der Regel einer Entwicklung auf nativen Android oder IOS vorziehen. Flutter liefert Komponenten für Material Design und Cupertino (IOS) mit, welche viel Stylingprobleme abnehmen. Auch Animationen und Seitenübergänge sind zum Teil implizit und können mit nur wenigen Zeilen Code verändert oder hinzugefügt werden.“

FAQs

Häufig gestellte Fragen zum Framework Flutter

Newsletter

Weitere interessante Artikel

Kontakt

Sie möchten sich unverbindlich über Ihr Softwareentwicklungs-Vorhaben austauschen? Erzählen Sie uns ein bisschen mehr!