2015-10-10 6 views
30

Ich habe viel über reactive web und reagieren native, und nur ein wenig über nativescript. Beide benutzen Javascript, um native mobile Apps zu schreiben, aber ich frage mich, was die spezifischen Vorteile von ReactNative gegenüber NativeScript sind?ReactNative VS NativeScript: Was sind Vorteile?

+0

Was meinst du mit nativescript –

+0

Beide von ihnen verwenden Javascript, um native App – Chevalier

+0

Sie sind eine Art anders. React Native hilft Ihnen, Ihr React-Wissen wiederzuverwenden, während NativeScript versucht, eine native Bridge zu sein, ohne auf eine bestimmte Technologie oder ein bestimmtes Paradigma zu setzen. –

Antwort

9

Beide dienen dem Zweck, ein plattformübergreifendes JavaScript-Framework für die mobile Entwicklung zu sein. Die Stärke von React Native gegenüber anderen vergleichbaren Frameworks ist, dass sie die Abstraktionen und die Macht von React nutzt. Facebook beschreibt die Vorteile hier gut: https://facebook.github.io/react/docs/why-react.html

Wenn NativeScript Ihre Bedürfnisse erfüllt und Sie das Paradigma mögen, gehen Sie damit. Es ist eine persönliche Entscheidung. Ich mag React Native, und in Kombination mit einer Implementierung von Flux habe ich festgestellt, dass es die Statusbehandlung meiner Anwendung, die Wiederverwendbarkeit von Komponenten und mein gesamtes Entwicklungsglück wirklich verbessert hat.

+0

Führt die Verwendung von Flux + React Native Performance-Probleme auf? –

+1

React Native versucht, eine sehr gute Übereinstimmung mit der nativen Entwicklungsleistung zu erzielen. Die Probleme, die ich beobachtet habe, waren wirklich nur mit '' einige Frames beim Rendern neuer Szenen fallengelassen. Alles in allem war es sehr nah an der nativen Leistung. Schauen Sie sich ihre Dokumente an, um mehr darüber zu erfahren, warum Sie Frame Drops sehen und so: https://facebook.github.io/react-native/docs/performance.html –

+4

"Power of react". Absolut eigensinnige und daher voreingenommene Antwort. –

43

Mit der Erstellung einer Cross-Plattform-Mobile-Anwendung für den internen Gebrauch beauftragt hatte ich die Möglichkeit, beide im Laufe eines Monats zu bewerten.

Fazit: NativeScript ist zu diesem Zeitpunkt reifer (kann sich in der Zukunft ändern). Wir haben NativeScript für unser Projekt ausgewählt.

Warum? Hier sind einige Beispiele aus unserer Bewertung App:

  • Sofern Sie bereits ein Geschäft Reagieren sind (was wir nicht sind) die NativeScript Syntax und Implementierung ist viel einfacher für einen Entwickler zu verstehen, die mit HTML-Web-Entwicklung wurde dabei/CSS/JavaScript. Die Verwendung von XML ist HTML sehr ähnlich, um Layout-Arbeit zu erledigen.
  • Die Möglichkeit, vorhandene Standards und Werkzeuge zu nutzen. Zum Beispiel unterstützen die in Sublime, Visual Studio usw. verfügbaren Syntax-Hervorhebungen bereits XML/JavaScript. Zum Zeitpunkt meiner Auswertung (Dezember 2015) konnte ich keine Add-ins finden, um Syntax-Highlighting mit ReactNative-Code korrekt durchzuführen. Stattdessen musste ich mit der roten Unterstreichung des Texteditors um alle "Syntaxfehler" auf gültigen ReactNative Code kämpfen.
  • ReactNative macht einen "touchableHight" -Bereich verfügbar und Sie müssen einen Knopf hineinziehen. Während es einfach ist, ein "Knopf" -Modul für die Wiederverwendung zu erstellen, ist dies nicht so elegant wie das direkte Aufrufen der zugrunde liegenden Android/iOS-Taste (wie es NativeScript tut). Für mich ist die Verwendung von ReactNative oder NativeScript der entscheidende Punkt, um die nativen Objekte aufzurufen.
  • Beim Hinzufügen eines Passwortfelds änderte die ReactNative-Seite keine Zeichen in Bullets auf der Android-Seite, obwohl ich "secureTextEntry" auf "true" gesetzt habe. Dies funktionierte zum ersten Mal auf der NativeScript-Seite für Android/iOS.

