Vergleich: React Native vs Native App-Entwicklung

Veröffentlicht: 2021-10-05

Könnte das React Native RoR-Framework mit der nativen App-Entwicklung konkurrieren ?

Es ist tatsächlich eine dieser Hybrid-Apps, über die wir heutzutage so viele Meinungen hören. Es gibt viele plattformübergreifende Entwicklungstools, aber das, auf das wir in diesem Textstück achten, ist das React Native RoR-Framework. Ist React Native einheimisch? Lassen Sie uns die Sache dann untersuchen.

So multioptional unsere Welt mittlerweile auch geworden ist, wir treffen täglich rund 3500 Entscheidungen, und das ist noch nicht einmal der Höhepunkt. Dieser multi-optionale Faktor hat sich auch auf die Welt der nativen iOS- (und Android-) Entwicklung ausgewirkt – es gibt zahlreiche Möglichkeiten, eine Anwendung zu erstellen. Sie können Ihre App auf verschiedenen Plattformen haben, sie kann web oder mobil, nativ oder plattformübergreifend sein, alles kann je nach Ihren Bedürfnissen und Werten herausgefunden werden. Wir werden versuchen, die Vor- und Nachteile der einzelnen Fälle aufzuzeigen.

Die bekannten und beschrittenen Wege der Anwendungsentwicklung sind native und plattformübergreifend. Die native App-Entwicklung funktioniert hervorragend für Mobilgeräte und ist eine offizielle Art der Entwicklung für einen bestimmten Zweck (entweder iOS oder Android), innerhalb einer bestimmten IDE ( XCode oder Android Studio ) und in einer bestimmten Sprache ( Kotlin/Java für Android, Swift/ Objective-C für iOS ).

Die zweite Art von entwickelten Apps wird Hybrid genannt. Was ist der Unterschied zwischen plattformübergreifender (zB React Native) und nativer App-Entwicklung? Die plattformübergreifende Anwendungsentwicklung unterscheidet sich ein wenig von der nativen, da sie in den meisten Fällen ein Open-Source-Framework enthält, das die Konzepte der Mobil- und Webentwicklung vermischt, und oft ist sie in Java Script geschrieben, obwohl ein Endergebnis letztendlich vorliegen würde eine "like-native" Anwendungsdatei sein. Die Rivalität „Native Apps vs Hybrid Apps“ erreicht in diesen Tagen ihren Meridian.

Während bei "nativen" Plattformen und Sprachen alles klar ist, haben Hybrid-Apps eine breitere Klassifizierung. Die am häufigsten verwendeten plattformübergreifenden JS-Frameworks sind die folgenden:

  • Ionic 3 Rahmen
  • Xamarin
  • Cordova (ehemals PhoneGap)
  • React Natives RoR-Framework

Warum sollten Sie sich heute für hybride Apps entscheiden und auf welchem ​​Framework sie aufbauen? Was soll man wählen - React Native vs Ionic? Xamarin vs React Native? Eines der am häufigsten verwendeten Frameworks für die plattformübergreifende App-Entwicklung ist React Native , aber warum verwenden die Leute es? Ich habe versucht, der Sache nachzugehen.

Schneller reagieren.

Apps, die auf Reaction Native basieren
[Bildquelle: Facebook React Native]

Ich wette, Sie haben jedes einzelne dieser Symbole erkannt. Alle von ihnen (in der Vergangenheit oder sogar aktuell) wurden oder werden mit React Native erstellt. Apropos, das Facebook-Unternehmen ist im Grunde ein Eigentümer und ein aktiver Förderer der React Native-App-Entwicklung. Das Unternehmen selbst bestreitet jedoch, ein „Tool für hybride Apps“ zu sein. Wie sie bei ihrer offiziellen Landung angeben,

„Mit React Native bauen Sie keine „mobile Web-App“, eine „HTML5-App“ oder eine „Hybrid-App“. Sie erstellen eine echte mobile App, die nicht von einer mit Objective-C oder Java erstellten App zu unterscheiden ist. React Native verwendet dieselben grundlegenden UI-Bausteine ​​wie normale iOS- und Android-Apps. Sie setzen diese Bausteine ​​einfach mit JavaScript und React zusammen.“

[Quelle: Facebook Github]

Aber rockt React Native wirklich die native App-Entwicklung? Nun, nicht ganz. Zunächst einmal ist hier sogar der Prozess der App-Erstellung anders.

