Flutter React Native

React Native vs. Flutter – auf welches Pferd 2020 setzen?

Google schickt sein neues Steckenpferd Flutter gegen Facebooks React Native ins Rennen. Wird Flutter React Native abhängen können? Es wird aufregend!

Die stetig steigende Popularität und Selbstverständlichkeit mobiler Apps nimmt Unternehmen in die Pflicht. Keine namenhafte Firma kann es sich leisten nicht mindestens eine mobile App anzubieten, um auf dem Markt wettbewerbsfähig zu bleiben. Dadurch wird es für diese Unternehmen immer wichtiger ihre Möglichkeiten zu kennen, um ihre mobilen Apps, insbesondere für iOS und Android, mit höherer Geschwindigkeit und weniger Ressourcen zu entwickeln. Für diesen Zweck haben Apple und Google native Tools und Technologien zur Erstellung von Apps bereitgestellt. iOS-App-Entwickler können Apps mithilfe von Xcode und Swift erstellen, während Android-Entwickler Android Studio und Kotlin / Java benutzen.

Das setzt jedoch voraus, dass sich Ingenieure zwei völlig unterschiedliche Arten von Technologien aneigen müssen. Aus diesem Grund haben Unternehmen sich dem gewidmet, plattformübergreifende Lösungen, anstatt der nativen Lösungen, einzuführen. So können Apps für iOS und Android schneller in einer einzigen Sprache erstellt werden. Das klingt natürlich erstmal erleichternd. So einfach ist es jedoch nicht, denn wer die Wahl hat, hat auch die Qual:

React Native vs. Flutter– Who is who?

React Native vs. Flutter

React Native ist ein 2015 von Facebook intern gestartetes Open-Source- Projekt. Dem gegenüber steht Flutter: ein von Google gestartetes Projekt, das seit 2017 stark vermarktet wird. Beide Technologien verhelfen App-Entwicklern zu einem vereinfachten Aufbau von Cross -Plattform Apps in einer einzigen Programmiersprache. React Native bewährt sich bereits und hat eine riesige Community. Flutter hat seit 2017 hingegen auch große Anstiegsraten vorweisen können. In diesem Beitrag werden wir Beide anhand von fünf Kriterien vergleichen:

  • Programmiersprache
  • Installation
  • Architektur
  • UI-Komponenten & Entwickler API
  • Anwenderfreundlichkeit
  • Community

Die Gegenüberstellung

