Flutter

20. Mai 2020

Flutter ist ein großartiges plattformübergreifendes Framework, mit dem man Anwendungen für Mobile, Desktop- und Web-Plattformen erstellen kann. Offiziell veröffentlicht hat Google es im Dezember 2018. Kaum ein Jahr später hatte es bereits React Native in puncto Popularität überholt – sowohl auf GitHub als auch auf Stack Overflow. Was steckt hinter dem ganzen Hype? Braucht es sowas wie Flutter wirklich? Wir finden: Ja! Warum? Das erklärt dieser Artikel.

Wozu noch ein neues Framework?

Eine der meistgestellten Fragen, wenn es um Flutter geht, ist: "Wieso sollte ich Flutter statt React Native oder einem anderen Software Development Kit (SDK) verwenden?" und die Antwort ist einfach: Es ist in jeder Hinsicht besser als alle anderen plattformübergreifenden Frameworks, die es gibt. Verständlicherweise wollen die Leute dann meist eine ausführlichere Erklärung.

Oft haben wir uns so sehr an die Funktionsweise unserer Tools und Ressourcen gewöhnt, dass wir ihre Grenzen nicht mehr erkennen können. Erst, wenn jemand mit etwas Besserem kommt, fällt uns auf, wie umständlich wir arbeiten – und wieviel einfacher es sein könnte! Und selbst dann können unsere Vorurteile oder Gewohnheiten uns noch davor zurückschrecken lasssen, etwas Leistungsfähigeres, Flexibleres auszuprobieren. Bei Software ist das genauso.

Beispiel: Jemand, der nur über PHP-Erfahrung verfügt, wird argumentieren, dass PHP eine großartige Sprache ist. Gleichzeitig wird er das riesige Ökosystem von Geräten und Systemen jenseits einfacher Webserver nicht verstehen. Doch nicht alles ist eine Website. Genau aus diesem Grund befürworten wir speziell für die App-Entwicklung kreierte Tools, statt welche aus dem Front-End-Web-Ökosystem zu übernehmen.

Vorteile von Flutter

Flutter hat einige deutliche Vorteile gegenüber den Alternativen. Die zugrundeliegende Sprache und das SDK sind so entwickelt, dass sie typische Probleme und Schwächen anderer Technologien umgehen. Im Folgenden findest du ein paar wichtige Gründe, warum du dein nächstes Projekt mit Flutter umsetzen (lassen) solltest:

Die Dart-Sprache

Viele andere Sprachen haben sich mit der Standardisierung abgemüht (oder tun es noch). Sie verfügen über viele verschiedene Versionen mit unterschiedlichen Sprachmerkmalen – wobei viele Entwickler nicht einmal wissen, worin diese Unterschiede bestehen.

Im Gegensatz dazu ist Dart von Anfang an dafür konzipiert und optimiert, Client-Anwendungen zu erstellen – mit besonderem Augenmerk auf dem User Interface (UI). Es gibt keine konkurrierenden Standards, kein Einpfropfen von Standardfunktionen und keine seltsamen sprachlichen Eigenheiten.

Kurzum: Dart hat eine saubere und unglaublich leistungsfähige Syntax. Sie erleichtert nicht nur eine starke App-Architektur sowie ein starkes App-Design, sondern fördert es auch noch. Hinzu kommen Team-Zusammenführung, Standardisierung, Langlebigkeit, Wartungsfreundlichkeit und andere Dinge, die bei bisherigen Crossplatform-Tools oft fehlen.

Dart ähnelt anderen populären Sprachen wie C#, Java und TypeScript. Das bedeutet: Entwickler mit der entsprechenden Erfahrung finden sich leicht zurecht und können Dart sofort verwenden.

Starke Akzeptanz in der Entwicklercommunity

Innerhalb eines knappen Jahres wurde Flutter sowohl bei GitHub als auch bei Stack Overflow populärer als React Native, das zu seiner Zeit das beliebteste crossplattform Framework war. Entsprechend gibt es bereits einen großen Pool an Ressourcen, viele erfahrene Entwickler und schnellere Iterationen der Technologie selbst. Das bedeutet: Die Technologie entwickelt sich und reift schneller und bleibt länger relevant. All das nützt deiner App, wenn du sie mit Flutter entwickelst.

Erfolgsgeschichte Flutter vor React Native

In der obigen Grafik aus Stack Overflow Trends kannst du sehen, wie Flutter aus dem Nichts aufgetaucht ist und die Führung übernommen hat. Das wird sich wahrscheinlich fortsetzen. Früher oder später könnte es schwieriger werden, Entwickler zu überzeugen, plattformübergreifende Anwendungen mit anderen Technologien zu unterstützen. Dieser Prozess dauert oft sehr lange, wahrscheinlich mehrere Jahre, aber es ist innerhalb der Software-Developer-Community immer wieder vorgekommen.

