Februar 11 2022

Reagieren Sie nativ gegen Flattern

Gerd
✍️ bloggen
13 Min. Lesezeit

Bestellt vor  App-Entwicklung  Es gibt mehrere Möglichkeiten. Sie können zum Beispiel das Framework React Native verwenden, aber auch Flutter. In diesem Blog vergleichen wir React Native vs. Flattern Sie und erklären Sie, warum wir uns bei Social Brothers für React Native entschieden haben.

React Native wurde von Facebook entwickelt und ist seit 2015 Open Source verfügbar. Es ist jetzt ein erwachsenes und stabiles Werkzeug. Die Beta-Version von Flutter wurde im Februar 2018 von Google veröffentlicht. Seitdem ist die Community gewachsen, aber immer noch begrenzt. Das als Einführung, aber was ist wirklich wichtig beim Vergleich von React Native vs. flattern?

React Native und Flutter unterscheiden sich in der Programmiersprache, der Art und Weise, wie native Komponenten zugänglich sind, der Dokumentation, den Testmöglichkeiten und der Art und Weise, wie der Export nach IOS & Android erfolgt. Schauen wir uns diese Elemente genauer an.

Zweifeln Sie immer noch zwischen hybrider oder plattformübergreifender App-Entwicklung? Lesen Sie unseren Blog über native. vs. hybrid vs. plattformübergreifende App-Entwicklung.

Programmiersprache

React Native verwendet JavaScript, eine weit verbreitete Programmiersprache. Darüber hinaus verwendet React Native, wie der Name schon sagt, das React-Framework. Da dies das mit Abstand am häufigsten verwendete Webentwicklungs-Framework ist, wird der Schritt zu React Native für viele Entwickler klein sein. Darüber hinaus gibt es viele Tutorials zu finden und es ist einfach, Code wiederzuverwenden.

Flutter hingegen arbeitet mit der 2011 von Google eingeführten Sprache Dart. Diese relativ neue Programmiersprache wird kaum genutzt. Objektorientierte Konzepte machen die Sprache für Entwickler, die mit Java, PHP oder C# vertraut sind, leicht erlernbar. Da die Komplexität der Apps jedoch zunimmt, ist es notwendig, mehr über Dart zu erfahren. Darüber hinaus wird Dart von relativ wenigen IDEs und Texteditoren unterstützt.

Gemeinschaft

React Native hat eine große Community. Viele Entwickler haben damit gearbeitet und viele große Player auf dem Markt verwenden React Native, wie Instagram, Facebook und Skype. Über GitHub und Meetings tauscht die Community viele Informationen untereinander aus. Diese große Community hat den Vorteil, dass Sie als App-Besitzer leicht einen Entwickler finden können und dass Sie als Entwickler leicht Informationen finden können. Das Framework ist daher vollständig kampferprobt und für fast jeden Fehler lässt sich eine Lösung im Internet finden.

Flutters Community wächst seit einigen Jahren, ist aber noch nicht sehr groß, um gemeinsame Probleme zu lösen. Dadurch ist es schwieriger, Entwickler mit viel Erfahrung mit diesem Framework zu finden und es ist auch schwieriger, Unterstützung in der Community zu finden. Es gibt jedoch (Online-)Treffen und andere Veranstaltungen. Ein weiterer Nachteil einer kleinen Community ist, dass relativ wenige Erweiterungen und Plugins verfügbar sind. Schließlich arbeiten Entwickler von Erweiterungen und Plug-Ins eher mit gängigen Frameworks.

Wie bekommt man native Komponenten?

Der Kern von React Native umfasst UI-Rendering und APIs. Diese APIs ermöglichen es React Native, native Module zu erreichen. Viele dieser Module stammen von Drittanbietern. Dies eröffnet viele Möglichkeiten, kann aber auch zu Instabilitäten führen. Glücklicherweise ist React Native schon seit geraumer Zeit verfügbar, was die meisten APIs stabil macht. Darüber hinaus bedeutet die Arbeit mit den nativen Komponenten, dass die mit React Native erstellten Apps den Standards der verschiedenen Betriebssysteme (iOS/Android) entsprechen.

