So überzeugen Sie einen Kunden oder ein Unternehmen von Flutter

Hallo Habr! Ich präsentiere Ihnen die Übersetzung aus dem Englischen. Pitching Flutter zu Ihren Firmen- oder Kundenartikeln (Autor Wm Leler )

Mehr als ein Jahr ist seit der Veröffentlichung des Artikels What's Revolutionary about Flutter vergangen (und dieses Material ist immer noch relevant). Als ich diesen Artikel schrieb, hörten nur wenige mobile Entwickler von Flutter, aber seitdem hat sich viel geändert. Jetzt habe ich keine Zeit mehr, dem Strom neuer Artikel und Videos zu folgen, die in dieser aktiven und sich ständig weiterentwickelnden Community erscheinen. Die Entwickler haben Flutter entdeckt und sind verrückt danach . Hier ist eine Beispielanwendung von Reflectly, die mit Flutter erstellt wurde :


Smart Reflectly Diary App

Ich höre oft von Entwicklern, wie schwierig es ist, Unternehmensmanager - oder Kunden, wenn es sich um eine Agentur oder einen Freiberufler handelt - davon zu überzeugen, Flutter auszuprobieren. Entscheidungsträger sind nicht bereit, auf die neueste Technologie umzusteigen, nur weil sie auf dem neuesten Stand ist. In der Regel verstehen sie das Problem, aber der Technologie-Stack ist nur ein Teil ihrer Arbeit. Für sie ist es wichtig zu wissen, dass die Verwendung neuer Tools ihrem Unternehmen hilft, erfolgreicher auf dem Markt zu werden, beispielsweise neue Verbraucher anzuziehen oder Risiken zu verringern.

Dieser Artikel ist bestimmt für:

  • Entwickler, die die Vorteile der Verwendung von Flutter erläutern möchten Selbst wenn Sie mit diesem Rahmen vertraut sind, benötigen Sie überzeugende Argumente für ihn.
  • Entwickler, die daran denken, ihr eigenes Produkt auf Flutter zu erstellen.

In diesem Artikel werden auch die Gründe erläutert, warum Flutter möglicherweise nicht für eine bestimmte Anwendung geeignet ist. Dies hilft Ihnen, eine fundierte Entscheidung zu treffen.

Was ist Flattern?


Slogan Flutter (prägnant und sprechend):
Erstellen Sie ästhetische native Apps in Rekordzeit!

Dieser Slogan besteht aus vier Teilen, von denen jeder separat betrachtet werden muss:

  1. Anwendungserstellung
  2. Ästhetik
  3. Ursprünglichkeit
  4. Daten aufzeichnen

1. Erstellen Sie eine Anwendung


Jetzt konzentriert sich Flutter auf die Entwicklung mobiler Anwendungen für iOS und Android. Die langfristige Sichtweise hebt sich jedoch vor dem Hintergrund bestehender mobiler Frameworks ab: Flutter ist nicht nur ein Framework, sondern ein vollwertiges SDK zum Erstellen von Anwendungen, die den Bildschirm verwenden. Dies bedeutet, dass Flutter über alles verfügt, was Sie zum Erstellen einer Benutzeroberfläche benötigen, einschließlich eines Visualisierungstools und Elementen, die gerendert werden müssen (Widgets in der Flutter-Terminologie).

Flutter hat viel mit Spiel-Engines wie Unity oder Unreal gemeinsam , die auch ihre eigenen Visualisierungstools bereitstellen. Der Unterschied besteht darin, dass Flutter zum Erstellen von Anwendungen und nicht von Spielen verwendet wird.

Die Tatsache, dass Flutter ein vollständiges SDK ist, bedeutet, dass es auf fast jedes Gerät mit Display portiert werden kann. Der Flutter-Renderer verwendet Skia, eine beliebte Open-Source-Grafik-Engine, die plattformübergreifend verwendet wird.


Flattern auf Desktop und Raspberry Pi

Während wir uns bei Google auf mobile Anwendungen konzentrierten, portierten verschiedene Unternehmen Flutter auf Desktop-Computer (macOS, Windows, Linux und andere), Fernseher (hier sehen Sie, wie Flutter auf Nvidia Shield TV funktioniert) und auch auf Raspberry Pi. Flutter wird sogar zum Erstellen von Benutzeroberflächen für Fuchsia verwendet .

