Quines són les diferències clau entre ReactNative i NativeScript?


Resposta 1:
Renúncia: Aquesta resposta no té un propòsit de demostrar que un és millor que l'altre, no vull criticar les obres sorprenents d'ambdós equips, sinó enumerar les diferències entre NativeScript i React Native.

Aquests dos marcs formen part dels frameworks mòbils multiplataforma de nova generació que NO utilitzen el navegador per empaquetar-lo en l'aplicació nativa. Són _actualy_ utilitzant els components de la interfície d'usuari nadius del sistema operatiu natiu. Això té un efecte molt positiu sobre la UX de l'aplicació. També permet una aplicació més ràpida de l’aplicació perquè el poliment final requerit per a l’aplicació és de magnituds inferiors a la del treball necessari amb qualsevol aplicació basada en un navegador PhoneGap.

Ara a la teva pregunta. Hi ha moltes diferències, tant tècniques com no tècniques.

Des del punt no tècnic

NativeScript és a càrrec de Telerik (una empresa Progress): una empresa de desenvolupadors molt coneguda i NativeScript framework forma part del seu negoci principal. ReactNative es construeix a partir de Facebook, que com tots sabem no és una empresa d’eines per a desenvolupadors. Per què això és important? Quan confieu en Telerik, teniu l’opció d’aconseguir assistència (desenvolupador o producció), que és un requisit per a la majoria de programes seriosos que hi ha. A més, si treballeu a les empreses, espereu una certa pila d'eines, serveis i solucions. Xifratge de codi i seguretat per exemple. Tot això ho feu amb Telerik / NativeScript, però això no és una prioritat per a Facebook / React.

Val la pena assenyalar també que NativeScript ja és la versió 2.0, mentre que ReactNative encara es troba en els seus primers dies de maduresa. Això també s’ha de calcular quan s’avalua el marc a l’hora d’escollir el marc adequat. Amb NativeScript tens tota la pila disponible tant per a iOS com per a Android. Per a RN, tal com és avui, encara hi ha moltes llacunes en la història multiplataforma. Aquestes llacunes s’estan omplint cada dia i segons l’equip de FB aquesta és una de les principals prioritats per a l’equip de RN el proper any. També hi ha moltes eines, serveis i components de productivitat de pagament ja disponibles per a NativeScript. Això juga un paper important a l’hora de decidir quin marc s’ha d’utilitzar quan es construeix qualsevol programari comercial.

L’última cosa no tècnica és la mida de la comunitat. Els dos marcs són de codi obert i gratuïts. ReactNative és una extensió de React.js per la qual cosa podeu suposar que tota la comunitat react.js hi apostarà. A l'altre costat, NativeScript té el suport de Google i està orientat a la comunitat AngularJS. Les dues comunitats són molt grans (milions de desenvolupadors) i aquests dos marcs estan en bones mans. Això també té un paper important en l’avaluació del risc.

Ara per la part tècnica

Tones de diferències. Els enfocaments que ReactNative i NativeScript estan adoptant són molt diferents, cosa que afecta l'experiència del desenvolupador i també la capacitat d'utilitzar i reutilitzar les biblioteques natives. Ambdues ofereixen un molt bon rendiment tant en iOS com en Android. 60fps la majoria del temps. Encara hi ha escenaris que cal polir en els dos frameworks, però encara avui es comporten com a aplicacions realment natives.

ReactNative Architecture

Parlar d’arquitectura: ReactNative, com he esmentat anteriorment, és una extensió a React.JS, de manera que segueixen els mateixos principis per actualitzar la interfície d'interès com a ReactJS. Per exemple. utilitzant un DOM virtual. En poques paraules: calculen els canvis que cal que passin a la interfície d'interès en un _background thread_ i apliquin aquests canvis en lots. El fet que ho facin en un fil de fons té els seus avantatges i contres. Des del punt positiu, és clar que el fil de la interfície d'usuari no es toca (el que condueix a una interfície d'usuari molt responsiva), però, a la part negativa, es limita la seva capacitat de comunicació _fast_ amb el sistema operatiu natiu subjacent. Això vol dir que si teniu un component que fa moltes trucades al sistema operatiu natiu, l’aplicació serà molt lenta, realment lenta. El bo és que no es necessita per a la majoria dels casos.

