28.5.2021
#campus

Flutter sei Dank: Wie Multi-Plattform App-Entwicklung plötzlich einfach wird

Die Vorteile von gut gemachten Apps liegen auf der Hand – sowohl aus Nutzer- wie aus Unternehmenssicht. Der große Benefit für Unternehmen: Vor allem bei interaktiven Inhalten kann die User Journey genau geplant werden. Und nach der erfolgreichen Umsetzung für eine priorisierte Plattform (zum Beispiel Andoid, iOS oder Linux App) ist die Funktionalität für alle Nutzer dieses Systems gegeben. So weit, so gut.

Das Zähneknirschen beginnt jedoch spätestens, wenn eine Applikation auf mehreren Plattformen gleichzeitig erscheinen soll. Unsere Erfahrung hat gezeigt: Egal, welchen Weg man hier wählt, wirklich gut fühlt sich keine Option an. Bei der separaten App-Entwicklung für beispielsweise Android, iOS und Web ergibt sich ein riesiger Mehraufwand, um dreimal ein im Ergebnis gleiches Produkt zu schaffen.

Bestehende Lösungen für dieses Problem wählen oft den Ansatz, eine Lösung als Fundament zu wählen und diese dann automatisch auf andere Plattformen zu adaptieren. Mit Electron beispielsweise lassen sich Web-Applikationen in Mobile oder Desktop Apps übertragen. Der Haken: Oft ist die Performance dieser „Portierungen” signifikant schlechter. Und genau an dieser Stelle erhebt sich eine neue Anwendung und sagt: „Guys, hold my beer.”

Was ist Flutter & was kann es

Wie ihr aus der Überschrift vielleicht schon erraten habt, will Flutter dieses Dilemma lösen. Zuerst ein kurzer Überblick, was Flutter genau ist: Flutter ist ein UI-Toolkit für App-Entwicklung. In Flutter könnt ihr interaktionsfähige Benutzeroberflächen bauen und euch diese automatisch für die gesamte Palette an standardmäßigen Systemen ausgeben lassen: Android, iOS, Web, Desktop Apps für Windows, MacOSX und Linux – hier bleiben eigentlich keine Wünsche offen.

Ihr erstellt dabei wirklich nur eine Codebase mit zugehöriger Logik und dem entsprechenden Design. Das Arbeiten in Flutter macht dabei, aus meiner Perspektive, wirklich Spaß. Und wenn ich diese persönliche Anekdote einbringen darf: Frontend-Entwicklung ist sonst so gar nicht mein Steckenpferd. Flutter schafft es aber durch sein unkompliziertes Handling, dass ich mich auf die dankbaren Teile des Entwickelns konzentrieren kann: die Oberfläche und die inhaltlichen Funktionen. Rumärgern über Browser-Kompatibilitäten und ähnliche formale Zwickereien? Vergangenheit!

Feuertaufe? Bestanden! Großer Boost für die Projekt Performance

Wir haben Flutter auch schon bei CAMAO eingesetzt: Zusammen mit der Kanzlei Goldenstein & Partner (bekannt aus dem Abgasskandal) haben wir die Forderungsmanagement-App ClaimQ mit Flutter realisiert. Über Flutter konnten wir – mit nur einer Codebase – neue Releases immer gleichzeitig für Android, iOS und Web veröffentlichen. Und um völlig transparent zu sein: An zwei kleinen Ecken mussten wir plattformspezifische Lösungen nutzen. Da es dafür aber fertige Widgets gab, ließen sich diese einfach in die jeweilige Plattform integrieren.

Es ist natürlich schwierig, genau zu quantifizieren, wieviel Arbeit Flutter uns in Summe gespart hat. Fakt ist aber, dass wir deutlich schneller waren als bei der nativen Entwicklung für jede Plattform. Wir gehen schätzungsweise davon aus, dass wir mit Flutter eine Zeitersparnis von 50 Prozent oder mehr gegenüber der nativen App-Entwicklung für die jeweiligen Plattformen hatten.

Ideale Lösung für schnelle Erfolge in der App-Entwicklung

