What to use for mobile apps? - Flutter vs React Native

Was sollte man für die Entwicklung mobiler Apps wählen – Flutter oder React Native?

Mobile Apps werden immer beliebter. Und viele Unternehmen würden gerne ein Stück vom Kuchen abbekommen. Anstatt getrennte Apps für Android und iOS zu entwickeln - was zeitaufwändig ist - greifen sie häufiger zu plattformübergreifenden Frameworks - die es ermöglichen, Apps für beide Betriebssysteme aus einer einzigen Codebasis zu erstellen. Google und Facebook haben Open-Source-Tools veröffentlicht, die genau dabei helfen sollen - Flutter und React Native.

Was sind die Vorteile der Verwendung plattformübergreifender Frameworks?

Vor den plattformübergreifenden Frameworks mussten wir für jedes System unterschiedliche Apps entwickeln. Meistens waren Entwickler erforderlich, die sich mit beiden Systemen auskennen, oder getrennte Teams für jedes System. Die Entwicklung und Pflege mehrerer Codebasen war sehr teuer. Durch die Verwendung plattformübergreifender Frameworks ist es möglich, nur eine Codebasis für Android und iOS (und manchmal sogar für Web und Desktop - mehr dazu später in diesem Blogbeitrag) zu haben. Dies vereinfacht die Arbeit, senkt die Kosten der Entwicklung und trägt auch dazu bei, eine konsistente Benutzeroberfläche über verschiedene Plattformen hinweg zu erhalten. Aber welches Framework ist besser? Was sollte ich für mein Projekt auswählen? Ich werde versuchen, diese Fragen in diesem Artikel zu beantworten.

Flutter - native mobile Apps mit Materialdesign

Flutter ist ein Toolkit zur Erstellung nativer Apps für Mobil, Web und Desktop. Die erste stabile Version wurde 2018 veröffentlicht und hat seitdem rasch an Popularität gewonnen. Zum Zeitpunkt des Verfassens dieses Artikels ist Flutter nur für mobile Apps serienreif. Das Tool zum Erstellen von Anwendungen für das Web befindet sich in der Beta-Phase und das Desktop-Tool in der Alpha-Phase. Unsere Meinung dazu können Sie im Technologie-Radar nachlesen.

React Native - mobile Apps mit nativem Look und Feel

React Native ist ein Framework, das 2015 von Facebook veröffentlicht wurde. Es wird für die Entwicklung nativer mobiler Apps für Android und iOS verwendet. Bibliotheken von Drittanbietern können auch zur Erstellung von Web- und Desktop-Anwendungen verwendet werden. Auch hierzu können Sie in unserem Technologie-Radar mehr lesen.

Welches Framework ist besser für mein Projekt - Flutter oder React Native?

Beide Frameworks werden von großen Unternehmen und einer großen Anzahl von Entwicklern unterstützt, sie helfen bei der Erstellung plattformübergreifender Anwendungen, sind Open-Source-Softwares und sich sehr ähnlich. Die Entscheidung, die eine oder die andere Plattform zu nutzen, ist nicht einfach. Lassen Sie uns ins Detail gehen - wir haben einige wichtige Fragen zu beantworten!

Welche Sprache verwenden die Tools?

React Native verwendet die derzeit beliebteste Programmiersprache - JavaScript. Das ist ein großer Vorteil, da viele Entwickler JavaScript bereits kennen. Es funktioniert auch gut mit TypeScript.

Auf der anderen Seite verwendet Flutter eine von Google erstellte Sprache - Dart. Es ist nicht so verbreitet wie JavaScript, aber die Syntax ist ähnlich. Von einem neuen Entwickler würde es nicht nur das Erlernen des Frameworks, sondern auch der verwendeten Sprache erfordern.

Welches Framework ist beliebter?

React Native ist reifer als sein jüngerer Konkurrent, Flutter. Die Repositorys für beide Tools haben eine ähnliche Anzahl von Sternen auf GitHub (Flutter - 86,1k, React Native - 84,6k), aber React Native hat eine wesentlich größere Anzahl von Entwicklern, die zum Projekt beitragen (mehr als 2k). Die Beliebtheit spricht mit Sicherheit für React Native - es gibt viele Ressourcen, von denen man lernen kann, viele Menschen, die bereit sind zu helfen, und es besteht eine hohe Wahrscheinlichkeit, dass jemand bereits auf Probleme gestoßen ist, auf die auch Sie stoßen könnten.