El dolent és que si heu d'utilitzar components originals personalitzats o API natives, heu de conèixer ObjC per a iOS i Java per a Android per accedir a aquests components i API. Pot ser un desglossament de tractes per a molts desenvolupadors de JS no necessiteu saber ObjC / Java per aconseguir-ho a NativeScript, llegiu a continuació.

 Hi ha un article molt bo al lloc web de ReactNative que explica això amb detall i hi expliquen que tenen previst canviar aquesta arquitectura de manera que s’estan fent més coses al fil de la interfície d’interès per aquest motiu. Aquí teniu una cita de l’article:

No crec que necessitem o volem canviar dràsticament el nostre model de roscat, per exemple. movent-ho tot al fil principal, però caldrà fer alguns canvis bàsics.

Us recomano llegir aquí l’article.

Arquitectura NativeScript

Els desenvolupadors de l'equip central de NativeScript adopten un enfocament més clàssic aquí. Utilitzen la interfície d'interès de la interfície d'usuari per executar la interfície d'usuari que és el mateix model que s'utilitza a la majoria dels marcs populars: Android, Windows, etc. Això permet una forma molt més senzilla de desenvolupar aplicacions; sempre que teniu accés a la UI. arbre de la vostra aplicació Val la pena assenyalar que si necessiteu executar alguna cosa en un fil de fons, això també és possible. Alguns dels components més bàsics, com ara http, image, sql lite database, realitzen moltes de les seves operacions en un fil de fons per reduir la càrrega del fil de la interfície d'interès. Aquest enfocament té un enorme avantatge de permetre-vos accedir a _any_ API nativa directament des de JavaScript.

Llegiu aquest article que explica l'arquitectura de fil de NativeScript en profunditat - http: //developer.telerik.com/fea ....

Bàsicament accedeix a totes les API natives sense tocar, que tenen molts avantatges, especialment quan haureu de donar suport a l'aplicació a llarg termini. No hi ha cap tipus d'embolcall per a les API natives i això fa que tota l'experiència sigui més simple i propensa a errors. Podeu literalment escriure coses com: com.android.button.init (). Això també té l’avantatge de reutilitzar tota la pila de biblioteques natives de tercers directament sense necessitat de cap modificació. Això permet un consum més fàcil i crear extensions. Actualment, hi ha més de 220 extensions disponibles de la comunitat. L’altre avantatge d’aquest plantejament és que les animacions de NativeScript creades mitjançant CSS i JavaScript funcionaran de manera molt més senzilla perquè s’executen al fil de la interfície d’interès.

Com he esmentat anteriorment, NativeScript té el suport de Google, de manera que si ets un desenvolupador angular, et sentiràs com a casa si fas servir NativeScript: tota l'API Angular 2 és compatible i pots reutilitzar el teu codi entre un NativeScript i una aplicació web.

L'arquitectura anterior permet a NativeScript oferir suport de 0 dies per a les versions de nous sistemes operatius. Actualment, NativeScript té suport per al llançament d'Android N, encara en fase Alpha.

Motors JS que s'utilitzen per executar el codi de l'aplicació

Val la pena esmentar que ambdós frameworks estan aprofitant els motors de JavaScript existents per executar el codi JavaScript en temps d'execució. ReactNative està fent servir JavaScriptCore a iOS i Android. NativeScript està utilitzant V8 a Android i JavaScriptCore a iOS. Recentment, Microsoft va afegir suport per a Windows Universal a ReactNative i utilitzen el seu propi motor Chakra JS. No estic segur de com es fusionarà això amb la resta del codi ReactNative, ja que (sospito) implicarà molts canvis en l’eina (diferent depurador, perfiler, per citar-ne alguns.

Ús de normes

El programari canvia molt, per la qual cosa és important confiar en estàndards per reduir el risc a l’hora d’escollir el marc adequat per al vostre escenari.

