Native oder React Native Entwicklung im Jahr 2022?

blog_react_native_vs_native_fazit

Die React Native und die native App-Entwicklung sind derzeit zweifellos die wichtigsten Technologien in der App-Entwicklungsbranche. Der anstehende Nachwuchs in Form des Googles Flutters wird in einem folgenden Artikel von uns behandelt.

Bis Mitte der 2010er-Jahre war es üblich, Apps ausschließlich nativ auf ihren jeweiligen Systemen zu entwickeln. Dies bedeutete eine komplette Entwicklung unter Android (Java/Kotlin) und eine weitere unter iOS (Objc/Swift). In zwei verschiedenen Sprachen. Zu vergleichen mit einem Buch in Englisch und Chinesisch. Inhaltlich zwar identisch, syntaktisch aber vollkommen unterschiedlich. Als jedoch neue Ansätze in der Cross-Plattform-Entwicklung aufkamen, dauerte es nicht lange, bis dieser Trend wieder aufgegriffen wurde und der Aufschwung von Facebook, Instagram, Pinterest, Skype usw. zum Aufstieg von React Native beitrug; entwickelt von keinem Kleineren als Facebook selbst. React Native ermöglicht es Entwicklern, mobile Apps in einer Codebasis zu schreiben und dies sogar in einer weitverbreiteten Sprache: Javascript bzw. Typescript. Mit dieser neuen Anforderung sollte zeitgleich auch dem hohen Personalmangel von spezialisierten App-Entwicklern entgegengesetzt werden können.

 

Angesichts all dieser Faktoren und der Tatsache, dass native Entwicklung schon als „traditionell“ angesehen wurde, konnte davon ausgegangen werden, dass React Native die alleinige Wahl der zukünftigen Entwicklung sei. Beide Methoden haben jedoch ihre eigenen Schwächen und Stärken, die für jedes Projekt individuell gegeneinander abgewogen werden müssen, damit langfristig die Anforderungen erfüllt werden können und das Projekt wirtschaftlich und gut pflegbar bleibt.

 

Aber ist die Wahl zwischen React Native und nativen Apps so einfach wie das Werfen einer Münze? Dieser Artikel soll einen Ansatz geben, um diese Frage selbst zu beantworten.

 

Was ist native App-Entwicklung?

Wenn Ihr Unternehmen eine Anwendung nur für den App Store oder speziell für den Play Store entwickeln möchte, ist die native App-Entwicklung konkurrenzlos und bietet keine Nachteile. Native Anwendungen werden mit Entwicklungsumgebungen, Frameworks und Sprachen entwickelt, die direkt von den Herstellern (Apple & Google) bereitgestellt und entwickelt werden.

 

Wenn sie hingegen die beiden Haupt-Plattformen iOS und Android parallel bedienen wollen, wird die Entscheidung schon schwieriger. Denn für eine parallele Entwicklung wären zwei vollständige Entwicklungsteams erforderlich, um zwei verschiedene Versionen Ihrer Anwendung zu erstellen. Dazu kommen verdoppelte Test-, Wartungs,- und Pflege-Aufwände. Um die Analogie “Buch” wieder aufzugreifen: Sie benötigen zwei Autoren, die der jeweiligen Sprache des Buches mächtig sind und jeweils ausreichend Lektoren, um die erarbeiteten Texte auch zu prüfen.

 

Aus Sicht des Entwicklers bedeutet dies konkret die Verwendung von Java bzw. Kotlin zum Erstellen einer Android-App oder Swift bzw. Objective-C zum Erstellen einer iOS-App. Wie lässt sich das also in eine gute Option für die App-Entwicklung übersetzen?

 

Native Apps haben eine bemerkenswert hohe Leistung, die ein außergewöhnliches Benutzererlebnis bietet. Je besser die User-Experience, desto höher die Kundenbindung. Da alle Tools dazu beitragen, die Anwendung an die Plattform anzupassen, von der Grafik, über die Animation bis zur Geste, ist das Gesamterlebnis reibungslos. Die neuesten Funktionen können direkt zum Start neuer Systeme verwendet werden und die Qualität von Bibliotheken und Komponenten ist durchwegs hoch, da diese ebenfalls von qualifizierten Entwicklern bereitgestellt werden.

 

Was ist die React Native App-Entwicklung?

Auf den ersten Blick ist React Native die berühmte eierlegende Wollmilchsau. Die Entwicklung einer App in einer einzigen Codebasis und die Nutzung auf einer hohen Vielzahl von Geräten, bis hin zur Verwendung als Webseite.

 

Wenn der Prozess der React Native vs. nativer Entwicklung betrachtet wird, ist es für eine App, die auf verschiedenen Plattformen läuft, entscheidend, ein optimales Benutzererlebnis zu bieten. Mit React Native wird die Leistung einer nativen App zwar nicht ansatzweise erreicht. Dafür ist die Entwicklung der Benutzeroberfläche zentral möglich und kann trotzdem für beide Plattformen angepasst werden, sodass pro Plattform eine native Benutzeroberfläche zur Laufzeit generiert werden kann. Des Weiteren ist es möglich, die App-Inhalte über ein OTA-Update (Over-the-air) zu aktualisieren und spart, insbesondere bei Fehlerbehebungen und kleineren Erweiterungen, den komplizierten und zeitintensiven Weg über ein natives App-Update über die jeweiligen Stores, mit ihren notwendigen Prüfprozessen der Hersteller (Reviews). Neben der Wirtschaftlichkeit, ein großer Vorteil in der langfristigen Pflege und Wartung der Software. 

 

Die Nachteile sind teilweise sehr subtil und machen sich erst in langfristigen Projekten deutlich bemerkbar. 

 