Allmählich werden Anwendungen außerhalb von Mobiltelefonen angezeigt. Der Zugriff auf Anwendungen auf mehreren Geräten gleichzeitig wird vertraut: einschließlich Heimassistenten (Google Home Hub, Lenovo Smart Display usw.), interaktiver Anzeigen in Autos, Haushaltsgeräten (wie Kühlschränken), Zubehör (Uhren, Kleidung) und anderem IoT -Geräte.

Bereits im Jahr 2017 wurden 8,4 Milliarden solcher Geräte online registriert, und laut Prognose der International Data Corporation wird ihre Zahl bis 2020 30 Milliarden überschreiten (im Vergleich zu 5 Milliarden Mobiltelefonen). Viele dieser Geräte verfügen jedoch über interaktive Anzeigen. Die Flatter-Architektur verfügt über alle Zutaten, um schöne und funktionale Benutzeroberflächen für neue Geräte zu erstellen.


Überall Bildschirme!

Und natürlich ist Flutter völlig kostenlos und Open Source.

2. Ästhetik


Können Sie den Erfolg Ihrer mobilen Anwendung garantieren, wenn diese mit 3,8 Millionen Anwendungen im Google Play Store und 2 Millionen im Apple App Store konkurriert? Selbst wenn Sie es schaffen, den Benutzer zum Herunterladen Ihrer Anwendung zu überreden, beträgt die Chance, dass er sie 30 Tage später aktiv nutzt, nur 3%! Beratungsunternehmen Gartner Inc. gab an, dass nur 0,01% aller veröffentlichten Anträge finanziell erfolgreich sind. In einer solchen Situation ist Hilfe nicht überflüssig.

Ein attraktives Design spielt laut Forschung eine große Rolle . Wenn Sie sich die beliebtesten mobilen Anwendungen der letzten Jahre ansehen, werden Sie feststellen, dass jede von ihnen ein einzigartiges ästhetisches Design hat. Darüber hinaus gewinnen schöne Anwendungen Auszeichnungen und werden berühmt, was besonders wertvoll ist.


Alibaba (links) und Topline (rechts)


2Dimensionen

Zu den Top-Beispielen für Flutter-Apps gehören Apps von Alibaba (dem größten E-Commerce- Unternehmen der Welt), die Topline- Audioaufzeichnungs- App von Abbey Road Studios und eine Demo der erstaunlichen 2Dimensions- App zum Erstellen von Echtzeitanimationen .

Immer mehr Unternehmen bemühen sich, sicherzustellen, dass ihre mobilen Anwendungen genau wie ihre Website oder Webanwendungen mit ihrem Unternehmensbranding übereinstimmen. Dies erfordert wiederum ein hohes Maß an Anpassung .

Letztendlich bieten Designer häufig kreative Ideen an, die zum Zeitpunkt ihrer Implementierung aufgrund der Einschränkungen der Tools stark erodiert sind. Dank Flutter können Sie jedes Design für Ihre Anwendung implementieren.

Weitere Beispiele finden Sie auf der offiziellen Flutter-Website sowie auf It's All Widgets . Unter ihnen finden Sie die Reflectly Diary App , die ich am Anfang des Artikels als Beispiel angeführt habe. Ich empfehle Ihnen, sich mit dieser ungewöhnlichen Anwendung vertraut zu machen, indem Sie sie aus dem Application Store auf Ihr Android- oder Apple- Smartphone herunterladen. Lesen Sie auch unbedingt einen Artikel über die Erfahrungen beim Wechsel zu Flutter .

3. Ursprünglichkeit


Dieser Artikel muss für mobile Entwickler rätselhaft sein. In der mobilen Entwicklung bezieht sich der Begriff „native Anwendung“ häufig auf eine Anwendung, die direkt in bestimmten Sprachen auf die Plattform-API zugreift. Und um alle in Frameworks wie React Native und Xamarin völlig zu verwirren, bedeutet der Begriff „native“, dass sie Plattform-Widgets verwenden können.