Flutter ermöglicht also rasante Geschwindigkeiten bei der Time-to-market einer Applikation – und das für eine immense Bandbreite an Plattformen. Der in der Einleitung angesprochene Performance-Verlust ist auch in Flutter vorhanden. Unserer Erfahrung nach kratzt der allerdings gerade einmal an den 10 Prozent. Automatisiertes Testing ist auch hier möglich und ebenfalls deutlich einfacher. Tests müssen nicht für jede Plattform neu geschrieben werden, sondern kommen aus einer Hand.

Weil die Flutter-Community so viele frei verfügbare Widgets erstellt, dass selbst echte Perlen mal länger unentdeckt bleiben, kuratiert Flutter selbst wöchentlich die Community Contributions.

Als Google Produkt setzt Flutter standardmäßig auf das Material Design. Das ist ein solides Grundgerüst, um schnell verlässliche und hübsche Oberflächen zu erstellen. Aber natürlich lässt sich auch alles individualisieren, wenn eine markante visuelle Identität benötigt wird. Die Schnittstelle von Design und Entwicklung ist übrigens eine weitere Stärke von Flutter. Ich kann mich ganz simpel mit meinen Kollegen (digital) zusammensetzen und live das Design anpassen. Nagende Hintergedanken bezüglich der Umsetzung auf anderen Plattformen? Gibt’s nicht!

Flutter Breakdown: Was, wann & für wen?

Fassen wir noch einmal die grundlegenden Benefits zusammen:

/ Komplett plattformunabhängiges Entwickeln von Applikationen

/ Alles Open Source und somit kostenfrei, von der Entwicklungsumgebung bis zu Flutter selbst

/ Umfassende Suite an Ziel-Plattformen (Android, iOS, Windows, macOSX, Linux, Web)

/ Rasantes Entwicklungstempo mit kurzer Time-to-Market

/ Einfaches Testing und Konzentration der QS auf Inhalt statt Funktionalität

/ Riesige Community mit tonnenweise freien Ressourcen

/ Technisch überzeugende Lösung (eigene Kompilierer für jede Plattform)

/ Angenehme und zeitgemäße Programmierumgebung

/ Perfekt für interdisziplinares Arbeiten

/ Es macht Spaß!

Und auch wenn uns Flutter sehr gut gefällt, empfehlen wir es nicht pauschal für jedes Projekt. Flutter ist eine perfekte Wahl für alle interaktiven Oberflächen mit Applikations-Charakter. Die vorhin genannte App ClaimQ ist das ideale Beispiel: eine übersichtliche Darstellung verschiedener Items und direktes Ausfüllen und Abschicken von Formularen. Selbst wenn zu Beginn nur eine Plattform relevant ist: Mit Flutter hat man immer noch die Option, später Weitere hinzuzunehmen.

Flutter ist nicht ideal, wenn es um intensive Darstellung von 2D- oder 3D-Inhalten geht. Wenn die Anwendung bis ins Detail auf die Besonderheiten und Nutzungsmuster der Zielplattformen abgestimmt werden soll, bedeutet dies natürlich zusätzlichen Aufwand pro Plattform und eventuell sind bestimmte Dinge in Flutter hier noch nicht möglich. Auch wenn es darum geht, pro Plattform ein völlig individuelles und auf genau die Plattform abgestimmtes Erscheinungsbild zu schaffen, sollte man eher dazu tendieren, die App in jeder Plattform nativ und individuell zu entwickeln.

App-Projekt steht an? Fluttert in unser Postfach

Ich bin gespannt darauf, ob Flutter bei den Funktionen noch einmal eine Schippe drauflegen kann. Muss es in meinen Augen aber gar nicht. Schon jetzt ist es ein wirklich überzeugendes Stück Software und ich freue mich auf das nächste Projekt damit. Perfekte Überleitung, denn: Das könnte auch eures sein! Ihr wollt eine App an den Start bringen, am liebsten direkt auf mehreren Plattformen gleichzeitig? Dann sollten wir über Flutter reden. Schreibt uns einfach unter hello@camao.one. Bis dann!

Nach oben