Flutter ist extrem schnell

Flutter-Anwendungen lassen sich in native Binärdateien kompilieren, die sich auf in C/C++ erstellte Grafik- und Rendering-Engines stützen. Dadurch entsteht eine sehr schnelle und hochperformante Anwendung. Flutter-Anwendungen sind auf den meisten Geräten in der Lage, stabile 60 fps zu erreichen. Auf unterstützdenden Geräten sind es sogar unglaubliche 120 fps.

Ein treibender Faktor für die rasche Verbreitung von Flutter ist, dass viele Entwickler mobiler Anwendungen diese enorme Leistungsverbesserung im Vergleich zu anderen plattformübergreifenden Frameworks festgestellt haben.

Es stimmt zwar, dass die Entwicklung wirklich nativer Anwendungen in Bezug auf Leistung und reibungslose Wiedergabe kaum zu übertreffen ist, aber wenn es um plattformübergreifende Frameworks geht, hat Flutter klare Vorteile gegenüber der Konkurrenz.

Flutter ist (relativ) leicht zu erlernen

Klar: Keine echte Produktionssprache oder Toolkit ist wirklich leicht zu erlernen. Aber es besteht ein großer Unterschied zwischen solchen mit klarer Dokumentation und Standard Design Patterns, die für eine große Anzahl von Use Cases funktionieren, und solchen mit lückenhafter Dokumentation und sehr unterschiedlichen Möglichkeiten, eigentlich sehr einfache und unkomplizierte Aufgaben zu erledigen.

Diese hervorragende Dokumentation von Flutter und die große Anzahl qualitativ hochwertiger Referenzbeispiele sind neben der Leistung ein weiterer Grund für die weite Verbreitung von Flutter. Das macht einen großen Unterschied für Entwickler, die ein neues Framework, Toolkit oder eine neue Sprache lernen wollen. Das gilt insbesondere für erfahrene Programmierer, die Probleme mit dem Design einer Sprache oder eines Toolkits selbst erkennen können.

Jemand, der jahrzehntelang programmiert hat, wird schnell frustriert sein, wenn er auf schlechte Dokumentation oder widersprüchliche Standard Design Patterns trifft.

Experten und Einsteiger schätzen Flutter für seine klare Dokumentation und die unterstützende Community. Diese teilt ihre Erfahrungen sehr bereitwillig und liefert solide, funktionierende Beispiele für großartige Design- und Development Patterns, von denen andere profitieren können. Von elitärem Denken ist da nichts zu spüren.

Flutter ist gut durchdacht

Google hat Flutter auf Grundlage einer ausgezeichneten Sprache (Dart) und einer schnellen Hochleistungs-Rendering-Engine (Skia) aufbauend entwickelt. Diese Design-Entscheidungen vermeiden jahrelange Experimente auf Kosten anderer. Das Ergebnis ist ein überragendes Framework. Normenkonflikte oder eingebaute technische Schulden spielen hier keine Rolle, Flutter ermutigt Entwickler aller Fähigkeitsstufen dazu, gute Design Patterns und Best Practices in ihren Anwendungen zu nutzen.

Wer seit vielen Jahren Anwendungen für eine Vielzahl von Geräten entwickelt, wird wahrscheinlich innerhalb weniger Minuten nach der Arbeit mit Flutter die klaren Vorteile erkennen, die das Programm bietet. Und Einsteigern bleibt viel Frust erspart, da es im Internet großartige Beispiele gibt, von denen sie lernen können.

UX für Android und iOS in Einem

Eine App für iOS und Android – das ist das große Versprechen von crossplatform Development. Wenn nur die UX nicht wäre! Denn iOS und Android unterscheiden sich im Look & Feel: Was auf der einen Plattform eine hervorragende User Experience hervorrufen kann, fühlt sich dementsprechend auf der anderen immer etwas seltsam an.

Flutter hat hierfür eine großartige Lösung gefunden, indem es bestimmte Dinge für iOS bzw. Android automatisch anders darstellt. Listen scrollen, navigieren und vieles mehr fühlen sich dadurch für den Nutzer so an, wie er es von seinem Betriebssystem sonst auch gewohnt ist. Der Entwickler kann sich diesbezüglich entspannt zurücklehnen und sein SDK für sich arbeiten lassen.

Full Stack Development in Zukunft?

Ein besonders großer Win für die Zukunft wird der von Google angekündigte Websupport sein. Damit könnten Backend und Webseiten in Zukunft auch mit Flutter geschrieben werden, so dass Full Stack Development in greifbare Nähe rückt.

Fazit

Von Grund auf neu entwickelt, um damit Hochleistungsanwendungen in Rekordzeit erstellen zu können, vermeidet Flutter viele Probleme. Wie viele lässt sich kaum in Worte fassen. Flutter bietet eine ausgezeichnete Entwicklungsplattform, die man gesehen haben muss. To know it is to love it.