In anderen Entwicklungsbereichen gilt dieser Begriff nicht wie im Mobilbereich. Sie können Linux beispielsweise auf Computern unter Windows oder macOS (und vielen anderen) installieren, Windows oder macOS jedoch nicht als "nativ" und Linux als "plattformübergreifendes" oder "hybrides" Betriebssystem bezeichnen. Wir nehmen Linux so nativ wie Windows oder macOS, weil es so ist .

Eine genauere Definition von "native" in der Entwicklung sieht folgendermaßen aus:
Beabsichtigt oder in das angegebene System eingebaut, insbesondere in Bezug auf die Sprache, die diesem Prozessor, Computer oder Compiler zugeordnet ist, sowie auf darauf geschriebene Programme.
Flatteranwendungen werden sofort unter iOS und Android in ARM- Code (Native Machine) kompiliert.

Die Vorteile der Verwendung nativer Anwendungen sind mehr als ausreichend: Sie laufen schneller und arbeiten vor allem stabiler und leiden seltener unter Verzögerungen oder Bremsen (Einfrieren ist hässlich). Darüber hinaus geben native Anwendungen dem Entwickler mehr Kontrolle über das Verhalten seiner Anwendung.

Um alle Vorteile nativer Anwendungen nutzen zu können, haben Entwickler von Mobilgeräten normalerweise zwei separate Anwendungen mit separaten Tools und Sprachen geschrieben. Oft müssen zwei separate Entwicklungsteams, die sich aufeinander abstimmen müssen, an solchen Projekten arbeiten. Dieser Ansatz erhöht die Entwicklungskosten erheblich, erhöht die Risiken und verlängert die Produktfrist. Mit Flutter hingegen können Entwickler gemeinsam eine einzige Codebasis erstellen, Entwicklungsteams zusammenführen, Risiken reduzieren und die Markteinführung von Anwendungen beschleunigen - all dies kombiniert mit den Vorteilen der nativen Anwendung.


Welche dieser Anwendungen ist nativ? Beides!

Aber was ist mit Widgets? Aufgrund der Tatsache, dass Flutter mit eigenen Widgets arbeitet , scheint es, dass darauf geschriebene Anwendungen anders aussehen als auf Widgets und Plattformtools geschriebene Anwendungen.

Die obige GIF-Animation zeigt, wie das unter iOS geschriebene Einstellungsfenster im Vergleich zu der auf Flutter geschriebenen ähnlichen Oberfläche aussieht. Trotz geringfügiger Unterschiede auf Pixelebene vereinfacht Flutter die Erstellung von Bildschirmen, die wie native Bildschirme aussehen und sich anfühlen, erheblich.

Wir dürfen nicht vergessen, dass selbst eine native Anwendung je nach Version des Betriebssystems normalerweise unterschiedlich aussieht. Im Wesentlichen muss Flutter nicht „pixelgenau“ sein.

Flatter-Widgets passen sich der Zielplattform an und verleihen der App das richtige Aussehen, einschließlich Symbolen, Farbpalette, Layout, Schriftarten, Bildlaufverhalten und mehr. Die Hauptaufgabe von Flutter besteht darin, benutzerfreundliche Anwendungen zu erstellen, die auch den Prinzipien des Entwurfs einer bestimmten Plattform entsprechen.

Eine qualitativ hochwertige Wiedergabe von in Flutter geschriebenen Anwendungen wird durch die Tatsache sichergestellt, dass sie direkt auf der Leinwand der Plattform angezeigt werden. Dies ist möglich, weil Flutter über die Funktionalität eines vollständigen SDK verfügt. Daher hängt Ihre Anwendung nicht von Änderungen an Widgets, Schriftarten und anderen Plattformelementen ab.



Durch die Verwendung von Flutter entfällt die Verwendung von Unterstützungsbibliotheken . Diese Flutter-Anwendung, die auf einem Telefon mit dem Betriebssystem Android Jelly Bean (4.1.2) ausgeführt wird, verwendet beispielsweise Widgets aus einem Materialdesign, obwohl das Telefon selbst zwei Jahre vor seinem Erscheinen veröffentlicht wurde . Natürlich verfügt das Telefon nicht über integrierte Widgets für das Materialdesign. Wie dem auch sei, Ihre Flutter-Anwendung funktioniert genauso wie auf einem moderneren Gerät und sieht fantastisch aus.

