Google Flutter Review - Warum Entwickler mobiler Apps Flutter lieben

Warum lieben App-Hersteller Flutter? Weil Flutter unglaublich ist.

Flutter richtet sich sowohl an Unternehmen (durch angemessene Entwicklungskosten) als auch an Entwickler (durch hohe Benutzerfreundlichkeit und Geschwindigkeit). Aus diesem Grund haben einige große Unternehmen wie Google Ads, Alibaba, Reflectly und viele mehr auf Flutter umgestellt.

Google hat beim Aufbau von Flutter großartige Arbeit geleistet und dieses Framework weiter verbessert.

In diesem Beitrag werde ich einen kurzen Überblick über Flutter und seine brandneuen Vorteile geben und darüber sprechen, warum es sich lohnt, mit diesem Framework zu arbeiten. Außerdem werde ich diskutieren, was große Unternehmen von der Einführung von Flutter abhalten könnte.

Aber das Wichtigste zuerst.

Was ist der Kern des Flatterns?

Hier sind Dinge über Flutter, die Sie vielleicht bereits kennen:

  • Es ist ein plattformübergreifendes Open-Source-Toolkit
  • Apps sind in der Programmiersprache Dart geschrieben
  • es hat eine eigene Grafik-Engine (Skia)
  • Es unterstützt offiziell drei Plattformen: iOS, Android und Web (in der Beta)
  • inoffiziell - es unterstützt auch Desktop

Google hat die erste Version von Flutter Ende Februar 2018 eingeführt. Ab April 2020 ist die Version 1.12 verfügbar.

Was ist das Besondere an Flutter?

Flutter kombiniert die Qualität nativer Apps mit der Flexibilität der plattformübergreifenden Entwicklung.

Mit vielen plattformübergreifenden Tools können Sie den Code einmal schreiben und sowohl auf iOS als auch auf Android verwenden. Dennoch können nicht alle das gleiche Aussehen wie eine native App erzielen.

Aber genau das macht Flutter: Anstatt ein Wrapper auf nativen UI-Komponenten (wie React Native und Xamarin) zu sein, zeichnet Flutter die UI von Grund auf neu.

Flutter behält die native Erfahrung und das Gefühl der App bei, und Sie müssen sich auf keiner Plattform um die Leistung kümmern.

Da Flutter ein Open-Source-Framework ist, kann jeder Entwickler Änderungen an GitHub vornehmen und Zusammenführungsanforderungen senden. Und wenn Sie sich die Popularität von Flutter ansehen - 90,4.000 GitHub- Stars , 12.000 Gabeln und 18.445 Commits -, werden Sie auf die Idee kommen, dass Entwickler Flutter lieben und dazu beitragen, es besser zu machen.

Wie funktioniert Flattern?

Flutter wird nicht direkt für iOS- oder Android-Apps kompiliert . Apps werden basierend auf einer Kombination aus Rendering-Engine (basierend auf C ++) und Flutter (basierend auf Dart) gestartet. Alle auf diese Weise generierten Dateien werden an jede App und SDK-Assembly-Software für eine bestimmte Plattform angehängt.

Es ist wie bei der Spieleentwicklung: Ein Spiel weist sein Framework nicht zu und die Funktionalität wird mit der Spiel-Engine ausgeführt. Gleiches gilt für die Flutter-Software. Alle auf dem Flutter SDK basierenden Apps ersetzen Teile nativer Frameworks durch Flutter-Elemente.

Obwohl dies die Größe der End-App beeinflussen kann, ist die Leistung immer noch recht gut - das Rendern erfolgt mit einer Geschwindigkeit von bis zu 120 FPS .

Aufgrund der nativen Kompilierung für ARM-Prozessoren, des einfachen Renderns und einer Reihe integrierter Widgets und Tools vereinfacht Flutter den Entwicklungsprozess.

Außerdem bietet es einige sehr leckere Funktionen wie Hot Reload .

So funktioniert das:

Wenn Sie auf die Schaltfläche Hot Reload klicken, werden alle Änderungen im Code sofort in Gadgets, Emulatoren und Simulatoren angezeigt. Die App arbeitet dort weiter, wo sie war, bevor Sie das Hot-Reload durchgeführt haben: Der Code wird aktualisiert, aber die Ausführung wird fortgesetzt.

Warum Flutter für plattformübergreifende Apps wählen?

Neue Flutter-Versionen werden immer mehr erweiterte Funktionen bieten. Aber es gibt bereits viele erweiterte Funktionen, die perfekt erklären, warum Flutter so beliebt ist.

Erstens macht die plattformübergreifende Entwicklung mit Flutter die Software entgegen der landläufigen Meinung nicht schlechter.

Flutter enthält alle nativen Widgets für Android- und iOS-Benutzeroberflächen wie Material Design und Cupertino. Außerdem kann das Framework das Verhalten einzelner Elemente ändern, um eine ähnliche Benutzeroberfläche für die Benutzer der App zu erstellen.