React NativeFlutter
ProgrammierspracheReact Native verwendet JavaScript, um plattformübergreifende Apps zu erstellen. JavaScript ist eine gefragte und verbreitete Sprache in der Web-Community. Sie wird oft mit React und anderen gängigen JavaScript-Frameworks verwendet. Mit React Native können Webentwickler mit ein bisschen Schulung mobile Apps erstellen. Deswegen setzen viele Unternehmen auf React Native.
Flutter verwendet die Programmiersprache Dart, die 2011 von Google rausgebracht wurde, von Entwicklern jedoch nur selten Verwendung findet. Die Dart-Syntax ist für JavaScript- oder Java-Entwickler durch ihre Objektorientierung einfach zu verstehen.
InstallationReact Native kann mit dem Node Package Manager (NPM) installiert werden. Für Entwickler mit JavaScript-Erfahrung ist die Installation von React Native einfach, andernfalls muss dies erst erlernt werden. Doch auch das unkompliziert. NPM kann die Pakete lokal oder global installieren. Die Entwickler müssen verstehen, wo genau sich die Binärdatei befindet.Flutter wird installiert, indem die Binärdatei für eine bestimmte Plattform von Github heruntergeladen wird. Im Falle von macOS ist es bspw. die Datei flutter.zip . Diese muss als PATH-Variable hinzugefügt werden.
ArchitekturReact Native verwendet die Flux-Architektur von Facebook. Die Architektur von React Native basiert stark auf der Architektur der JS-Laufzeitumgebung. React Native benutzt die JavaScript-Brücke, um mit den nativen Modulen zu kommunizieren. Der JavaScript-Code wird also zur Laufzeit in nativen Code kompiliert.Das Dart-Framework von Flutter intigriert die meisten Komponenten bereits. Dadurch ist es größer und benötigt in den meisten Fällen keine Brücke für die Kommunikation mit den nativen Modulen. Dart verfügt über viele Frameworks wie Material Design und Cupertino, die über alle erforderlichen Technologien für die Entwicklung mobiler Apps verfügen. Das Dart-Framework verwendet die Skia C ++ – Engine, die alle Protokolle, Kompositionen und Kanäle enthält. Kurz gesagt, Flutter hat alles, was für die App-Entwicklung benötigt wird, in der Flutter-Engine selbst.
UI-Komponenten
& API
Der Kern des React Native-Frameworks bietet nur APIs für das Rendern der Benutzeroberfläche und den Gerätezugriff. Der Zugriff auf die meisten nativen Module ist von Bibliotheken von Drittanbietern abhängig.Flutter beinhaltet UI-Rendering-Komponenten, Geräte-API-Zugriff, Navigation, Tests, Stateful Management und viele Bibliotheken. Aufgrund dieser breit gefächerten Ausstattung an Komponenten, ist Flutter von Bibliotheken von Drittanbietern unabhängig. Das Flutter-Framework enthält alles was man für die Entwicklung mobiler Apps braucht.
AnwenderfreundlichkeitIst der Entwickler mit JavaScript vertraut, ist React Native mühelos für die plattformübergreifende App-Entwicklung zu verwenden. React Native verfügt über eine Hot-Reload-Funktion, die beim Testen vom Änderungen der Benutzeroberfläche viel Entwicklerzeit spart. In Bezug auf die IDE-Unterstützung können Entwickler jeden Texteditor oder jede IDE ihrer Wahl benutzen.Flutter kann ebenso eine Hot-Reload-Funktion vorweisen. Eine Demo-Appmit Flutter zu erstellen ist auch eher unkompliziert. Mit zunehmender Komplexität von Apps müssen Entwickler sich allerdings die Flutter-Konzepte aneignen. Da Dart keine gängige Programmiersprache ist, wird sie von vielen IDEs und Texteditoren nicht unterstützt.
Community React Native ist seit 2015 auf dem Markt und kann seitdem steigende Popularität vorweisen. Es gibt eine Community von React Native-Entwicklern auf GitHub und haufenweise Meetups und Konferenzen auf der ganzen Welt. In fast jeder größeren Stadt der Welt finden regelmäßig Treffen statt.Flutter erfreut sich wachsender Beliebheit seit es 2017 von Google auf der Google I / O-Konferenz beworben wurde. Die Flutter-Community wächst stetig. Es gibt zahlreiche Meetups und Konferenzen online. Es gibt jedoch noch nicht genügend Austausch für Entwickler, um alle auftretende Probleme lösen zu können.

Unser Fazit

Da JavaScript eine gängige Programmiersprache in der Welt der Web-Entwicklung ist, ist es einfach, das React Native-Framework zu übernehmen. Dart kann zwar einen großartigen Funktionsumfang vorweisen, dieser wird unter Entwicklern jedoch eher selten verwendet und ist den meisten eher unbekannt. Dass die Flutter-Engine die meisten nativen Komponenten bereits in ihrem Framework selbst beinhaltet und keine Brücke benötigt, um mit den nativen Komponenten zu kommunizieren ist natürlich ein ebenso klarer Vorteil für Flutter. Die Komplexität in der Installation trübt das Bild dann leider doch wieder. Damit liegt React Native im Gesamtbild vorn. Unser Tipp: Beschäftigt euch 2020 mit React Native, wenn ihr das bis jetzt versäumt habt.

Kommentar verfassen