Hybrid Power: Vorteile und Vorteile von Flutter

Veröffentlicht: 2022-03-11

Flutter ist eine Hybrid-Entwicklungsplattform für mobile Anwendungen von Google, die Ende 2018 1.0 erreicht hat. Obwohl es ein neuerer Eintrag in der Liste der Hybrid-Entwicklungs-Frameworks ist, haben die großartigen Ideen dahinter dazu geführt, dass es sich bei Entwicklern schnell durchgesetzt hat.

Mein Ziel in diesem Artikel ist es, diese Ideen zu untersuchen und über meine Erfahrungen mit Flutter zu schreiben und warum ich glaube, dass es die Zukunft der Entwicklung hybrider mobiler Anwendungen ist.

Obwohl es ältere Hybrid-App-Frameworks auf dem Markt gibt, gibt es eine wachsende Liste namhafter Unternehmen, die Flutter für ihre mobilen Anwendungen wählen. Während die Flutter-Showcase-Seite viele davon auflistet, sind hier einige bemerkenswerte Apps, die Flutter entweder für die gesamte App oder für eine wichtige Funktion verwenden:

  • Die Google Ads-App
  • Die GrabMerchant-App von GrabFood
  • Die Xianyu-App der Alibaba Group mit mehr als 50 Millionen Downloads
  • Nubank
  • Die eBay Motors-App

Obwohl das Flutter-Framework durchaus leistungsfähig ist, ist es noch relativ neu. Aus Gründen der Ausgewogenheit werde ich auch einige Einschränkungen besprechen, die Sie beachten sollten, bevor Sie sich für Flutter entscheiden.

Ich hoffe, dass Sie nach dem Lesen dieses Artikels eine gute Vorstellung von den Vor- und Nachteilen von Flutter haben und über genügend Informationen verfügen, um zu entscheiden, ob Sie Flutter in Ihrem nächsten mobilen Anwendungsprojekt verwenden sollten.

Flutter-Vorteile (aus Entwicklungssicht)

Als Entwickler ist dies die Sichtweise, mit der ich am besten vertraut bin und über die ich die meisten Informationen teilen kann.

Schnelle Lernkurve

Die erste angenehme Überraschung, die Flutter für Entwickler hat, ist, wie schnell es losgeht. Es dauert weniger als 30 Minuten, um den Installationsvorgang abzuschließen und eine funktionierende Entwicklungsumgebung einzurichten. Von dort aus können Sie Ihre erste Flutter-App erstellen.

Beliebte Editor-Integration

Flutter hat auch großartige Editor-Integrationen. Ich persönlich verwende Android Studio, aber es gibt Anweisungen zum Einrichten von IntelliJ, VSCode oder Emacs.

Sauberer Entwicklungsprozess

Im Vergleich zu meinen bisherigen Erfahrungen mit hybriden App-Frameworks fühlt sich der Entwicklungsprozess zudem sauberer an . Als ich beispielsweise WebViews zum Anzeigen von Listen mit vielen Elementen (ca. 100 oder so) verwendete, musste ich mich mit einer hohen CPU-Auslastung auseinandersetzen, insbesondere wenn der Benutzer durch die Liste scrollte. Ich habe diese gelöst, indem ich ionische Rahmenelemente verwendet habe, die speziell dafür hergestellt wurden. In Flutter gibt es eine akzeptierte Methode zum Anzeigen von Listen, die ListView , die sofort einsatzbereit eine erstaunliche Leistung bietet.

Live-Neuladen

Eine andere Sache, die mich angenehm überrascht hat, war die Live-Reload-Funktion. Als Full-Stack-Entwickler war ich an Frameworks wie BrowserWatch gewöhnt, die Live-Reload im Browser bieten.

Die native Entwicklung hat das nicht (aber ich denke, SwiftUI von Apple macht an dieser Front einige Fortschritte für die iOS-Entwicklung). Android- und iOS-Entwickler müssen normalerweise Code schreiben und dann warten, bis er kompiliert und auf das Gerät oder den Simulator geladen wurde, bevor sie Änderungen sehen können.

Flutter bietet (a la React Native) einen Live-Reload-Mechanismus, bei dem der App-Code auf dem Gerät neu geladen wird, sobald Entwickler auf „Speichern“ klicken. Dies gibt sofortiges Feedback und beschleunigt die Entwicklung erheblich.

Leistung