Zweitens ermöglicht Flutter die Implementierung einer diskreten Dateikompilierung im Dev-Modus. Die JiT-Kompilierung beschleunigt die Entwicklung und das Debuggen von Software.

Drittens ermöglicht Flutter ein flexibles und skalierbares Backend.

Es unterstützt Plugins wie Firebase, SQLite usw. (pub.dev hilft Ihnen dabei, das gewünschte zu finden). Firebase macht die Infrastruktur der App skalierbar, serverlos und redundant.

Wenn Sie also an Apps arbeiten, die Echtzeitdatenbanken oder Cloud-Funktionen erfordern, hat Flutter den Rücken frei.

Und der letzte: Flattern ist sehr leicht zu lernen .

Google-Entwickler haben sich von Anfang an zum Ziel gesetzt, die Eintrittsbarriere zu senken. Sie haben sorgfältig Dokumentation und Ressourcen ausgearbeitet, die Entwickler verwenden können. Es gibt sogar spezielle Abschnitte, in denen Sie je nach Spezialisierung mit dem Erlernen des Frameworks beginnen können:

  • Flattern für Android-Entwickler
  • Flattern für iOS-Entwickler
  • Flattern für React Native-Entwickler
  • Flattern für Xamarin.Forms-Entwickler
  • Flattern für Webentwickler

Aufgrund der detaillierten Dokumentation von Flutter erfahren Sie, wie Sie Code in Dart schreiben, auch wenn Sie nur Erfahrung mit Unity-Grafiktools für die Erstellung von Android-Spielen haben.

Flutter 1.12 (neueste Version) und seine Vorteile

Mal sehen, welche heißen Funktionen Flutter in seiner neuesten Version 1.12 eingeführt hat:

iOS Dark-Modus

Von nun an unterstützt Flutter das Erscheinungsbild von iOS 13, einschließlich der vollständigen Unterstützung des Dunkelmodus in den Cupertino-Widgets. Und es geht nicht nur darum, den Hintergrund auszutauschen, sondern den Rest der Farben so anzupassen, dass sie gut zusammenpassen.

Add-to-App-Unterstützung

Eine weitere große Verbesserung ist das Add-to-App-Update, mit dem Flutter in bereits vorhandene iOS / Android-Apps integriert werden kann.

Die neue Version von Flutter unterstützt das Hinzufügen einer Flutter-Vollbildinstanz zur App, zusammen mit:

  • Integration stabilisierter APIs in Java, Kotlin, Objective-C und Swift
  • Unterstützung für die Verwendung von Plugins in Flutter-Modulen
  • Zusätzliche Integrationsmechanismen über Android AARs und iOS Frameworks

Beta-Web-Support

Neue Flutter Master-, Dev- und Beta-Kanäle bieten eine verbesserte Unterstützung für das Web. Willst du ein paar Beispiele?

Hier ist Rivet , ein Bildungsprojekt, bei dem Flutter und Firebase verwendet wurden, um eine Webversion ihrer App zu erstellen.

Dart 2.7

Die neue Version des Frameworks führt Dart 2.7 ein.

Dieses Update verbessert die Erfahrung mit Dart 2.5 darin, wie sichere Zeichenfolgen mit Fähigkeiten und Erweiterungsprozessen umgehen. Dies hilft Entwicklern, Fehler zu vermeiden, wenn Variablen einen Nullwert erhalten und Ganzzahlen in einer Zeichenfolge analysieren.

Und hier sind einige andere Funktionen der neuesten Flutter-Version:

  • macOS Desktop-Unterstützung (Alpha)
  • Debugging für mehrere Geräte
  • Golden Image Test
  • Verbesserungen beim Android-Build
  • DartPad aktualisiert

Es ist gut, aber nicht ohne Probleme: Was hält Entwickler zurück?

Flutter ist wirklich cool: einfach zu starten, einfach zu bearbeiten und von einem großen Technologieunternehmen präsentiert. Hier sind die Gründe, warum Ihr Senior Developer Ihren Optimismus möglicherweise nicht teilt.

Darts (geringe) Popularität

Im Gegensatz zu Java / Kotlin für Android oder Swift / Objective-C für iOS ist Dart noch nicht sehr beliebt. Und das ist höchst unwahrscheinlich.

Dart ist nicht allzu schwer zu lernen und es gibt unzählige Tutorials (wie dieses), aber einige Entwickler halten sich weiterhin an Java und andere bekannte Tools.

Gleichzeitig können Sie Flutter nicht verwenden und Dart nicht verwenden: Selbst Flatters Killer-Funktion - Hot Reload - funktioniert ohne Dart nicht.

Unterstützt nicht alle Geräte

Sie können keine Apps für 32-Bit-iOS-Geräte erstellen, die älter als das iPhone 5s sind. Gleiches gilt für Windows-Desktops: Sie können Flutter nicht auf Ihrem 32-Bit-Laptop ausführen.

