Zum Blog

Weshalb wir gewisse Apps mit Flutter entwickeln

26. September 2020

Flutter für Android und iOSFlutter ist eine Open Source Lösung zur Entwicklung von mobilen Applikationen und neuerdings browserbasierten Anwendungen. Mit bald drei Jahren Marktpräsenz, ist Flutter zu einer reifen Entwicklungsumgebung gewachsen, welche sehr nahe an der nativen App Entwicklung ist. Bereits einige Apps konnten wir für Kunden oder für firmeninterne Zwecke mit Flutter entwickeln. Wir zeigen anhand Projektbeispielen auf, weshalb es unser bevorzugtes Cross-Plattform Framework geworden ist.

Die Kernmerkmale von Flutter

Die Flutter Entwicklungsumgebung wurde von Google entwickelt. Es ist nicht das erste Cross-Plattform Framework für Mobile Apps. Konkurrenten wie Facebook mit React Native und Microsoft mit Xamarin wollen auch in der Mobile Entwicklerszene mitmischen. Google hat mit Services wie Firebase und eigenem Betriebssystem Android seine bessere Ausgangslage nutzen können und Flutter hat in den letzten Jahren den grössten Aufschwung erlebt.

Drei Kernmerkmale zeichnen Flutter aus:

  1. Schnellere Entwicklung von Apps dank «Stateful Hot Reload» und dem Widget Ansatz.
  2. Sehr nahe am nativen Look n’ Feel und flexibel für besondere Benutzeroberflächen.
  3. Native Performance dank Kompilierung zu nativem ARM Code und eigener Programmiersprache Dart.

Um wie viel reduziert sich die Entwicklung mit Flutter?

Eine App realisieren beinhaltet mehr als nur deren Entwicklung; die Anforderungen müssen studiert und ein Lösungskonzept erarbeitet, die App Ansichten gestaltet und das Projekt koordiniert werden. Diese Aufwände sind bei Flutter Projekten wie auch allen anderen hybriden Entwicklungsansätzen enthalten. So ist das Kostenersparnis, wie nachfolgende Grafik illustriert im Schnitt rund 25%.

Flutter Entwicklungsaufwand

Flutter ersetzt zwar die separate Entwicklung je Mobile Plattform, jedoch müssen ab und zu gewisse iOS oder Android spezifische Funktionen gesondert gehandhabt werden. In der Theorie und im Idealfall können bei App Projekten 50% der Kosten gespart werden.

Sie suchen erfahrene Flutter Entwickler?

Unsere Erfahrung mit Flutter

Mit nachfolgenden Projektbeispielen erläutern wir die Gründe, weshalb wir Flutter gewählt haben und wieso wir das wieder tun würden.

Recommerce App

Die Recommerce App ist eine reine B2B App, um Mitarbeitern den Arbeitsalltag zu erleichtern. Die Kernanwendung ist die Warenidentifikation und Bestandsaufnahme mit der Handykamera. Die aufgenommenen Fotos lassen sich direkt in der App bearbeiten und an das System von Recommerce übermitteln.

Recommerce Flutter App

Wieso wir Flutter gewählt haben:

  • Die Backend-Schnittstelle war vorhanden und da es sich um eine einfache App handelt, genügte es einen Entwickler an das Projekt zu setzen. So konnte wir auch die Koordinationsaufwände auf ein Minimum reduzieren.
  • Eine besondere Anforderung ist, während der Fotoaufnahme von bspw. Garantiebelegen die Ränder abzuschneiden, kurz Fotoscan-Funktion. Obwohl Flutter eine relativ neue Technologie ist, fanden wir eine Open Source Bibliothek dafür.

Auf eine Herausforderung sind wir allerdings mit Flutter gestossen. Die Anbindung an den Server verhielt sich auf iOS nicht wie erwünscht, so mussten wir die Schnittstelle nativ implementieren. Ein Vorteil von Flutter gegenüber anderen Frameworks ist, dass dies problemlos möglich ist.

Die App konnten wir in weniger als 3 Wochen programmieren und sie ist in keiner Hinsicht schlechter als eine native App ausgefallen.

Übrigens, Recommerce betreibt verkaufen.ch, eine nachhaltige Plattform wo man preiswert geprüfte Smartphones kaufen oder sein Gebrauchtes verkaufen kann.

RTF for Pilots App

Die RTF for Pilots App ermöglicht das Erlernen der Radio Telefonie während der Pilotenausbildung auch unterwegs auf dem Smartphone.