Ich bin immer noch besorgt darüber, wie dies auf lange Sicht ausgehen wird. Da Facebook größer ist, gehe ich davon aus, dass der ReactNative-Entwicklung mehr Ressourcen gewidmet werden als Telerik mit NativeScript. Da wir jetzt etwas tun müssen, haben wir NativeScript für unser Projekt ausgewählt. Ich habe jetzt den zweiten Monat mit NativeScript verbracht und fühle mich noch stärker, dass dies die richtige Wahl für unser Projekt war.

+2

Ich denke, diese Antwort benötigt jetzt ein Update. Die meisten hier gemachten Aussagen sind nicht mehr gültig. –

+2

@HunaidHassan Hier ist ein Update auf den Vergleich, steht gut wie von Jan-2018 https://Stackoverflow.com/a/47997535/1057093 – Anand

3

Ich habe bisher nur native Entwicklung getan, und ich kann viele seiner Tugenden singen. Die Entwicklererfahrung ist fantastisch, ebenso wie die Community. Ich denke Flexbox Layout-Modell ist eine unter-geschätzte Eigenschaft der Reaktion native. Es entwickelt und reift sehr schnell. Dennoch interessiert mich NativeScript hauptsächlich für einen großen Unterschied ... es gibt Ihnen direct access to native platform APIs, was ziemlich erstaunlich und mächtig ist, wenn Sie darüber nachdenken.

5

NativeScript hat drei Vorteile gegenüber reagieren nativer:

  1. Nativescript kann viel mehr Code teilen, als nativer reagieren. Bedeutet es speichern Sie Ihre Zeiten.
  2. Nativescript ist real Cross-Plattform, die 100% native API ermöglichen Zugriff und Libs zugreifen.
  3. Da es Angular 2 verwendet, bedeutet es, dass alle Vorteile Angular 2 haben.
4

Hier sind einige Kopf-Vergleich mit dem Hinterkopf (Stände gut ab 2017 Dec-und früh sein 2018. in Zukunft ändern),

1) Unterstützte Plattformen

React Native - iOS und Android (von Facebook - React Team). Windows 10 und UWP Unterstützung von Miscrosoft

NativeScript - iOS und Android - Von Nativescript-Team. Windows-Unterstützung Vorschau here März 2016. freigegeben und ab November 2017, wenn man bedenkt this is not the teams priority Dinge wie Gemeinschaft Nachfrage und Microsoft announced Windows Phone is dead.

Verdict: Wenn Sie die Tatsache, dass Microsoft nicht machen Windows Phone mehr (Link oben), nur andere Zwei wichtige Betriebssysteme für das Ziel wären iOS und Android, die sowohl von React Native als auch von NativeScript unterstützt werden. Gehen Sie mit anderen Überlegungen weiter. Wenn Windows-Unterstützung ein Muss und nicht in Ordnung ist, um ein zusätzliches Framework wie Electron aufzunehmen, ist React Native dein Buddy.

2) Rahmen

React Native - Ja. Verwendet reagieren JS! NativeScript - Mehrere Optionen. Sie können zwischen Plan JS, TypScript und Angular 2+ wählen.

Verdict - Sofern Sie nicht bereits ein React-Shop sind (mehr entwickelte und in-house wiederverwendbare Komponenten), bietet NativeScript mehr Auswahl und Flexibilität. Das XML von NativeScript UI wird HTML-Entwicklern vertrauter und seine CSS-Version ist fast identisch.

3) App Größe

React Native - Größe einer einfachen "Hallo Welt" app wird etwas weniger als 10 MB.