Ambdós frameworks utilitzen codi ECMAScript compatible amb els estàndards, que permet la reutilització del codi entre aplicacions web i mòbils, cosa que comporta un ROI molt bo quan els utilitzeu.

Els avantatges de NativeScript són que també utilitza una declaració CSS ​​compatible amb els estàndards. Això permet una història de reutilització d’habilitats / codis molt més gran entre l’aplicació mòbil i l’aplicació web. Fins i tot admet descriure animacions mitjançant fotogrames CSS. Tot això passa al codi natiu, de manera que les declaracions CSS es tradueixen a experiència nativa. Vegeu com utilitzar CSS per escriure animacions natives.

Declaració d'IU

En ambdós frameworks podeu tenir sintaxi declarativa per descriure la interfície d'usuari de l'aplicació. ReactNative com utilitzant la notació que es troba a React per incloure la declaració de la IU en un sol fitxer. NativeScript torna a utilitzar un enfocament més clàssic, ja que tant us permetrà crear la interfície d'interès amb codi o a través d'un fitxer separat per a la implementació de la interfície d'interès que us permetrà utilitzar els patrons clàssics MVC / MVVM. No diria quina és millor: és una qüestió de gust personal. Per a mi, la separació entre la interfície d'interès i el codi és millor amb MVVM, però això és el que escric perquè tinc biaixos.

Si coneixeu CSS a NativeScript, us serà molt més fàcil dissenyar les aplicacions mitjançant fulls d'estils externs o estils en línia. ReactNative està utilitzant la seva pròpia notació per dissenyar un estil basat en declaracions de JSON. De nou semblant a CSS, però diferent.

Suport lingüístic

Tant ReactNative com NativeScript utilitzen JavaScript modern. Tots dos donen suport a Babel per utilitzar la versió més recent de JS.

Com que NativeScript és més madur, també hi ha més opcions. NativeScript té una estricta integració (eines, IDE, etc.) amb TypeScript. Això proporciona una integració addicional amb Angular 2 i augmenta la productivitat i facilita el suport a llarg termini d’aquestes aplicacions.

Experiència per a desenvolupadors, Depuració

Ambdós frameworks ofereixen la possibilitat de desenvolupar aplicacions de forma ràpida, tots dos ofereixen una funcionalitat de recàrrega en calent: aquesta és la possibilitat de veure els canvis de codi immediatament al dispositiu sense la necessitat de tornar a carregar l'aplicació (en la majoria dels casos).

Quant a experiència de desenvolupador i IDE ja que tota la pila d'aplicacions és JavaScript, podeu utilitzar qualsevol IDE disponible. Facebook treballa en el seu propi IDE, que encara no es va publicar en aquest moment, NativeScript està promovent Visual Studio Code com a editor recomanat. Microsoft té una implementació tant per a NativeScript com per a ReactNative per al seu depurador de codi VS.

Prova

Com que és JavaScript que compleix tots els estàndards, podeu utilitzar qualsevol de les eines disponibles per escriure les proves d'unitats. Tots dos frameworks són compatibles amb els framworks de proves més populars com Karma, Jasmine, Mocha.

Per a proves funcionals, ja que la interfície d'usuari és totalment autòctona, podeu utilitzar qualsevol eina de prova que funcioni amb els marcs nadius com Appium.

Vegeu com escriure proves a NativeScript. A ReactNative.

Rendiment

Com he esmentat diverses vegades al costat del rendiment, quedareu satisfets amb els dos marcs. És una millora enorme respecte a les conegudes aplicacions de PhoneGap. Les aplicacions finals no són diferents de les aplicacions natives reals. L'ús dels components reals de la interfície d'usuari és un gran benefici per als dos frameworks.

Ambdós frameworks tenen un rendiment excepcional en iOS, tant pel que fa a temps de càrrega (menys d’un segon per als dos) com en termes de FPS (60fps en la majoria dels casos) en temps d’execució.