Die Anwendungsleistung ist eine weitere Metrik, bei der sich Flutter langsam als Gewinner herausstellt.

Da das Flutter-Framework aktiv weiterentwickelt wird, gibt es viele Stellen, an denen Leistungsoptimierungen vorgenommen werden können. Dies zeigt sich beispielsweise in Flutter 1.17, das die Renderleistung auf neueren iOS-Geräten um bis zu 50 % steigerte und den Speicherverbrauch für bestimmte Arten von Arbeitslasten um bis zu 70 % senkte.

Plattformübergreifende Konsistenz

Wirklich konsistente Benutzeroberflächen auf beiden mobilen Plattformen sind ein weiteres bemerkenswertes Merkmal von Flutter. Da Flutter seine eigene Rendering-Engine verwendet – dazu später mehr – ist die Benutzeroberfläche auf iOS und Android genau gleich. Entwickler müssen sich nicht mehr mit plattformspezifischen Gestaltungsproblemen auseinandersetzen, damit alles genau wie das Design aussieht: Diese Garantie ist Teil des Frameworks.

Sprache, Werkzeuge und Erweiterung

Drei weitere kleinere, aber dennoch wichtige Aspekte, die meiner Meinung nach hier erwähnt werden sollten, sind:

  • Dart, die Sprache, in der Flutter-Anwendungen programmiert werden, ist für den Einstieg sehr einfach. Aber es ist auch eine ziemlich mächtige Sprache, die ursprünglich von Google als Ersatz für JavaScript gedacht war. Wenn Entwickler Erfahrung mit JavaScript oder anderen C-ähnlichen Sprachen haben, werden sie keine Probleme haben, Dart innerhalb von ein oder zwei Tagen zu erlernen.
  • Es gibt einen robusten Plugin-Manager (pub), der in der Standard-Toolkette enthalten ist, und eine riesige Bibliothek von Plugins, die über das pub.dev-Plugin-Repository verfügbar sind.
  • Das Erstellen von Plugins zur Nutzung nativer Plattformfunktionen ist recht einfach. Wenn Entwickler also Zugriff auf eine Plattformfunktion benötigen, für die noch kein Plugin vorhanden ist, ist das Codieren eines Plugins nicht allzu schwierig.

Vorteile von Flutter (aus geschäftlicher Sicht)

Der größte Flutter-Vorteil, an den die meisten Unternehmen denken, besteht darin, dass sie nur ein Team für die iOS- und Android-Plattformen einstellen müssen . Ein wichtigerer Vorteil, den viele Unternehmen übersehen, ist jedoch die schnellere Markteinführung . Durch die Nutzung der Entwicklungsvorteile im vorherigen Abschnitt kann ein kleineres Entwicklungsteam mit Flutter viel schneller eine schöne Anwendung mit nativer Leistung erstellen, die auf beiden Plattformen die gleiche Benutzererfahrung bietet.

Flutter ermöglicht es Entwicklern, einige wirklich schöne Benutzeroberflächen zu erstellen . Werfen Sie einen Blick auf eine kürzlich von Google und Lenovo herausgeforderte Herausforderung, eine schöne Zifferblatt-Benutzeroberfläche für die Lenovo Smart Clock zu erstellen. Der Gewinner, Particle Clock von Mickel Andersson, ist nicht nur einzigartig elegant – er zeigt auch, wie leistungsfähig Animationen in Flutter sind.

Für Unternehmen, die Flutter in Betracht ziehen, sich aber nicht sicher sind, ob es der richtige Weg ist, kann Flutter schrittweise genutzt werden: Vorhandene mobile Apps können Flutter jeweils einzeln integrieren. Tatsächlich beginnen die meisten großen Unternehmen so mit Flutter, indem sie einen kleinen Teil ihrer bestehenden Anwendung in Flutter erstellen und dann langsam andere Teile ersetzen, sobald sie die Vorteile sehen.

Einschränkungen, die vor der Verwendung von Flutter zu berücksichtigen sind

Fairerweise muss gesagt werden, dass Flutter, da es neuer ist, nicht ganz so kampferprobt ist wie andere hybride Frameworks für mobile Anwendungen wie React Native – schließlich deckt die Endbenutzerreichweite von React Native die mobilen Apps von Facebook, Instagram, Skype und Discord ab.