Wie baue ich eine reaktionsnative App? Wickeln Sie es.

React Native für Android (und iOS) selbst ist eine Umhüllung der nativen Kompilierung, bei der Sie mit dem JS-Tool Apps viel einfacher erstellen können. Es hat sogar eine vereinfachte Struktur - die Komponenten sehen aus wie einfache HTML-Tags. Der Code, den Sie in React Native schreiben, ist für jede mobile Plattform einzigartig, aber es gibt viele universelle Tools, die entweder auf iOS oder Android wiederverwendet und erneut angewendet werden können. Darüber hinaus können Sie einige Build-Ziele haben, was mich dazu bringt, die React Native-Entwicklung nicht nur als plattformübergreifendes Framework, sondern auch als geräteübergreifend zu bezeichnen. Sie können Ihre Anwendung für iOS übernehmen, genauso wie für AppleTV und Mac OS.

In React Native entwickelte Anwendungen benötigen keine native IDE (XCode oder Android Studio), obwohl Sie mit ihnen entwickeln könnten, da die maßgeschneiderte IDE von Expo - React Native weniger Debug-Funktionen zu bieten hat. Das RN-Framework verfeinert auch die Struktur der Komponenten nicht - es ist ziemlich einfach, und wenn Sie nach einem komplexeren suchen, müssen Sie native iOS- oder Android-Teile verwenden, die oben in das JS-Cover verpackt sind (was ziemlich genau ist). , ziemlich unordentlich) . Einige Komponenten sind in a . gekleidet , mit dem Sie verschiedene Requisiten einfügen können.

Einige Vorteile, die React Native zu einem leckeren Angebot für plattformübergreifende Anwendungsentwickler auf der ganzen Welt machen :

1. Es erfordert weniger Ressourcen von Ihnen.

Wie jede plattformübergreifende Lösung ist sie billiger und etwas budgetfreundlicher; Sie müssen nicht zwei separate App-Entwicklungsteams einstellen - Sie können eines entwickeln lassen, aber das Ergebnis würde beide Plattformen abdecken, wenn Sie dazu bereit sind. Der Ressourcen- und Kostenaufwand für die Erstellung dieser Apps ist natürlich deutlich geringer als die native App-Entwicklung.

2. Reagieren Die Kraft der Ureinwohner liegt in ihren Komponenten.

Wie bereits erwähnt, ist die Liste der für React Native akzeptablen Komponenten riesig. Diese Komponenten könnten ihrerseits sicherlich in anderen Projekten wiederverwendet werden, wenn sie einige Gemeinsamkeiten aufweisen.

3. Es hat eine riesige Community.

Reagieren Sie indigene Gemeinschaft

Wie viele Leute hat die offizielle React Native-Community von Facebook? Zum Zeitpunkt der Veröffentlichung dieses Artikels lag die Zahl bei über 23 000. Das Beste daran, Teil einer großen Gemeinschaft zu sein, ist das Gefühl einer gewissen Inklusion + die Fähigkeit, neue Komponenten daraus zu extrahieren. Die Komponenten, die Sie für Ihre benutzerdefinierten Zwecke erstellen, können problemlos innerhalb der Gruppe verteilt werden - und so finden Sie bei Bedarf eine fertige Lösung, ohne sie von Grund auf neu schreiben zu müssen.

4. Es wird gefördert von...

Facebook-Unternehmen

Der Facebook-Konzern als Ganzes kann bereits als „Branded Brand“ bezeichnet werden, sodass das gesamte Facebook-hinter-it dem React Native-Framework einen riesigen Vorteil verschafft (wenn wir sogar den Vergleich zwischen Ionic und React Native nehmen). Die Nutzer vertrauen darauf, dass dieses soziale Netzwerk dauerhaft genug ist, um für die Produkte zu stehen, die es bewirbt und auf die es sich angeblich verlassen kann.

Einheitsgröße passt nicht allen.

Auf der anderen Ecke des Rings, wo native Anwendungsentwickler sind, gibt es auch Werte und Vorteile, die Sie kaufen, wenn Sie für "Going Native" bezahlen.

1. Nativ = reaktionsschneller.

Die Reaktionsfähigkeit einer Benutzeroberfläche ist etwas, wonach sich UX-Designer sehnen und Dutzende von Anstrengungen unternehmen. Wenn es sich um eine native Anwendung handelt, wird jeder einzelne Designbildschirm separat entworfen und an die Richtlinien der Geschäfte angepasst, um dem Stil zu entsprechen - entweder flach oder Material .