RTF Pilots Flutter App

Die App hatten wir im 2017 nativ entwickelt. Da sie in der Zwischenzeit nicht mehr für die neuesten iOS und Android Betriebssysteme optimiert war, stellte sich die Frage, die Apps auf beiden Plattformen separat aktualisieren oder sie neu mit Flutter umsetzen.

Wir entschieden uns für Flutter aus diesen Gründen:

  • Das UI der App ist sehr spezifisch. Dafür ist Flutter die bessere Wahl, da es nur einmal programmiert wird und identisch auf iOS und Android daherkommt.
  • Das Backend war vorhanden, so konnten wir wiederum nur einen Entwickler ans Projekt setzen.
  • Die iOS App war noch in Objective-C programmiert und Android in Java*. Der Kunde wollte die App mit neuen Technologien aufsetzen um sie längerfristig einfacher zu Warten. Flutter ist dafür die optimale Wahl, da nur mit einer Codebase iOS und Android unterhalten werden.

* Die beiden Mobile App-Programmiersprachen werden auf iOS mit Swift und Android mit Kotlin abgelöst.

Sie möchten Ihre native App zu Flutter migrieren?

Unsere Mitarbeiter App «Abox»

Abox, kurz für Access Box, ist unsere hauseigene Cloud Anwendung zur Abwicklung und Verarbeitung diverser Adminaufgaben. Unsere Absicht war, gewisse Bereiche mit einer App abzudecken, wie bspw. die Anwesenheitsübersicht, Zeiterfassung, die Kontaktliste aller Mitarbeiter und die Reservation des Dienstwagens.

Abox Flutter App

Wir entschieden uns die App mit Flutter umzusetzen, da es ein internes Projekt ohne Deadlines war. So konnten wir mit dem relativ neuen Framework experimentieren und mit weniger Aufwand erste Resultate erzielen.

Flutter erwies sich auch hierfür als die richtige Technilogie-Wahl und die Abox App wird von unseren Mitarbeitern gerne benutzt. Weitere Flutter-Projekte und Vorteile dieser Entwicklungsumgebung findet ihr aus unserer neuen «TSD Flutter» Landing-Page.

Fazit

Wie aus unseren Projektbeispielen zu entnehmen ist, lohnt sich eine App mit Flutter zu entwickeln:

  • bei einfachen Apps
  • bei besonderen 2D Benutzeroberflächen und UI-Elementen
  • bei kleineren Projekten ohne Backendentwicklung
  • um schnelle Prototypen umzusetzen
  • um den Koordinationsaufwand zu reduzieren
  • wenn Flutter Widgets für besondere Anforderungen vorhanden sind
  • für tieferen Wartungsaufwand dank einer Codebase

Dennoch müssen wir gestehen, unsere App Entwickler bevorzugen die native Mobile App Entwicklung und wir glauben nicht dass das in naher Zukunft ändern wird. Native Apps sind halt die Premium-Lösung, technisch immer auf dem neuesten Stand und funktional allen anderen Entwicklungsansätzen überlegen.

Flutter ist nur wenig davon entfernt und kommt vor allem zum Einsatz, wenn Entwicklungsaufwand und Kosten gespart werden sollen. Wir sind froh, dass Apps mit dem nativen und dem Cross-Plattform-Ansatz entwickelt werden können. So können wir je nach Ausgangslage und den Projektanforderungen unseren Kunden die richtige Lösung anbieten. Wenn es Cross-Plattform sein soll, werden wir weiterhin bestimmt auf Flutter setzen.

Update vom 6.1.2022 In der Zwischenzeit haben wir mehr als ein dutzend Mobile-, wie auch Desktop- und Browseranwendungen erfolgreich mit Flutter umsetzen können. Flutter ist zu unserer Kerntechnologie geworden und wir greifen mittlerweile öfters zu Flutter als zur nativen App Entwicklung. Nach nun mehr als einem Jahr seit der Veröffentlichung des Artikels, ist unser neues Fazit, dass man mit Flutter durchaus sehr umfangreiche und komplexe Projekte erfolgreich realisieren kann. In unserem Blog und Referenzen werden wir weitere positive Erfahrungen mit Flutter-Projekten teilen.

Beratung erwünscht?

Wenden Sie sich an unseren Digital Experten Maroje Ljutic

+41 79 955 63 91 Mo-FR 9-18 Uhr
Projekt starten

Machen Sie den ersten Schritt in Ihre digitale Zukunft.

Kontakt Aufnehmen