Die Standardantwort auf „Soll ich Flutter verwenden?“ ist vorerst ein vorsichtiges ja . Dies liegt daran, dass Projektmanager immer noch überlegen müssen, welche erweiterten Funktionen sie benötigen, und sicherstellen müssen, dass diese Funktionen in Flutter verfügbar sind, bevor sie sich zur Verwendung verpflichten. Insbesondere lohnt es sich zu fragen, welche Bibliotheken und Plugins ein Team möglicherweise benötigt, um eine bestimmte Anwendung zu erstellen. Als neuerer Eintrag in mobilen App-Frameworks verfügt Flutter nicht über den umfangreichen Umfang an Bibliotheken und Plugins wie React Native.

Zum Beispiel ist die Kameraunterstützung in Flutter noch nicht vollständig, da Zoomen und Blitzsteuerung noch nicht Teil des offiziellen Kamera-Plugins sind. Für mich war das kein Deal Breaker, da ich ein Plugin eines Drittanbieters finden konnte, als ich Foto-/Videofunktionen in eine von mir erstellte App integrieren musste.

Ein weiteres wichtiges Plugin, das Sie möglicherweise vermissen, ist Google Maps. Es gibt keine Dart-nativen Google Maps-Plugins, und obwohl es ein Plugin gibt, das die Integration von Google Maps in Ihren Flutter-Code ermöglicht, verwendet es Funktionen von Flutter (Plattformansichten), die sich noch im Vorschaustatus der Entwickler befinden.

Eine weitere Sache, die viele Projekte nicht beeinflussen wird, aber Sie sollten sich darüber im Klaren sein, ist, dass Flutter vorerst keine 3D-Fähigkeiten unterstützt. Das Team konzentriert sich vorerst nur auf 2D. Die meisten Anwendungen verwenden jedoch keine 3D-Funktionalität, daher sollte dies für die Mehrheit der Entwickler kein Deal-Breaker sein.

Einige Ratschläge aus meiner Erfahrung mit Flutter

Nachdem ich in den letzten zwei Jahren drei Flutter-Apps veröffentlicht habe, habe ich eine Reihe von Dingen gelernt, von denen ich mir gewünscht hätte, dass sie mir zu Beginn gesagt worden wären. Ich werde sie hier auflisten, in der Hoffnung, dass sie Ihnen bei Ihrer Flutter-Entwicklungsreise helfen.

Flutter ist sehr einfach zu starten. Ich begann mit einem wunderbaren Kurs über App Brewery. Nachdem ich jedoch die ersten paar Module abgeschlossen hatte, dachte ich, dass ich genug gelernt hatte, und begann mit der Entwicklung der ersten App, die ich startete.

Aufgrund meiner Ungeduld habe ich in diesem Kurs einige Module übersprungen, die sich als wichtig erwiesen haben, und ich musste die Lektionen dieser Module auf die harte Tour lernen, indem ich Fehler machte. Insbesondere hätte ich bei meiner ersten Verwendung von Flutter für die App-Entwicklung einen viel besseren Job gemacht, wenn ich ein paar Best Practices für Flutter gelernt hätte:

  • Wie ich meinen Flutter-Anwendungscode modularisiere und strukturiere.
  • So funktioniert die Staatsverwaltung.
  • So authentifizieren Sie Benutzer und verfolgen den Authentifizierungsstatus auf den verschiedenen Seiten meiner Flutter-App.
  • So integrieren Sie Benachrichtigungen mit dem Firebase Messaging-Paket.

Am Ende habe ich all diese Dinge gelernt, musste aber zuerst viele Fehler machen. Ich habe wesentliche Teile der ersten von mir erstellten App umgeschrieben. Bei meiner zweiten Flutter-App hatte ich jedoch aus meinen Fehlern gelernt und am Ende einen besseren und schnelleren Job gemacht.

Es gibt viele Ressourcen, die Sie leicht finden können, indem Sie Google durchsuchen, um mehr über die oben aufgeführten Konzepte zu erfahren. Sie können beginnen, indem Sie sich die Links auf der Seite Learn More auf der Flutter-Website ansehen.

Eine andere Sache, die ich gefunden habe, ist, dass es aufgrund der Neuheit von Flutter kein Muster für die Strukturierung Ihrer App gibt. Da ich aus einer hauptsächlich Django-basierten Entwicklungskarriere komme, bin ich es gewohnt zu wissen, dass MVC das Muster ist, das ich in meinen Django-Apps verwenden sollte. iOS hat auch einen klaren Gewinner im MVVM-Muster, dem es folgt. Android hat eine Reihe von Richtlinien, wie man eine App am besten entwickelt.