Flutter ist Widget-basiert. Anstatt native Komponenten zu verwenden, arbeitet Flutter mit einer Canvas-basierten Rendering-Engine. Jedes Widget ist mit einer Leinwand ausgestattet, auf der sich das Widget selbst zeichnen kann. Diese wird zu einer Szene zusammengesetzt, die dann als Pixelmatrix dargestellt wird. Tatsächlich ist die Engine ein vollständiges Software Development Kit (SDK) mit Komponenten für UI-Rendering, APIs, Navigation, Testfunktionen und vielen Bibliotheken. Es gibt auch Widgets für Material Design. Flutter hat zum Beispiel bereits alles, was man braucht, um mit der hybriden App-Entwicklung zu beginnen.

Dokumentation

Bei Fragen zu React Native kann man sich oft an die Community wenden, zum Beispiel über GitHub. Flutter hat das weniger, dafür bietet Google aber eine umfangreiche Dokumentation in Form eines Getting-Started-Guides an. Es gibt auch eine gute Dokumentation des Produktivstarts und der CI/CD-Unterstützung.

Ebenfalls nützlich ist das CLI-Tool Flutter Doctor, das Sie durch die Einrichtung und das CI/CD-System führt Code-Magie† Seit 2019 hat React Native jedoch auch eine Arztkommando die unter anderem bei der Fehlersuche und der automatischen Behebung von Fehlern helfen können. Darüber hinaus steht für dieses Framework eine umfangreiche Dokumentation zur Verfügung.

testen

React Native verwendet Tools und APIs von Drittanbietern zum Testen, um dies zu ermöglichen, während Flutter über integrierte Testtools verfügt. JavaScript hat nur wenige Test-Frameworks für Einheiten, daher benötigen Sie mit React Native Tools von Drittanbietern wie Appium oder Detox.

Flutter hingegen verfügt über integrierte Funktionen zum Testen von Einheiten sowie Widgets und Integrationen. Auch zu den Testmöglichkeiten steht eine Dokumentation zur Verfügung.

Und wie funktioniert es?

Nachdem Sie Ihre App entwickelt haben, sollte diese natürlich auf IOS und Android gepusht werden. React Native verwendet dafür die JavaScript Bridge API. Dadurch wird der JavaScript-Code dem nativen Code „zugeordnet“. Die Bridge wird mit einer bestimmten Funktion aufgerufen und bewirkt, dass sie ohne Kompilierschritt an die entsprechenden Funktionen auf Android und iOS weitergeleitet wird. Dies beinhaltet eine kurze Verzögerung. Als Hybrid-App benötigt Flutter keine Bridge. Die App wird daher etwas schneller funktionieren.

Reagieren Sie nativ vs. flattern?

Der React Native-Schnellstart bringt Sie im Allgemeinen schnell zum Laufen und es gibt eine große Community, auf die Sie zurückgreifen können. Dies ist sowohl nützlich, wenn Sie nach einem neuen Entwickler suchen, als auch wenn Sie als Entwickler Fragen haben. Das Framework ist stabil, beispielsweise in Bezug auf APIs. Es ist ausgereift und zuverlässig und wird von vielen großen Playern verwendet.

Flutter hat Vorteile in der Dokumentation und der Canvas-Rendering-Engine und den Testfunktionen, aber das wiegt die Nachteile der Verwendung von Dart und der kleinen Community nicht auf. Im Moment gibt es noch zu viele Hindernisse, um Flutter zu einer guten Alternative zu React Native zu machen.

Wollen Sie mehr wissen?

Social Brothers verfügt über viel Expertise im Bereich App-Entwicklung† Möchten Sie mehr über die App-Entwicklung erfahren oder möchten Sie eine App für Ihre Organisation erstellen lassen? Dann nehme Kontakt an. Wir helfen Ihnen gerne weiter.

Gerd Gründer[E-Mail geschützt] 06-20413957
Ich praktiziereWhatsApp

Inspiriert? Die folgenden Themen wurden behandelt

App-Entwicklung
Zeigen Sie alle Inspirationen