2. Muttersprachen = offiziell von Apple- und Google-Stores entwickelt.

Native App Store und Google Play akzeptieren die Anwendungen, die auf den von den Plattformen entwickelten und unterstützten Sprachen basieren. Wenn Sie die Richtlinien befolgen, ist Ihre Leiter zum Laden fertig. Bei einer plattformübergreifenden Bewerbung haben Sie immer noch eine Chance, sie zu akzeptieren, aber die Chancen stehen gut, dass Sie für nur ein bisschen "Webbish" -Schnittstelle oder Navigation abgelehnt werden.

3. „Geschwindigkeit brauchen“.

Eines der Hauptprinzipien des Usability Engineerings steht für schnelle Interaktionen – „1,0 Sekunde ist ungefähr die Grenze für den Gedankenfluss des Benutzers, um ununterbrochen zu bleiben“. Während native Apps schnell genug reagieren und arbeiten, um die Benutzer im Rhythmus des Systems zu halten, bleiben Hybridprodukte oft etwas langsamer.

4. Native = anspruchsvoller.

native Apps=ausgereifte Apps

Plattformübergreifende Lösungen rocken, wenn Sie etwas bereits Existierendes mit Funktionen aus der "Durchschnittsklasse" erstellen möchten. Wenn es um komplexe Dinge geht (all diese trendigen IoT-, AR/VR-, Big Data Mining-Algorithmen sind in dieser Liste enthalten), fehlen Hybrid-Apps die technischen Fähigkeiten, um das zu verwirklichen, was Sie wollen. Auf der anderen Seite haben native IDEs und Sprachen endlose technische Perspektiven - es könnte viel darüber geschrieben werden.

Wählen Sie mit Bedacht.

Wenn Sie nach einer einfachen Anwendung zum Erstellen suchen (Listen und nichts Komplexeres), dann ist React Native eine tolle Sache. Wenn weitere App-Performance benötigt wird, werden kompliziertere Entwicklungsprozeduren auftreten - Sie müssen bereits zu Swift oder zu Kotlin wechseln und dann alles in das glitzernde Java-Script-Cover packen; und das hört sich nicht so einfach an. Für Dinge wie Video- oder Audiostreaming, Routing, Echtzeit-Chats, Fotobearbeitung usw. ist es also besser, von Anfang an mit der nativen Entwicklung zu beginnen und diese Nachteile zu vermeiden.

Darüber hinaus ist React Native ein vollständiges JavaScript-Framework, und der gesamte Code könnte sogar im Texteditor wie TextMate oder Notepad++ geschrieben werden. Wenn es jedoch darum geht, ein Projekt aufzubauen, benötigen Sie dringend eine bestimmte IDE oder zumindest einen Emulator.

Es gibt ein paar Beispiele für anständige RN-basierte Apps:

  • Facebook-Apps natürlich
  • Mobile Airbnb-Apps (Hybrid iOS und Android)
  • Walmart Mobile App (da sie eine Reihe von eingebetteten Webansichten mit einer niedriger als erwarteten Implementierung hatte)

Sie können sich die gesamte Liste der RN-basierten Produkte auf ihrer offiziellen Website ansehen, und hier gewinnt RN erneut den Wettbewerb React Native vs. Xamarin.

Der Perspektive halber.

Laut Flurry-Statistiken "verbringt der US-Verbraucher heute durchschnittlich 2 Stunden und 38 Minuten pro Tag auf Smartphones und Tablets. 80 % dieser Zeit (2 Stunden und 7 Minuten) verbringt er in Apps". Ihr Produkt muss irgendwie in diese Zeit von 2 Stunden pro Tag passen. Alles in allem wäre das React Native RoR-Framework eine praktische Lösung für ein kleines, kurzfristiges Projekt; Testberichte beweisen, dass es schnell, furios und neu ist, oder wenn Sie „das Konzept testen“ wollen. Dennoch kann man sich auf Dauer oder bei der Planung einer technischen Innovation zum Kickstart nicht auf eine vorgefertigte Option verlassen. Sie muss von Grund auf neu aufgebaut und angepasst werden – also muss es sich um eine native Anwendungsentwicklung handeln.

Geschrieben von Artem Chervichnik und Elina Bessarabova .