Flutter hat kein solches Architekturmuster, das sich gegen die vielen Möglichkeiten „durchgesetzt“ hätte. Das war etwas, was mir anfangs eine harte Zeit bereitete. Am Ende, nachdem ich eine Reihe von Flutter-Apps entwickelt habe, denke ich, dass es am besten ist, einfach eine Architektur zu wählen und dabei zu bleiben.

Ich persönlich verwende das provider -Paket sowohl als Dependency-Injection- als auch als Change-Management-Framework. Meine Flutter-Apps sind ebenfalls grob in drei Zeilen unterteilt:

  1. Ansichten , das sind die Widgets, die die Anwendung aufbauen, einschließlich der Bildschirme. Ich füge Dienste und Modelle mit dem Consumer -Widget aus dem Provider -Paket in meine Ansichten ein, damit ich die Benutzeroberfläche basierend auf den verfügbaren Daten erstellen kann. Das Consumer -Widget erstellt auch die Ansicht neu, wenn sich der Status ändert, sodass meine Apps auf Statusänderungen reagieren.
  2. Modelle , bei denen es sich um einfache alte Objekte handelt, die ich zum Speichern strukturierter Daten verwende.
  3. Dienste/Controller , wo der Großteil der Geschäftslogik stattfindet. Hier werden auch API-Schnittstellen codiert, die Daten abrufen und an die API senden können. Diese API-Schnittstellen bieten und akzeptieren Modelle zur Weitergabe von Daten.

Als Alternative zum provider ist auch die Blockbibliothek eine Überlegung wert. Es hat eine etwas andere Architektur und verwendet Streams von Ereignissen und Zuständen, um Ansichten und Modelle zu verbinden.

Verwandte: So nutzen Sie BLoC für die Codefreigabe in Flutter und AngularDart

Es ist eine etwas komplexere Methode zum Verwalten des Status als die Verwendung der provider , aber es zahlt sich aus, wenn Sie eine komplexe Anwendung haben, in der Sie Änderungen an denselben Daten aus mehreren Quellen vornehmen und auf diese Änderungen von mehreren Stellen aus reagieren müssen.

Wenn Sie BLoC oder provider am Ende nicht verwenden, müssen Sie sich eine Methode einfallen lassen, um den Status in Ihrer Anwendung zu verwalten, insbesondere wenn es um Benachrichtigungen geht.

Wie Flutter im Vergleich zu anderen Hybrid-Frameworks abschneidet

Nativ reagieren

React Native ist das bisher mit Abstand beliebteste und erfolgreichste Hybrid-Framework für mobile Anwendungen, und das aus gutem Grund. Es brauchte ein beliebtes und gut gemachtes Front-End-Web-Framework, React, und ermöglichte es Millionen von Front-End-Entwicklern, auch mobile Anwendungen zu schreiben. Ich bin zuversichtlich, dass viele der großartigen mobilen Apps, die wir heute haben, niemals entwickelt worden wären, wenn die Entwickler die Zeit und Motivation finden müssten, die nativen iOS- und Android-Entwicklungs-SDKs zu lernen.

Vor diesem Hintergrund bin ich zuversichtlich, sagen zu können, dass sich Flutter letztendlich als führendes Hybrid-Framework für mobile Anwendungen durchsetzen wird. Dafür gibt es mehrere Gründe.

React Native-Komponenten werden in JavaScript-Code beschrieben und in native Steuerelemente übersetzt. Das bedeutet, dass Benutzer in den iOS- und Android-Versionen der App ein anderes UI-Feeling bekommen. Wenn Entwickler versuchen, eine native Erfahrung für ihre Benutzer zu erreichen, ist dies großartig.

Das bedeutet jedoch auch, dass Entwickler, wenn sie auf beiden mobilen Plattformen dieselbe, konsistente Benutzeroberfläche haben möchten, hart daran arbeiten müssen, die nativen Komponenten so zu gestalten, dass sie gleich aussehen, oder insgesamt unterschiedliche Komponenten verwenden müssen, die auf beiden Plattformen dasselbe Erscheinungsbild bieten Plattformen.