NativeScript - Hallo Welt App selbst kann über 40MB gehen.

Während die Basis-App die meisten Framework-bezogenen Dateien in beiden beinhaltet und die Größe sogar für eine "Hello World App" aufbläht, erhöht sich die Größe nicht drastisch, wenn mehr Seiten zur App hinzugefügt werden. Sie können erwarten, einige MB erhöhen, wenn wir einige weitere Bibliotheken hinzufügen.

Verdict - Wenn Ihre App auf Nutzer ausgerichtet ist, deren Internetgeschwindigkeit begrenzt/teuer sein wird, ist React Native Ihr Freund. Wenn nicht, berücksichtigen Sie andere Kriterien, um zu entscheiden.

4) Code-Sharing

React Native - Während es drei wichtigen mobilen Plattformen unterstützt, können Sie einige plattformspezifische Code schreiben müssen (über diejenigen, die Sie wählen, um benutzerdefinierte zu implementieren). Obwohl dies für die meisten kein Deal Breaker sein kann.

NativeScript - So benutzerdefinierte Code zwischen iOS und Android ist nicht so viel wie Native React. NativeScript gewinnt auch, wenn es um Code-Sharing mit Web-App und sogar Desktop-App geht. Sie werden schließlich separate UI-Ebene für jedes (Handy, Web und Desktop) schreiben. Die meisten anderen Codeebenen können jedoch nahtlos mit Seed-Projekten wie this. geteilt werden.

Verdict: Wenn Sie erwarten, mehr Code zwischen den Plattformen (Native Mobile, Web und Desktop) zu teilen, gewinnt nativescript in diesem Bereich.

5) Lizenz

React Native - Es war schon immer Bedenken, bei den Nutzern/Organisationen auf Lizenzierung. Facebook kürzlich Re-lizenziert Reagieren in MIT, aber links React Native in BSD + Patents (Danke @Anton Bessonov für die Korrektur). Es gibt Bedenken wie this im Internet. Suchen Sie nach Problemen mit der nativen Lizenzierung von Reagieren. Dies ist ein bernsteinfarbenes Licht, wenn Sie Native React berücksichtigen. Ich sage nicht ROT. Dies kann abhängig von der Art der Organisation und der Rechtsabteilung sein. Ich habe zwei große Unternehmen gesehen, die React Native nicht nur dafür gewählt haben. Natürlich gibt es auch große Unternehmen, die sich dafür entscheiden.

Update:: React Native wird ab dem 16. Februar 2018 an MIT neu lizenziert, wie Sie in seiner Github page sehen können. Es reflektiert immer noch nicht in wenigen anderen Orten wie NPM repo. Schätze, dass sie gerade aktualisiert werden. Dies ist eine gute Nachricht für Organisationen, die sich Sorgen um Lizenzprobleme machen.

NativeScript - Apache 2.0 - Ein grünes Licht für die meisten.

Über allen Urteil: Es ist nicht wahrscheinlich, was Sie erwartet, hier zu sehen. Es hängt von Ihrer Wahl ab, basierend auf den oben genannten Kriterien. Beide sind vielversprechend genug, um darüber nachzudenken.

+2

"Facebook vor kurzem machte es MIT". React wurde erneut lizenziert.Nicht reagierend-nativ. Hier ist ein Beispiel dafür, was falsch ist, gilt immer noch für reaktions-native: https://medium.com/@raulk/if-youre-a-startup-you-should-not-use-react-reflecting-on- the-bsd-patente-license-b049d4a67dd2 –

+1

@AntonBessonov Danke für die Korrektur. Ich habe es übersehen. Habe mir nicht vorgestellt, dass FB Re-License reagieren würde, aber nicht React Native. Auch in der obigen Beschreibung korrigiert. – Anand

+1

@Anand React Native wurde auch neu lizensiert [MIT] (https://github.com/facebook/react-native/commit/26684cf3adf4094eb6c405d345a75bf8c7c0bf88). – creimers