Und Flutter-Entwickler haben keine Pläne, dies zu beheben, da "dies einen sehr erheblichen Arbeitsaufwand bedeuten würde".

Wenn Sie also mit Flutter codieren möchten, müssen Sie ein x64-Bit-Gerät besitzen oder das jetzt verwendete aktualisieren.

Begrenzte Anzahl von Bibliotheken

Obwohl es viele Flutter- Bibliotheken wie fl_chart (zum Zeichnen von Grafiken in Flutter), path_provider (zum Suchen einer Datei unter Android / iOS), flutter_sliding_tutorial und viele mehr gibt, ist die Anzahl immer noch begrenzt.

Dies ist nicht schwer zu erklären: Flutter ist ein relativ neues Framework, und Entwickler hatten nicht genug Zeit, um so viele Bibliotheken zu entwickeln, wie Muttersprachen bieten.

Dennoch sind die wichtigsten Bibliotheken bereits vorhanden, und es kommen ständig neue heraus.

Flatter-Apps sind größer

... im Vergleich zu nativ entwickelten Anwendungen. Das Team von Flutter hat die minimale App-Größe (ohne Materialkomponenten, nur ein einziges Center-Widget, erstellt mit flutter build apk --split-per-abi), gebündelt und komprimiert, auf 4,3 MB für ARM und 4,6 MB für ARM 64 gemessen .

Die Basis-App ist jetzt ~ 4 MB in Android und ~ 10 MB in iOS.

Wenig nachgewiesene Expertise

Flutter mag von Entwicklern geliebt werden, aber große Unternehmen haben es nicht eilig, die Erstellung nativer (oder reaktiver) Apps einzustellen und sich an Flutter zu wenden.

Für die meisten Unternehmen ist das größte Problem die Neuheit von Flutter. Dart ist neuer als Java oder C # und Flutter selbst ist brandneu.

Natürlich gibt es viele Open-Source-Apps von Flutter, darunter große wie Google Ads oder Hamilton (die vollständige Liste finden Sie hier), aber nicht zu viele.

Und niemand möchte die Person sein, die ein brandneues Framework einführt, nur um einige Monate später zur nativen Entwicklung wechseln zu müssen.

Noch wichtiger ist jedoch, dass Flutter der Weg ist, den Sie alleine gehen:

  • Es gibt nicht viele bestätigte Best Practices (zumindest bei Großprojekten).
  • Immer eine Chance, dass Sie der erste sind, der mit diesem speziellen Problem konfrontiert ist
  • Wenig Hoffnung, jemand wird Ihnen helfen - Sie müssen jeden Schritt sorgfältig ausführen und bereit sein, sich den Konsequenzen zu stellen

Verwendung von Flutter

Zunächst ist es besser, Flutter für MVP-Starts zu verwenden, wenn Sie nur wenig Zeit und häufig Geld haben, um das Geschäftsmodell zu überprüfen.

Eine Flutter App ist billiger *:

  • * im Vergleich zu den Kosten für zwei native Apps
  • Das Entwicklungsteam ist 40% kleiner
  • lineare Prozesse
  • Sie können mehr Zeit damit verbringen, an den Funktionen der App zu arbeiten

Wenn Sie sich für ein Flutter-Projekt entscheiden, reduzieren Sie die Anzahl der Entwicklungsstunden. Die Flatterentwicklung nimmt im Vergleich zur nativen nicht so viel Zeit in Anspruch.

Hier ist ein Beispiel. Angenommen, Sie erstellen eine Instagram-ähnliche App für zwei Plattformen. iOS Entwicklung geht zu nehmen, etwa, über 700 Stunden Android - auch 700h .

Mit Flutter decken Sie beide Plattformen ab und sparen Zeit: 700h Android + 700h iOS vs. 700h Flutter.

Sie sparen eine Menge Zeit, die Sie für etwas anderes aufwenden können, beispielsweise für das Polieren der Funktionen.

Einpacken

Wenn Sie Apps in begrenzter Zeit mit einem begrenzten Budget erstellen, ist Flutter auf jeden Fall einen Versuch wert.

Es ist genauso gut wie es scheint und mit jedem neuen Update fügen Google-Entwickler gleichmäßigere Tools für die plattformübergreifende Entwicklung hinzu.

Natürlich mag dieses Framework für C # - und Java-Liebhaber ungewöhnlich erscheinen, aber es bedeutet nicht, dass es Sie aus Ihrer Komfortzone zwingt. Nachdem Sie die kleinen Syntaxunterschiede gemeistert haben, werden Sie bald feststellen, dass die UI-Entwicklung im Vergleich zur nativen Entwicklung einige Male schneller verläuft.

Und wenn Sie erfolgreich sind und Flutter dabei bleibt, könnte dies Ihnen in Zukunft aufregende Erfahrungen und Möglichkeiten für die mobile Entwicklung bringen.