Vergleichen Sie dies mit Flutter, wo das Framework seine eigenen Widgets auf allen unterstützten Plattformen bereitstellt. Es findet keine Übersetzung statt, da Flutter sich nicht auf die nativen Steuerelemente verlässt, um die Benutzeroberfläche zu malen. Stattdessen verwendet es seine eigene Bibliothek von Steuerelementen. Die Widget-Bibliothek von Flutter bietet Widgets, die wie native Steuerelemente aussehen, aber sie sind völlig optional.

Dieser Ansatz hat seine Vor- und Nachteile. Der größte Vorteil ist, dass Sie jetzt auf beiden Plattformen genau dieselbe App haben. Aber Sie geben einige Dinge auf, um das zu erreichen.

Da Flutter seine eigenen Widgets verwendet, anstatt die nativen zu verwenden, können Sie nicht die Fülle bestehender Bibliotheken verwenden, die benutzerdefinierte Steuerelemente bereitstellen, wie Sie es mit minimaler Arbeit an React Native können. In React Native ist es ziemlich einfach, einen kleinen Wrapper um jedes vorhandene native Steuerelement zu schreiben und es zum Laufen zu bringen. Aus diesem Grund gibt es derzeit auch keine stabile Google Maps-Implementierung für Flutter.

An der Möglichkeit, native Steuerelemente einzubetten, wird jedoch gerade gearbeitet und befindet sich in der Entwicklervorschau, was bedeutet, dass Sie sie verwenden können, aber möglicherweise mit Fehlern zu kämpfen haben. Sobald es veröffentlicht ist, wird es dieses ziemlich große Funktionsloch in Flutter im Vergleich zu React Native schließen.

Dieselbe Flutter-Funktion – die Verwendung einer eigenen Bibliothek von Widgets anstelle von nativen – bietet auch einen großen Vorteil, wenn Sie eine völlig neue Komponente erstellen möchten. In React Native müssten Sie eine plattformnative Komponente erstellen und diese über Bindings in Ihre Anwendung importieren.

Mit Flutter können Sie benutzerdefinierte Komponenten direkt in Ihrem Dart-Code erstellen. Sie haben die vollständige Kontrolle über die Benutzeroberfläche mit Widgets wie CustomPainter , mit denen Sie zeichnen können, was immer Sie brauchen, und Ihnen steht eine Bibliothek mit Widgets zur Verfügung, mit der Sie benutzerdefinierte Animationen implementieren können. Sie müssen die Dart-Codebasis nie verlassen, um diese benutzerdefinierten Widgets zu erstellen.

Und das ist meiner Meinung nach einer der größten Flutter-Vorteile. Sie haben die vollständige Kontrolle über Ihre Benutzeroberfläche über den Dart-Code und müssen sich nicht mehr darum kümmern, das native SDK der Plattformen zu lernen, für die Sie entwickeln.

Apache Cordova

Apache Cordova ist weniger ein Framework als vielmehr ein Browser-Wrapper. Mit Cordova erstellen Sie Ihre Anwendung mithilfe von Webtechnologien: HTML, CSS und JavaScript. Cordova bietet Ihnen die Möglichkeit, diese Webanwendung auf mobilen Plattformen auszuführen, und stellt native Plattform-APIs in JavaScript bereit, damit Ihre Anwendung mit der Plattform interagieren kann.

Es gibt eine Reihe verschiedener Frameworks, die für Cordova erstellt wurden. Eines der bekanntesten, die ich in der Vergangenheit verwendet habe, ist das Ionic-Framework. Es bietet eine Reihe von UI-Komponenten, die ähnlich wie native Plattformkomponenten aussehen und funktionieren. Diese Komponenten werden jedoch mit HTML/CSS/JavaScript implementiert.

Die Entwicklungserfahrung mit Cordova und Ionic ist wirklich schön, und der Einstieg ist sehr schnell, wenn Sie bereits Webentwickler sind. Da Sie Anwendungen mithilfe von Webtechnologien erstellen, steht Ihnen das gesamte Web-Ökosystem zur Verfügung. Denken Sie an die Hunderttausenden von kleinen Komponenten und Bibliotheken, die auf HTML/CSS/JavaScript basieren, und Sie können die meisten – wenn nicht alle – davon verwenden. Das bedeutet, dass Ihnen die meisten „Widgets“, die Sie benötigen, bereits online zur Verfügung stehen.

Dies ist jedoch auch ein Nachteil. Da Sie Webtechnologien verwenden, um Ihre Anwendungen zu erstellen, ist große Sorgfalt erforderlich, um sicherzustellen, dass die App wie eine mobile App aussieht und sich anfühlt, und nicht nur eine Website, die für den Betrieb auf Mobilgeräten verkleinert wurde.