Ohne Flutter müssten Sie diese Probleme selbst lösen. Dies bedeutet, dass gründlichere Tests auf älteren Versionen des Betriebssystems erforderlich sind und Problemumgehungen für Plattformen gefunden werden müssen, die keinen Zugriff auf die in der Anwendung verwendeten Elemente bieten. Wir hören ständig von Entwicklern, dass Flutter den Testprozess unglaublich vereinfacht.

Neben den Vorteilen nativer Anwendungen bietet Flutter weitere Vorteile:

  • In Flutter geschriebene Anwendungen können auch auf älteren Betriebssystemversionen jeder Plattform ausgeführt werden. Insbesondere wenn Sie Ihre Flutter-Anwendung auf einer neuen Android-Version testen, sieht sie auf älteren Versionen genauso aus. Dadurch funktionieren solche Anwendungen auf älteren Telefonen einwandfrei und sparen Zeit beim Testen.
  • Neue Versionen von Betriebssystemen können Ihre Anwendung nicht beschädigen (dies ist äußerst selten und in der Regel ein Fehler in Flutter und nicht in Ihrer Anwendung).
  • Ihre Anwendung unterliegt keinen Änderungen aufgrund von Betriebssystemänderungen durch den Hersteller oder Anbieter (das häufigste Beispiel ist das Ändern der Standardschriftart).
  • Am wichtigsten ist, dass Sie mit Flutter die volle Kontrolle darüber haben, wie Ihre Anwendung auf allen Plattformen und Betriebssystemen bis zum letzten Pixel aussieht.
  • Wenn Sie möchten, können Sie Ihre Flutter-Anwendung unter iOS und Android gezielt anders gestalten. Selbst wenn Sie dies nicht tun, passen sich die Flutter-Widgets selbst an die Gestaltungsprinzipien für jede Plattform an.


Mit Flutter können Sie all dies mit einer einzigen Codebasis für beide Plattformen tun. Wenn Sie möchten, können Sie für jede Plattform in einer Flutter-Anwendung nativen Code hinzufügen .

4. Daten aufzeichnen


Schließlich ist Flutter auch gut, weil Sie damit noch schneller bessere Anwendungen entwickeln können . Flatters beliebteste (und Hype-) Funktion ist der Stateful Hot Reboot . Es beeindruckt nicht nur durch die Geschwindigkeit (dauert weniger als eine Sekunde), sondern auch durch die Beibehaltung des Status. Wenn Sie also den Code tief in der Anwendung ändern, müssen Sie nach der Neukompilierung den letzten Status der Anwendung nicht manuell neu erstellen, um das Ergebnis anzuzeigen.


Stateful Neustart!

Ein solcher Neustart wurde dank der fortschrittlichen Kompilierungstechnologie (entwickelt von den Entwicklern der V8-Compiler für JavaScript und Strongtalk für Smalltalk) sowie der Tatsache ermöglicht, dass Flutter nativ ist und auf reaktiv aktualisierten Ansichten basiert.

Neben der Beschleunigung der Prozesse stellen viele Entwickler fest, dass Flutter ihren Arbeitsstil ernsthaft ändert: Sie können neue Layouts in zwei Konten erstellen und die erforderlichen Änderungen direkt in Anwesenheit von Kunden vornehmen.

Wir sehen auch einen positiven Effekt in der Arbeit von Designern, die genau das bekommen, was sie brauchen. So können sie mit verschiedenen Parametern spielen, bis sie die perfekte Option gefunden haben. In der Tat behaupten Designer, die CSS in Webanwendungen verwenden, dass es für sie einfach genug ist, herauszufinden, wie sie Layoutänderungen an Flutter selbst vornehmen können.

Weitere Informationen zur Funktionsweise von Flutter finden Sie in diesem Echtzeit- Anwendungsentwicklungsdatensatz . Sie können auch am Hackathon teilnehmen, um zu sehen, wie schnell Sie Flutter lernen und eine funktionierende Anwendung darauf erstellen können.