Leistung: Wie bereits erwähnt, ist React Native nicht die beste Wahl für Anwendungen mit hohen Leistungsanforderungen – hauptsächlich solche mit grafikintensiver oder datenintensiver Workload. Obwohl Gegenmaßnahmen dafür (z. B. native Module oder JSI) vorhanden sind, wird dies immer das Hauptanliegen bleiben. Denn native Module sind letztlich wieder für beide Plattformen zu entwickeln und benötigen dazu noch eine Bridge (Brücke) in den geteilten Code. Letztlich mehr Aufwand, als die Softwareteile direkt in einer nativen App zu entwickeln. 

 

Fachkräfte: Obwohl React Native oft als Alternative zur Einstellung nativer Entwickler angepriesen wird, ist dies ein Trugschluss. Kenntnisse der Javascript-Bridge im Kontext der zugrunde liegenden Plattformen sind erforderlich, um gravierende Probleme zu vermeiden und native Module zu entwickeln. React Native abstrahiert auch nicht den Submission-, Überprüfungs- und Bereitstellungsprozess für die zugehörigen Google- und Apple-Stores, sodass weiterhin Mitarbeiter mit Erfahrung aus dem Apple und Google Kosmos erforderlich sind. 

 

Abhängigkeit Dritter: Entwickler müssen auf die Community von React Native warten, um Probleme zu beheben und Unterstützung für neue Funktionen bereitzustellen. Facebook hat das Projekt inzwischen an die Open Source-Gemeinde abgegeben und beteiligt sich nicht mehr als Hauptentwickler. Beispielsweise gab es Ende 2020 eine lange Zeit unter bestimmten Umständen ein anhaltendes Problem mit der Audioaufzeichnung – dies könnte sich für Anwendungen, die auf eine solche Funktionalität angewiesen waren, als problematisch erweisen.


Qualität von Bibliotheken: Aufbauend auf den vorigen Punkt zieht sich diese Problematik auch in die Verwendung sonstiger Bibliotheken. Bibliotheken sind Pakete von Funktionalitäten, die direkt verwendet werden können. Für ein wirtschaftlich orientiertes Projekt ist es unabdingbar, auf die Verwendung von Bibliotheken zu setzen. Dies kann die einfache Ansicht sein, die ein Foto aus dem Fotoalbum auswählen lässt, abgesicherte Netzwerkanfragen an das Serversystem senden lässt, oder eine Sammlung vektorisierter Icons. Auch wenn sehr viele von diesen Bibliotheken in der React Native Welt existieren, ist die Pflege und Qualität dieser meist durchschnittlich, häufig sogar unterdurchschnittlich. Kein Vergleich zu Bibliotheken aus der nativen Welt. Häufig bringen die technischen Rahmenbedingungen der React Native-Bibliotheken die Konzeption dazu, funktionale Anforderungen der App zu minimieren, um den technischen Grenzen zu entsprechen. Die einzige Alternative wäre dann eine Eigenentwicklung bzw. die Verwendung nativer Bibliotheken über native Module der App. An dem Punkt sind wir aber wieder bei einem Entwicklungsaufwand zweier nativer Funktionen.

Fazit: Nativ oder React Native?

keyvisual_blog_reactnative_vs_native
Caspar Camille Rubin On Unsplash

Eine mobile App ist nicht nur ein Haufen Codezeilen, sie ist ein Geschäft. Daher ist die Entscheidung, einen Weg dem anderen vorzuziehen, keine rein technische Entscheidung. Das Gesamtbild und die damit verbundenen Auswirkungen müssen bei der Entscheidung berücksichtigt werden, ob React Native oder die native Entwicklung als Grundlage für die Zukunft verwendet werden soll.

 

Auf dem Papier scheint es mehrheitlich sinnvoll, direkt nativ zu entwickeln, anstatt ein abstrahiertes Framework, das wieder nur auf der nativen Schicht aufsitzt, zu verwenden. Native Entwicklung bietet überlegene Leistung und gibt Entwicklern vollständigen Zugriff auf die Fähigkeiten der Geräte. Es kann durchaus sein, dass einige Ihrer Anforderungen dieses Maß an Kontrolle erfordern. Diese Vorteile haben jedoch ihren Preis – im wahrsten Sinne des Wortes. Die Doppelarbeit und der damit verbundene logistische Aufwand können ein Unternehmen stark belasten. In Anbetracht dessen kann es sein, dass ein alternativer Ansatz für Ihre Situation besser geeignet ist.

 

Mit der Entwicklung von React Native erhalten Sie in den meisten Fällen das Beste aus beiden Welten: weniger Aufwand und damit verbundene Kosten und Markteinführungszeit, während Sie dennoch eine robuste und leistungsstarke App erstellen, die sich auch im direkten Vergleich zur nativen Variante noch zeigen kann. Das React Native Framework ist oft die klare Wahl für Rapid Prototyping und die Produktion von MVP’s – ein Prozess, der als Bewertung dienen kann, ob die Technologie die langfristigen Anforderungen Ihres Projekts erfüllt oder nicht. Diese Vorteile machen React Native zu einer starken Option für viele Organisationen. Wenn Sie jedoch reine Pferdestärken benötigen oder einen Anwendungsfall haben, der dies erfordert, kann die native Entwicklung auch heute noch der richtige Weg bleiben.

 

Letztlich gibt es keine Wunderwaffe. Bei solch einer grundsätzlichen Entscheidung ist sorgfältige Abwägung erforderlich. Überprüfen Sie die Vorteile und Einschränkungen der Optionen vor Ihnen. Gerne helfen wir Ihnen dabei, Ihre Geschäftsidee korrekt einzuschätzen. Zögern Sie nicht, uns zu kontaktieren!

 

WordPress Cookie Hinweis von Real Cookie Banner