Während Cordova eine großartige Möglichkeit ist, ein MVP oder sogar die ersten paar Versionen Ihrer App zu entwickeln, war die erste App, die ich in Flutter erstellt habe, eine Portierung einer Ionic-App. Die Leistungsverbesserungen, die wir erzielten, insbesondere bei Ansichten mit vielen Inhalten, durch die gescrollt werden musste, machten sich ab der ersten Interaktion bemerkbar.

Xamarin

Ich habe keine Erfahrung mit Xamarian, daher kann ich die beiden nicht fair vergleichen. Während meiner Recherche bin ich jedoch auf einen großartigen Artikel gestoßen, der einen fairen Vergleich anstellt.

Während der Artikel mit einem Unentschieden zwischen Flutter und Xamarian endet, kann ich zuversichtlich sagen, dass ich mich für Flutter entschieden hätte, wenn ich ihn gelesen hätte und mich zwischen den beiden Frameworks entscheiden müsste, weil die Dinge, in denen er leuchtet, die Dinge sind dass ich mehr schätze.

Ein technischer Überblick über Flutter

Flutter: Die „Game Engine“ von Hybrid App Frameworks

Unter den hybriden Frameworks für mobile Anwendungen hat Flutter einen einzigartigen Ansatz. Es delegiert die Benutzeroberfläche nicht an die native Plattform oder verwendet eine Webansicht. Stattdessen verwendet Flutter seine eigene Rendering-Engine, um die Benutzeroberfläche zu malen. Dies ähnelt der Art und Weise, wie Spiele eine Spiel-Engine verwenden, die alle Teile ihrer Benutzeroberflächen generiert, anstatt native Steuerelemente zu verwenden.

Flutter verwendet die leistungsstarke, kampferprobte Skia-Grafik-Engine, um alles in Ihre mobile Anwendung zu zeichnen. Die Verwendung von Skia bietet zwei Hauptvorteile, die mir einfallen, obwohl ich sicher bin, dass die Google-Ingenieure hinter Flutter viel mehr im Sinn hatten:

  1. Ihre App sieht auf allen Plattformen genau gleich aus, ohne dass sie für jede angepasst werden muss.
  2. Ihre App wird ähnlich wie native Anwendungen eine hervorragende Leistung erzielen, da es keine Zwischenschicht gibt, die Ihren Code in nativen Plattformcode übersetzen muss, um die Widgets zu zeichnen.

Alles ist ein Widget

Die Flutter-Dokumentation spricht von Flutter als „Framework im React-Stil“. Dies zeigt sich darin, wie Apps erstellt werden, indem kleinere Widgets ( Komponenten in der React-Terminologie) zusammengefügt werden.

Allerdings geht Flutter den Alles-ist-ein-Widget- Ansatz einen Schritt weiter als jedes andere Framework, mit dem ich gearbeitet habe.

Ein einfaches Beispiel ist das Auffüllen. Bei den meisten Frameworks ist Padding ein Attribut der UI-Elemente. In Flutter ist Padding ein Widget, das andere Widgets in sich einhüllen und Padding um sein untergeordnetes Widget hinzufügen kann.

Einzigartiger ist, dass das InheritedWidget keine Benutzeroberfläche hat und keine Benutzerinteraktion bereitstellt. Seine einzige Aufgabe besteht darin, Informationen zum Widget-Baum hinzuzufügen, sodass Sie diese Informationen irgendwann tief im Baum herausziehen können.

Beispielsweise kann der Stamm Ihrer Anwendung – das MaterialApp -Widget – mithilfe eines InheritedWidget einen Authentifizierungsdienst in die Widget-Struktur einfügen. Jetzt können Sie tief im Baum auf einer anderen Seite, wie Ihrer Benutzerprofilseite, eine Methode verwenden, um diesen Authentifizierungsdienst zu extrahieren und zu verwenden.

Dieser Alles-ist-ein-Widget- Ansatz ist etwas gewöhnungsbedürftig. Aber sobald Sie damit vertraut sind, wird es zu einer leistungsstarken Möglichkeit, Funktionalität in Ihre Anwendungen einzubauen.

Flutter, Dart und Graben in die Quelle

Flutter ist eng mit Dart verbunden. Während die Kern-Rendering-Engine in C/C++ gebaut ist, ist das nur ein kleiner Teil von Flutter.