Wie im vorherigen Absatz erwähnt, erfordern Flutter-Anwendungen weniger Tests, sodass Sie neue Funktionen viel schneller hinzufügen können. Folgendes sagt JD.com über ihre Erfahrungen mit Flutter:
Wir haben es geschafft, die gleiche Funktionalität mit nur der Hälfte des Entwicklungsteams zu erstellen. Mit der gleichen Anzahl von Ingenieuren können wir in einer einzigen Version weitere Funktionen hinzufügen.

Alibaba stellt außerdem fest, dass die Verwendung von Flutter die durchschnittliche Zeit für das Hinzufügen neuer Funktionen von einem Monat auf zwei Wochen verkürzt hat.


Hamilton App

Apropos Aufzeichnungen. In der Hamilton-App haben die Entwickler am Vorabend der Veröffentlichung am Abend eine große Änderung vorgenommen, ohne Zweifel an ihrer Stabilität! Und diese Anwendung, die in etwa drei Monaten geschrieben wurde, wurde in beiden Anwendungsgeschäften vorgestellt. Darüber hinaus erleichtert Flutter das regelmäßige Hinzufügen neuer Funktionen, um das Interesse der Benutzer zu wecken.

So entsteht eine erfolgreiche mobile Anwendung.


Mit Flutter können Sie Widgets so schnell und einfach aktualisieren wie Anwendungen erstellen und ändern. Wir hören oft Befürchtungen, dass es schwierig sein wird, mit Flutter-Updates für Plattform-Widgets Schritt zu halten. Als Apple jedoch sein neues iPhone X mit seinem berühmten Ausschnitt auf dem Bildschirm vorstellte, gelang es Flutter, diesen Ausschnitt bereits vor Verkaufsbeginn zu unterstützen.

Dies gilt nicht nur für iOS. Als Google ein grundlegend überarbeitetes Materialdesign für I / O 2018 ankündigte, hatte Flutter bereits ein Update erhalten, um neue Ideen vollständig umzusetzen. Es war Flatters Fähigkeit, sich schnell anzupassen, die dies ermöglichte.

Wir erhalten regelmäßig Feedback von Entwicklern, die behaupten, dass sie dank Flutter 2-3 Mal effizienter arbeiten konnten und ihre Anwendungen insgesamt erfolgreicher wurden.

Risiken und Grenzen


Es gibt keine kompromisslosen Lösungen und Flutter ist keine Ausnahme. Hier sind einige Gründe, warum Flutter möglicherweise nicht das beste Werkzeug für eine bestimmte Anwendung ist.

Aufgrund der Tatsache, dass Flutter-Anwendungen Flutter-Widgets und ein eigenes Visualisierungstool enthalten, sind sie etwas größer als Anwendungen, die in die Plattform integrierte Tools verwenden. Bis vor kurzem betrug die Mindestgröße einer Flutter-Anwendung 6,7 MB, jetzt wurde die Größe auf 4 MB reduziert . Wir planen, in Zukunft weitere Optimierungen vorzunehmen.

Einer der wichtigsten Vorteile von Flutter ist die Möglichkeit, bei der Entwicklung von Anwendungen für beide mobilen Plattformen eine einzige Codebasis zu verwenden (Flutter eignet sich auch zum Erstellen von Anwendungen für eine Plattform). Es gibt jedoch Anwendungen, die an eine bestimmte Plattform gebunden sind oder als Wrapper für die von der Plattform bereitgestellte Präsentation fungieren. Ein Beispiel ist eine Anwendung, die im Hintergrundthread ausgeführt wird, um Benachrichtigungen anzuzeigen. Solche Anwendungen können auch in Flutter geschrieben werden, dies bietet jedoch keine besonderen Vorteile.

Wir werden oft gefragt, ob Flutter auf dem Markt bleiben wird. Es gibt viele Gründe, warum wir zuversichtlich erklären: Ja . Erstens ist Google selbst ein treuer Nutzer von Flutter, sowohl bei der Entwicklung von Verbraucheranwendungen als auch bei internen Programmen. Insbesondere die kürzlich veröffentlichte mobile Google Ads-Anwendung (früher AdWords genannt) wurde in Flutter geschrieben. Google unterstützt Flutter voll und ganz und tut alles, um es erfolgreich zu machen.