A Android, el rendiment encara és bo, però a causa de l'arquitectura del sistema operatiu natiu subjacent, el rendiment general no és tan bo com en iOS. El temps de càrrega i el comportament en temps d'execució no estan tan polits com en iOS. Però això també és vàlid per a les aplicacions natives pures, així que no sigueu massa exigents a NativeScript i a ReactNative. ReactNative té un temps de càrrega lleugerament millor (més ràpid) a Android en comparació amb NativeScript (1.4s vs 2.2). L'equip de NativeScript ho aborda amb la introducció d'instantànies de memòria acumulada, però aquesta característica continua essent experimental.

Aplicacions reals

Per a algunes aplicacions reals, podeu veure aquests enllaços per a l’aplicació de lavabo de cuina NativeScript:

A Android -> https: //play.google.com/store/ap ...

A iOS -> https: //itunes.apple.com/bg/app / ...

O bé podeu consultar les aplicacions de la galeria d’aparadors de NativeScript.

Per a ReactNative no sé cap aplicació de lavabo de cuina, però podeu consultar qualsevol de les aplicacions d’aparador. Assegureu-vos de comprovar les aplicacions realitzades per Facebook per obtenir la millor implementació.

En tancar

Per a mi personalment, la presa de decisions principal es basa en les vostres habilitats existents; si teniu habilitats angulars, utilitzeu només NativeScript, si sou un desenvolupador de React, trobareu ReactNative més familiar i fàcil d’utilitzar. Si implementeu programes comercials, considereu el suport i els serveis disponibles a NativeScript i al conjunt d'habilitats Angular. Si necessiteu més NativeScript d'interès personalitzat personalitzat, us convindrà millor perquè no cal conèixer ObjC o Java per poder-los utilitzar. Al final del dia, ambdós frameworks són moderns i compleixen la seva promesa i això comportarà aplicacions de primer nivell.

Codificació feliç, i espero que l'anterior ajuda :). Si us plau, no dubteu en demanar-me més detalls. Certament, hi ha moltes coses que no es tracten aquí, però puc anar més enllà i explicar-ho tot per sobre amb detalls més profunds. Podeu arribar-me a twitter - @ValioStoychev.

Divulgació: treballo com a PM per a NativeScript, però vaig intentar ser completament imparcial. Espero que apreciau el contingut anterior. En cas de pensar que hi ha fets incorrectes, si us plau, informeu-me i aplicaré edicions.


Resposta 2:

Diferència entre React NativeScript i NativeScript

Tant React NativeScript com NativeScript són marcs sorprenents. Tots dos frameworks formen part dels frameworks mòbils multiplataforma de nova generació que NO utilitzen el navegador per empaquetar-lo a l'aplicació nativa. Els treballs realitzats per ambdós equips són excel·lents, però a continuació es mostren algunes diferències entre NativeScript i React Native.

Llegiu també les preguntes bàsiques sobre l’entrevista amb reacció

NativeScript

Reacciona al natiu

Comunitat sensible i sensible.

Comunitat sensible i sensible.

No hi ha cap ús real de la producció

Ús de producció provat.

Mantingut per una petita empresa.

Mantingut per una empresa enorme.

Menys popular

Popular.

Antic que reacciona natiu

Més recent que NativeScript


Resposta 3:

Diferència entre React NativeScript i NativeScript

Tant React NativeScript com NativeScript són marcs sorprenents. Tots dos frameworks formen part dels frameworks mòbils multiplataforma de nova generació que NO utilitzen el navegador per empaquetar-lo a l'aplicació nativa. Els treballs realitzats per ambdós equips són excel·lents, però a continuació es mostren algunes diferències entre NativeScript i React Native.

Llegiu també les preguntes bàsiques sobre l’entrevista amb reacció

NativeScript

Reacciona al natiu

Comunitat sensible i sensible.

Comunitat sensible i sensible.

No hi ha cap ús real de la producció

Ús de producció provat.

Mantingut per una petita empresa.

Mantingut per una empresa enorme.

Menys popular

Popular.

Antic que reacciona natiu

Més recent que NativeScript


Resposta 4:

Diferència entre React NativeScript i NativeScript