Der Großteil der Flutter-Codebasis ist in Dart geschrieben, und es gibt gute Gründe, warum sich das Flutter-Team dafür entschieden hat. Aber der größte Vorteil für mich war, dass ich mir den Quellcode des Frameworks – und all die verschiedenen Widgets, die es bietet – leicht ansehen und daraus lernen konnte.

Dies ist ein mächtigerer Vorteil, als viele Entwickler erkennen. Ich empfehle, dass die meisten Entwickler versuchen, Antworten im Code ihrer Frameworks/Bibliotheken zu finden, da ihnen das nicht nur hilft zu verstehen, was unter der Decke passiert, sondern sie auch qualitativ hochwertigem, ausgereiftem Code aussetzt, was ein sicherer Weg ist als Entwickler zu wachsen.

Native Plattform-Interoperabilität

Während Flutter die UI-Schicht bereitstellt und die Geschäftslogik einfach über reine Dart-Pakete gehandhabt werden kann, ist die Verwendung der Drittanbieter-Pakete von pub.dev die einfachste Strategie, um auf die Funktionen der nativen Plattform wie Geolokalisierung und Kamerasteuerung zuzugreifen.

Wenn Sie jedoch einige Funktionen benötigen, die nicht über ein vorhandenes Paket verfügbar sind, ist es nicht allzu schwierig, selbst eines zu schreiben. Ich habe selbst keine plattformnativen Pakete gebaut, aber ich habe mir den Quellcode für viele aus Neugier angeschaut.

Obwohl ich kein nativer Anwendungsentwickler bin, konnte ich die nativen Teile dieser Plugins größtenteils verstehen und sehen, wie sie sich per Message-Passing mit der Dart-Laufzeit verbinden. Für erfahrene Entwickler nativer Plattformen wird es sehr einfach sein, ein neues Paket zu erstellen, um eine native Funktion zu nutzen.

Sollten Sie Flutter in Ihrem nächsten Projekt verwenden?

Hoffentlich hat Ihnen dieser Artikel genügend Informationen gegeben, um zu entscheiden, ob Sie Flutter in Ihrem mobilen Anwendungsprojekt verwenden können. Ich habe versucht, ein ausgewogenes Bild von Flutter zu geben und sowohl die Vor- als auch die Nachteile aufzulisten.

Während Ihnen niemand die Entscheidung abnehmen kann, kann ich Ihnen einige Abschiedstipps geben, wie ich die Frage der Verwendung von Flutter in meiner nächsten mobilen Anwendung angehen könnte. Wenn die Vorteile von Flutter alle Funktionen bieten können, die eine Anwendung benötigt, würde ich mich sofort dafür entscheiden.

Abgesehen von den wenigen Bereichen, in denen Flutter derzeit fehlt, sind alle anderen Aspekte davon diejenigen, die ich bewundere und auf die ich mich bei der Entwicklung und Einführung der fünf verschiedenen Flutter-Anwendungen im vergangenen Jahr verlasse:

  • Flutters einfacher Einstieg
  • Die Geschwindigkeitsgewinne, die durch die Verwendung eines Frameworks erzielt werden können, das von Grund auf so konzipiert wurde, dass es sich auf die Geschwindigkeit der Entwicklung konzentriert
  • Das reichhaltige Ökosystem aus leicht verfügbaren Dart-Bibliotheken und Paketen von Drittanbietern
  • Flutters andersartiger, aber äußerst produktiver Weg zur Entwicklung von Anwendungen mit dem Alles-ist-ein-Widget -Ansatz

Diejenigen, die Entwicklungsdienste für mobile Apps anbieten, sollten Flutter ernsthaft ins Auge fassen, falls sie dies noch nicht getan haben.

Ich schließe mit einem letzten Vorteil von Flutter: Es hat einige der besten Dokumentationen aller Bibliotheken oder Frameworks, mit denen ich gearbeitet habe. Es kommt selten vor, dass ich eine Flutter-Frage google und sie nicht von einer Seite von Flutters eigener Website beantwortet wird.

Siehe auch : Flutter-Tutorial: So erstellen Sie Ihre erste Flutter-App

Google Cloud-Partner-Logo.

Als Google Cloud Partner stehen die Google-zertifizierten Experten von Toptal Unternehmen on demand für ihre wichtigsten Projekte zur Verfügung.