Das 2018 erschienene Flutter wird jedoch immer beliebter. In der letzten jährlichen Entwicklerumfrage von Stack Overflow lag es auf dem dritten Platz der beliebtesten Frameworks (hier). Flutter ist im Moment ein Trend, und wenn er anhält, kann er React Native bald übertreffen.

React Native ist kampferprobt und wird in der Entwicklung von Tausenden von mobilen Apps eingesetzt - wie Facebook, Instagram, Skype, Uber und vielen, vielen anderen. Flutters Referenzen ist nicht ganz so beeindruckend - einige der beliebtesten Apps sind Google Ads, Stadia, Reflectly und Alibaba.

Was ist einfacher zu installieren?

Die Installation beider Frameworks ist unkompliziert. Der gesamte Prozess der Installation und Einrichtung der Entwicklungsumgebung ist in der Dokumentation für macOS, Windows und Linux sehr gut beschrieben. Wenn Sie neu in der mobilen Entwicklung sind, bietet React Native einen einfachen Einstieg mit der Expo-CLI, die mit einigen Einschränkungen verbunden ist - wie ein größerer App-Umfang und mangelnde Unterstützung für einige APIs (mehr dazu erfahren Sie hier).

Welches Framework hat die bessere Dokumentation?

Die Dokumentation von Flutter ist umfangreicher als die von React Native. Es enthält Tonnen von Anleitungen, Beispielen, Tutorials, Hinweisen und Lösungen für häufige Probleme. Alles ist schön in leicht zu navigierende Kategorien unterteilt. Die API-Referenz zeigt eine Menge Beispiele, Anleitungen und Videos für einige Widgets, was das Verständnis erleichtert.

Welches Framework bietet eine reibungslosere Entwicklungserfahrung?

Für beide Tools stellt die Entwicklung von Anwendungen auf virtuellen und physischen Geräten kein Problem dar, da sie in ihren Dokumentationen Anleitungen bieten. Beide werden mit Hilfsprogrammen geliefert, die Entwickler bei ihrer Arbeit unterstützen - wie Hot Reload und CLI. CLI kann ein Projekt generieren, ausführen und aufbauen. Hot Reload spart eine Menge Zeit, da die Änderungen, die Sie vornehmen, fast sofort auf einem Gerät angezeigt werden, ohne dass die gesamte App neu übersetzt werden muss. Beide Toolkits werden in den meisten der wichtigsten IDEs durch Plugins und zusätzliche Tools unterstützt.

Welches hat mehr Funktionen?

Flutter hat viel mehr Funktionen und Komponenten eingebaut, die sofort verfügbar sind. Das ist großartig, denn Sie können sicher sein, dass das Flutter-Team Sie in allem unterstützt und Sie keine Probleme mit ihnen haben werden. Auf der anderen Seite ist die Anzahl der Komponenten in React Native geringer und hängt stark von Bibliotheken Dritter ab. Während die Verwendung bekannter Pakete ziemlich sicher ist, kann die Verwendung anderer Pakete mit einigen Risiken verbunden sein (wie z.B. plötzlicher Abbruch durch den Entwickler, fehlender Support oder Sicherheits- und Kompatibilitätsprobleme). Mit React Native werden Sie feststellen, dass Sie viel zwischen den offiziellen Dokumentationen und den Dokumentationen Dritter hin und her springen werden.

Welches Framework ist schneller?

Der Dart-Code von Flutter wird in nativen Maschinencode übersetzt. React Native verwendet etwas, das JavaScript-Bridge genannt wird - der JavaScript-Code wird während der Laufzeit nativ übersetzt. Theoretisch sollte Flutter schneller sein. Das Problem ist, dass es nicht viele Leistungstests bei komplexeren Apps gibt und viel von dem verwendeten Gerät abhängt. Bei einigen Geräten ist Flutter näher an der nativen Leistung, bei anderen React Native.

Welche UI-Komponenten sind verfügbar?

