App-Entwicklung mit Flutter
Wer seinen Kunden mobile Software anbietet, muss immer mehr Plattformen und Geräteklassen abdecken. Um eine nahtlose User Experience sicherzustellen, müssen klassische Desktop-Computer, Laptops, Tablets und Smartphones bedient werden, jeweils mit ihren unterschiedlichen Betriebssystemen. Google versucht mit Flutter, diese Komplexität zu reduzieren und Software Herstellern ein Tool an die Hand zu geben, welches eine Cross-Plattform Entwicklung ermöglicht. Im Interview erklärt Marcel Heinzel, Business Analyst von Neofonie Mobile, die Vor- und Nachteile von Flutter.
Hi, Marcel, kannst du uns bitte erklären, was Flutter ist?
Flutter ist ein Software Development Kit (SDK), das ermöglicht, Apps für Android und iOS auf einer Code-Basis zu erstellen. Das erklärte Ziel von Google ist, im Laufe des Jahres 2020 auch Web und Desktop, also Linux, MacOS und Windows zu unterstützen. Wenn Google diese ambitionierten Erwartungen erfüllt, ergeben sich anhand der Cross-Plattform Erweiterungen ganz neue Möglichkeiten, um zum Einen eine höhere Reichweite und zum Anderen eine nahtlose User Experience zu erzeugen.
Cross-Plattform-Entwicklung gab es ja schon vorher. Wie unterscheidet sich Flutter von den anderen zum Teil schon etablierten Ansätzen?
Den Cross-Plattform Gedanken haben schon einige große Player wie Facebook (React Native), Microsoft (Xamarin), Adobe (Phonegap) oder Unity (Unity 3D) durchexerziert und dabei unterschiedliche Ansätze ausprobiert. Während einige Player versuchen, aus einem gemeinsamen Code heraus native Apps zu kompilieren, setzen andere auf eine gemeinsame Technologie wie zum Beispiel JS/HTML/CSS. Flutter verfolgt hier einen neuen Ansatz, indem auf eine 2D Render Engine gesetzt wird. Diese Engines laufen zwar auf jedem Betriebssystem native, aber tatsächlich wird die App “nur gerendert”. Das ermöglicht eine höhere Flexibilität, fügt aber auch einen weiteren Abstraktionslayer hinzu.
Welche Flutter-Komponenten bringt das Framework mit und welche Möglichkeiten bieten diese?
Das Flutter SDK bringt erstmal alles mit, was zum Entwickeln benötigt wird. Die objektorientierte Programmiersprache Dart, ebenfalls von Google entwickelt, wurde speziell mit dem Ziel der Plattformunabhängigkeit konzipiert. Die Flutter Engine bietet Low-Level Rendering Support anhand von Googles Skia Grafik Bibliothek. Die Stärke des Frameworks liegt aber in den Widgets, die eine enorme Auswahl an ready-to-use UI Elementen mit sich bringen. Darüber hinaus können Projekte mit Plugins von anderen Unternehmen und der Community erweitert werden. Dadurch können zum Beispiel Features wie Google Maps, Analytics oder In-App-Purchases zusätzlich eingebunden werden, ohne dass Flutter diese selbst bereitstellt.
Ist die Entwicklung von Flutter-Apps wirklich günstiger im Vergleich zu nativen Apps?
Prinzipiell ja, da nur ein Code geschrieben werden muss, statt für Android und iOS individuell zu entwickeln. Die Rechnung, dass diese Art der Entwicklung nur die Hälfte kostet, geht meist leider nicht auf. Der Testaufwand bleibt natürlich für beide Plattformen ungefähr gleich. Auch die berüchtigten letzten zwanzig Prozent in der Software Entwicklung, die für Optimierungen, Fine-Tuning und Polishing anfallen, sind oft Betriebssystem – spezifisch. Die initialen Entwicklungskosten liegen vermutlich, je nach Projekt, bei rund 60-70% gegenüber nativen Apps. Allerdings möchte ich anmerken, dass die Wartung von Cross-Plattform Projekten erfahrungsgemäß einen etwas höheren Aufwand im Vergleich zu nativ entwickelten Apps mit sich bringt, insbesondere da meist viele Abhängigkeiten durch Plugins und anderen externen Komponenten vorhanden sind.
Für welche Anwendungen eignet sich Flutter besonders und warum?
Aktuell ist Flutter spannend für Projekte mit geringem Komplexitätsgrad, die in kurzer Zeit und mit geringem Budget umgesetzt werden sollen. Das gilt insbesondere, wenn die Apps Präsentations – getrieben sind, ein schönes Design gefragt ist, aber keine Priorität auf 100%-iger Optimierung für die jeweiligen Betriebssysteme nötig ist. Besonders interessant ist Flutter für folgende Use Cases: kurzlebige Marketing Apps oder MVP Ansätze und Prototypen, um Ideen in Nutzertests oder im Markt zu validieren. Wenn es jedoch um komplexe und langlebige Produkte geht, die eventuell auch auf Hardware Funktionen der jeweiligen Endgeräte zurückgreifen müssen, ist meist eine native Entwicklung der bessere Ansatz, da hier bereits alle Kinderkrankheiten ausgemerzt sind. Da jedoch jedes Projekt individuell ist, sollte man vor der technischen Planung und Umsetzung erst die Ziele formulieren, dann die Anforderungen analysieren und erst im letzten Schritt die passende Technologie auswählen.
Hast du ein paar Beispiele für Flutter-Apps?
Neben zahllosen kleineren Apps gibt es auch schon ein paar größere Firmen, die auf Flutter umgestiegen sind. Zu den Bekannteren zählen sicherlich Philips mit Hue Sync und Hue Bluetooth; die größte chinesische IT-Firmengruppe Alibaba mit einer Auktions-App; Groupon mit einer App zum Performance Tracking. Google selbst setzt Flutter bei eigenen Apps wie Google Ads oder auch Stadia, einer neuen Gaming Plattform, ein. Da hat Google ein starkes Signal gegeben, da mit Stadia nach eigenen Angaben mindestens eine Milliarde Nutzer erreicht werden sollen und Werbung bekanntlich das Kerngeschäft von Google ist.
Auch Neofonie Mobile hat bereits einige Flutter-Projekte umgesetzt. Für die Berliner Kältehilfe (Android/iOS) hat uns das Framework geholfen, unternehmerische Sozialverantwortung zu zeigen und die App zum Selbstkostenpreis zu entwickeln. Eine andere App haben wir für einen österreichischen Medienanbieter erstellt, um eine innovative Idee mit Gamification-Elementen zu testen. Die Nutzertests liefen so gut, dass wir dieses Jahr die Apps anhand des Feedbacks erweitern und Live gehen werden. Man darf gespannt sein.
Wie schätzt du die Zukunft von Flutter im App-Entwicklungsmarkt ein?
Sehr spannend und es bleibt abzuwarten, ob Google die großen Erwartungen erfüllen kann. Bisher konnte sich noch keine Cross-Plattform Lösung in der Breite durchsetzen. Google ist bekannt dafür, einerseits weltverändernde Produkte (Suche, Gmail, Maps, Firebase, Analytics, Ads, etc.) herzustellen, andererseits aber auch ambitionierte Produkte wie zum Beispiel Google Plus, Inbox, Reader, Glasses, Hangouts, etc.) einzustellen. Persönlich denke ich, dass Flutter es schaffen kann, nennenswerte Marktanteile zu erlangen. Dafür muss Google aber wirklich alle Betriebssysteme, Desktop, Web und Mobile abdecken, und den Entwicklern /dem Markt eine stabile Plattform liefern, die aus den Kinderschuhen rausgewachsen ist. Zudem sollte eine gute Integrationsfähigkeit seiner breiten Produktpalette wie zum Beispiel Firebase, Maps, Messaging, Machine Learning, Analytics, etc.) sichergestellt werden. Dann sehe ich der Zukunft von Flutter sehr optimistisch entgegen.
Falls Sie neugierig geworden sind und wissen möchten, ob Flutter eine Option für Sie ist, berät Sie Marcel Heinzel gerne. Erfahren Sie mehr.
Veröffentlicht am 25. Februar 2020, aktualisiert am 17. Oktober 2020
Bildquelle: unsplash, Hugh Han
Marcel Heinzel
Marcel Heinzel ist seit 2016 Business Analyst bei Neofonie Mobile. Zuvor war er als Android Entwickler tätig, hat aber seine Passion in der App Konzeption gefunden. In seiner Funktion als Business Analyst bringt er seine Interesse an neuen Technologien und mobilen Gadgets nutzerzentriert ein. Zu seinen bisherigen Kunden zählen u.a. Rademacher, Regionalmedien Austria, GEBEWO, HUK-COBURG uvm.