Tant React NativeScript com NativeScript són marcs sorprenents. Tots dos frameworks formen part dels frameworks mòbils multiplataforma de nova generació que NO utilitzen el navegador per empaquetar-lo a l'aplicació nativa. Els treballs realitzats per ambdós equips són excel·lents, però a continuació es mostren algunes diferències entre NativeScript i React Native.

Llegiu també les preguntes bàsiques sobre l’entrevista amb reacció

NativeScript

Reacciona al natiu

Comunitat sensible i sensible.

Comunitat sensible i sensible.

No hi ha cap ús real de la producció

Ús de producció provat.

Mantingut per una petita empresa.

Mantingut per una empresa enorme.

Menys popular

Popular.

Antic que reacciona natiu

Més recent que NativeScript


Resposta 5:

Diferència entre React NativeScript i NativeScript

Tant React NativeScript com NativeScript són marcs sorprenents. Tots dos frameworks formen part dels frameworks mòbils multiplataforma de nova generació que NO utilitzen el navegador per empaquetar-lo a l'aplicació nativa. Els treballs realitzats per ambdós equips són excel·lents, però a continuació es mostren algunes diferències entre NativeScript i React Native.

Llegiu també les preguntes bàsiques sobre l’entrevista amb reacció

NativeScript

Reacciona al natiu

Comunitat sensible i sensible.

Comunitat sensible i sensible.

No hi ha cap ús real de la producció

Ús de producció provat.

Mantingut per una petita empresa.

Mantingut per una empresa enorme.

Menys popular

Popular.

Antic que reacciona natiu

Més recent que NativeScript


Resposta 6:

Diferència entre React NativeScript i NativeScript

Tant React NativeScript com NativeScript són marcs sorprenents. Tots dos frameworks formen part dels frameworks mòbils multiplataforma de nova generació que NO utilitzen el navegador per empaquetar-lo a l'aplicació nativa. Els treballs realitzats per ambdós equips són excel·lents, però a continuació es mostren algunes diferències entre NativeScript i React Native.

Llegiu també les preguntes bàsiques sobre l’entrevista amb reacció

NativeScript

Reacciona al natiu

Comunitat sensible i sensible.

Comunitat sensible i sensible.

No hi ha cap ús real de la producció

Ús de producció provat.

Mantingut per una petita empresa.

Mantingut per una empresa enorme.

Menys popular

Popular.

Antic que reacciona natiu

Més recent que NativeScript


Resposta 7:

Diferència entre React NativeScript i NativeScript

Tant React NativeScript com NativeScript són marcs sorprenents. Tots dos frameworks formen part dels frameworks mòbils multiplataforma de nova generació que NO utilitzen el navegador per empaquetar-lo a l'aplicació nativa. Els treballs realitzats per ambdós equips són excel·lents, però a continuació es mostren algunes diferències entre NativeScript i React Native.

Llegiu també les preguntes bàsiques sobre l’entrevista amb reacció

NativeScript

Reacciona al natiu

Comunitat sensible i sensible.

Comunitat sensible i sensible.

No hi ha cap ús real de la producció

Ús de producció provat.

Mantingut per una petita empresa.

Mantingut per una empresa enorme.

Menys popular

Popular.

Antic que reacciona natiu

Més recent que NativeScript


Resposta 8:

Diferència entre React NativeScript i NativeScript

Tant React NativeScript com NativeScript són marcs sorprenents. Tots dos frameworks formen part dels frameworks mòbils multiplataforma de nova generació que NO utilitzen el navegador per empaquetar-lo a l'aplicació nativa. Els treballs realitzats per ambdós equips són excel·lents, però a continuació es mostren algunes diferències entre NativeScript i React Native.

Llegiu també les preguntes bàsiques sobre l’entrevista amb reacció

NativeScript

Reacciona al natiu

Comunitat sensible i sensible.

Comunitat sensible i sensible.

No hi ha cap ús real de la producció

Ús de producció provat.

Mantingut per una petita empresa.

Mantingut per una empresa enorme.

Menys popular

Popular.

Antic que reacciona natiu

Més recent que NativeScript