React Native verwendet native Komponenten für das UI-Rendering. Das bedeutet, dass Apps eher wie native Anwendungen aussehen und sich auch so anfühlen werden. Flutter verfolgt einen anderen Ansatz - es verwendet für Android und iOS die gleiche Benutzeroberfläche. Dies gibt mehr Kontrolle über die Gestaltung und stellt sicher, dass die App auf jedem Gerät gleich aussieht. Flutter bietet optional auch „Cupertino Widgets“ an, die in das iOS-Design passen. React Native hat weniger Komponenten als Flutter, so dass mehr Module von Drittanbietern verwendet werden müssen.

Welche Community ist größer - Flutter oder React Native?

Die Community ist ein großer Vorteil von React Native. Es ist sehr aktiv und hat doppelt so viele Fragen auf Stack Overflow wie Flutter. Dank dessen ist es möglich, dass die Probleme, auf die Sie während der Entwicklung stoßen könnten, bereits von anderen Programmierern angetroffen wurden. Es bedeutet auch, dass Sie mehr Bibliotheken für React Native als für Flutter finden werden.

Flutter nutzt den Paketmanager Pub und React Native NPM (eine Registrierung von JavaScript-Paketen im Allgemeinen).

Wie testet man mobile Apps?

Testen in Flutter funktioniert hervorragend. Die Dokumentation bietet eine gute Dokumentation über das Testen mit Rezepten und Beispielen für Unit-, Widget- und Integrationstests. Bei React Native ist das anders - zum Testen müssen Sie externe Tools verwenden (Jest ist standardmäßig enthalten). Die Dokumentation für RN sagt nicht viel über das Testen aus, aber das Gute ist, dass Sie eines der vielen erhältlichen JavaScript-Testframeworks verwenden können. Es gibt auch Tools, die speziell für das Testen von React-Native-Apps entwickelt wurden.

Mit welchem Framework wird die native mobile App einfacher zu implementieren sein?

Die Größe einer App ist bei Flutter tendenziell etwas größer als bei React Native. React Native ist leichter, weil es nicht so viele Funktionen hat wie Flutter. Sie sind immer noch größer als reine native mobile Apps, aber die Entwickler beider Teams arbeiten ständig daran, sie zu verbessern.

Aber wie sieht es mit der Bereitstellung aus? Die Dokumentation von Flutter bietet großartige Schritt-für-Schritt-Anleitungen für die Veröffentlichung von Apps im Apple App Store und Google Play Store. Außerdem gibt es auch einen hilfreichen Leitfaden für die Konfiguration automatischer Bereitstellung. React Native kann hier nicht ganz mithalten - die Dokumentation zeigt nur, wie man im Google Play Store veröffentlicht, nicht aber im App Store.

Was sollte man im Jahr 2020 für die Entwicklung mobiler Apps wählen - Flutter oder React Native?

React Native ist mit Sicherheit ein ausgereiftes und geübtes Framework. Eine große Community und eine große Anzahl von Apps, die in Produktion sind, beweisen, dass es eine sichere Wahl ist, wenn es um die Entwicklung mobiler Apps geht. Die Abhängigkeit von Bibliotheken von Drittanbietern ermöglicht zwar viel Freiheit, kann aber auch die Entwicklungszeit verlängern und unerwartete Probleme verursachen. Die Dokumentation ist einer der schwächsten Punkte im Vergleich zu Flutter.

Flutter ist vollgepackt mit einer Menge Funktionen und Komponenten, die in React Native nicht verfügbar sind. Oftmals werden Sie nicht einmal zu externen Bibliotheken greifen müssen. Die Dokumentation ist umfassend und enthält viele Anleitungen und Beispiele. Das größte Problem von Flutter ist, dass das Tool noch so jung ist. Es gibt nicht so viele Unternehmen, die es nutzen wie React Native, und die Community ist nicht so groß, aber es hat seit seiner Veröffentlichung im Jahr 2018 recht schnell an Popularität gewonnen (und die aktuellen Trends zeigen, dass dies nicht so bald aufhören wird). Ich kann mir gut vorstellen, dass es in der Zukunft React Native nahe kommen oder sogar übertreffen könnte.

FacebookTwitterPinterest

Konrad Jaguszewski

Full Stack Developer