Zweitens hielten es Unternehmen aufgrund der Tatsache, dass große Anwendungen normalerweise für zwei unabhängige Plattformen entwickelt wurden, für weniger riskant, beispielsweise zuerst eine Anwendung für iOS freizugeben und später eine Android-Anwendung zu erstellen, wenn Bedarf besteht. Mit Flutter können Sie gleichzeitig Anwendungen für beide Plattformen freigeben . So reduzieren Sie nicht nur Risiken aufgrund der Identität ihrer Funktionalität, sondern erweitern auch den potenziellen Markt für Ihre Anwendung. Android profitiert stark davon.

Es gibt noch ein weiteres potenzielles Problem: Flutter ist ein relativ neues Framework. Natürlich wird Flutter einige Zeit brauchen, um die erforderlichen Tools zu erstellen, die Funktionalität zu erweitern und die Community zu entwickeln.Plattformen verfügen heute über Funktionen, die Flutter noch nicht implementiert hat. Gleichzeitig arbeitet Google ständig daran, Flutter um neue Funktionen zu erweitern.

Wenn Sie tiefer in Flutter eintauchen möchten, können Sie die Artikel Was ist revolutionär an Flutter und Warum Flutter Dart verwendet - verwenden . Sie können auch die Ergebnisse unserer letzten Flutter-Benutzerumfrage anzeigen.

Wo soll ich anfangen?


Wenn Sie sich für Flutter entscheiden, finden Sie hier einige nützliche Tipps:

  1. Diese Anleitung hilft Ihnen bei der Installation von Flutter, der Konfiguration des Editors und der Erstellung der ersten Testanwendung.
  2. Schauen Sie sich diese Flutter- Videos an .
  3. , Android , iOS , React Native Xamarin .
  4. , : Building Layouts in Flutter , Add Interactivity , A Tour of the Flutter Widget Framework ( ).
  5. Flutter , FAQ .
  6. It's All Widgets . , . Flutter-.
  7. Flutter, Flutter Weekly .
  8. Google Codelabs Flutter , , , Flutter Udacity.
  9. .

Treten Sie der Flutter-Community auf Twitter , Gitter und Stack Overflow bei . Ich empfehle, die Flutter Dev-Mailingliste zu abonnieren . Alternativ können Sie Ihr lokales Flutter Meetup oder Study Jam finden und herausfinden, ob es in der Nähe Hackathons für die mobile Entwicklung gibt, an denen Sie teilnehmen können.

Fazit


So ermöglicht Flutter eine schnelle Anwendungsentwicklung, die Ihre Produktivität erhöht und Ihnen hilft, Anwendungen mit besserer Qualität zu erstellen. Dies ist eine ausdrucksstarke, äußerst flexible und hochgradig anpassbare Reihe von Tools, mit denen der Entwickler die volle Kontrolle über sein Produkt hat. Flutter erstellt schnelle und stabile native Anwendungen für iOS und Android mit einer einzigen Codebasis.

Flattern spart Geld und reduziert das Risiko. Es ist kostenlos und Open Source. Damit hilft Ihnen Flutter, mehr Geld zu verdienen. Dies ist möglich, weil Sie zwei Märkte gleichzeitig betreten: Android- und iOS-Anwendungen und bessere Anwendungen in kürzerer Zeit erstellen.

Das vielleicht schmeichelhafteste Feedback der Entwickler ist, dass die mobile Entwicklung mit Flutter Spaß macht! Das ist großartig: 92% der Entwickler, die Flutter verwenden, geben an, dass es ihre Anforderungen voll erfüllt. Vergessen Sie nicht, dass diese Umfrage vor der Veröffentlichung von Version 1.0 durchgeführt wurde und die Anzahl der zufriedenen Benutzer ständig wächst!

Schließlich ist Flutter zukunftsorientiert. Dies ist das einzige native mobile Entwicklungstool, das reaktive Ansichten unterstützt. Dies ist ein Programmierparadigma, mit dem Sie mithilfe unglaublicher Funktionen wie einem superschnellen Stateful-Neustart bessere Anwendungen erstellen können. Und aufgrund der Tatsache, dass Flutter ein vollwertiges SDK ist, wird es zusammen mit der Entwicklung neuer Plattformen für lange Zeit seine Relevanz behalten.

Source: https://habr.com/ru/post/de433456/


All Articles