react native - framework - ReactNative VS NativeScript: ¿Qué ventajas tiene?
nativescript vs react native español (8)
He estado haciendo mucho para reaccionar a la web y reaccionar como nativo, y solo un poco sobre nativescript. Ambos usan javascript para escribir aplicaciones móviles nativas, pero me pregunto cuáles son las ventajas específicas de ReactNative sobre NativeScript.
Aquí hay una comparación directa (Se mantiene vigente a partir de diciembre de 2017 y puede ser a principios de 2018. Puede cambiar en el futuro),
1) Plataformas compatibles
React Native
: iOS y Android (por Facebook, equipo de React). Soporte de Windows 10 y UWP por Miscrosoft here
NativeScript
- iOS y Android - Por el equipo Nativescript. La vista previa de soporte técnico de Windows se lanzó here en marzo de 2016. Y a partir de noviembre de 2017, esta no es la prioridad de los equipos considerando cosas como la demanda de la comunidad y Microsoft anunció que Windows Phone está muerto.
Verdict
: si se tiene en cuenta el hecho de que Microsoft ya no está fabricando Windows Phone (enlace arriba), solo otros dos sistemas operativos principales a apuntar serían iOS y Android, que son compatibles con React nativo y NativeScript. Continúa con otras consideraciones. Si el soporte de Windows es imprescindible y no está bien para tomar un marco adicional como Electron , React Native es tu amigo.
2) Marco
React Native
- Sí. Utiliza React JS! NativeScript - Múltiples opciones. Puede elegir cualquier cosa, desde el plan JS, TypeScript hasta Angular 2+.
Verdict
: a menos que ya sea una tienda React (componentes reutilizados y más desarrollados), NativeScript ofrece más opciones y flexibilidad. El XML de UI de NativeScript será más familiar para los desarrolladores de HTML y su versión de CSS es casi la misma.
3) Tamaño de la aplicación
React Native
: el tamaño de una aplicación simple de "Hello World" será de menos de 10 MB.
NativeScript
: la aplicación Hello World en sí puede superar los NativeScript
.
Si bien la aplicación base incluye la mayoría de los archivos relacionados con el marco en ambos y así inflar el tamaño incluso para una "aplicación hello world", el tamaño no aumenta drásticamente cuando se agregan más páginas a la aplicación. Puede esperar que aumenten un par de MB cuando agreguemos algunas bibliotecas más.
Verdict
: si su aplicación se dirige a usuarios cuya velocidad de Internet será limitada / costosa, React Native es su amigo. Si no, considere otros criterios para decidir.
4) Código compartido
React Native
: si bien admite 3 plataformas móviles principales, es posible que tenga que escribir algún código específico de la plataforma (más allá de los que elija implementar de forma personalizada). Aunque esto puede no ser un factor decisivo para la mayoría.
NativeScript
: la necesidad de un código personalizado entre iOS y Android no es tanto como React Native. NativeScript también gana cuando se trata de compartir códigos con aplicaciones web e incluso aplicaciones de escritorio. Usted terminará escribiendo una capa de interfaz de usuario separada para cada uno (móvil, web y escritorio). Pero la mayoría de las otras capas de código se pueden compartir a la perfección utilizando proyectos de Seed como this. .
Verdict:
si espera compartir más código entre plataformas (Native Mobile, web y Desktop), nativescript gana en esta área.
5) Licencia
React Native
: siempre ha habido preocupaciones entre los usuarios / organizaciones sobre las licencias. Recientemente, Facebook volvió a autorizar React en MIT , pero dejó React Native en BSD + Patents (Gracias @ Anton Bessonov por la corrección). Hay preocupaciones como this en la web. Solo busca problemas de licencias nativas en Google. Esta es una luz ámbar si está considerando reaccionar nativo. No digo RED. Puede ser, dependiendo del tipo de organización y equipo legal. He visto dos grandes empresas que no eligen React nativo solo por esto. Fuera del curso, hay grandes empresas que lo usan y muchos podrían elegir.
Actualización:: Desde el 16 y el 20 de febrero de 2017, React Native vuelve a obtener la licencia del MIT, como pudiste ver en su página de Github . Todavía no se refleja en algunos otros lugares como el repositorio de NPM . Supongo que están en proceso de actualización. Esta es una buena noticia para las organizaciones que están preocupadas por los problemas de licencia.
NativeScript
- Apache 2.0 - Una luz verde para la mayoría.
Sobre todo veredicto: No es probablemente lo que esperabas ver aquí. Depende de su elección en función de los criterios anteriores. Ambos son lo suficientemente prometedores como para considerarlos.
Aunque NativeScript funciona bien con Angular, puede usar javaScript (o TS) "simple" junto con el marcado xml y un subconjunto de css. Y la implementación de Vue se puede usar también. Entonces, si quiere opciones, NativeScript puede ser una opción interesante de buscar.
Con la tarea de construir una aplicación móvil multiplataforma para uso interno, tuve la oportunidad de evaluar ambas en el transcurso de un mes.
En pocas palabras: NativeScript es más maduro en este momento (puede cambiar en el futuro). Escogimos NativeScript para nuestro proyecto.
¿Por qué? Aquí hay algunos ejemplos de nuestra aplicación de evaluación:
- A menos que ya sea una tienda React (que no somos), la sintaxis y la implementación de NativeScript son mucho más fáciles de entender para un desarrollador que ha estado haciendo un desarrollo web con Html / CSS / JavaScript. Usar XML es muy similar a Html para hacer trabajo de diseño.
- La capacidad de aprovechar los estándares y herramientas existentes. Por ejemplo, el resaltado de sintaxis disponible en Sublime, Visual Studio, etc. ya es compatible con XML / JavaScript. En el momento de mi evaluación (diciembre de 2015) no pude encontrar ningún complemento para resaltar correctamente la sintaxis con el código de ReactNative. En cambio, tuve que luchar con el subrayado rojo del editor de textos de todos los "errores de sintaxis" en el código válido de ReactNative.
- ReactNative expone un área "touchableHight" y se requiere que dibujes un botón dentro. Si bien es fácil crear un módulo de "botón" para su reutilización, no es tan elegante como llamar directamente al botón subyacente de android / ios (como lo hace NativeScript). Para mí, el objetivo de usar ReactNative o NativeScript es llamar a los objetos nativos.
- Al agregar un campo de contraseña, el lado de ReactNative no cambió los caracteres a viñetas en el lado de Android aunque configuré "secureTextEntry" como verdadero. Esto funcionó por primera vez en el lado NativeScript para Android / iOS.
Todavía me preocupa cómo resultará esto a largo plazo. Debido a que Facebook es más grande, asumo que se están dedicando más recursos al desarrollo de ReactNative de lo que Telerik puede hacer con NativeScript. Aún así, como tenemos que hacer algo ahora, elegimos NativeScript para nuestro proyecto. Ahora he pasado el segundo mes con NativeScript y siento con más fuerza que esta fue la elección correcta para nuestro proyecto.
En general, definitivamente recomiendo NativeScript y uno de los puntos principales para esto es que en realidad la compañía Progress es una compañía con una gran experiencia y el principal negocio es crear software para desarrolladores. Entonces, al final esto significa mejores herramientas, mejor calidad y soporte. Puede encontrar más detalles aquí http://www.fankod.com/nativescriptvsreactnative.html y aquí https://stackshare.io/stackups/nativescript-vs-react-native
Hasta ahora solo he reaccionado al desarrollo nativo, y puedo cantar muchas de sus virtudes. La experiencia del desarrollador es fantástica al igual que la comunidad. Creo que el modelo de diseño de flexbox es una característica poco apreciada de reaccionar nativo. Está evolucionando y madurando muy rápido. Aún así, estoy interesado en NativeScript principalmente por una diferencia importante ... te da acceso directo a las API de la plataforma nativa, que es bastante sorprendente y poderosa cuando lo piensas.
NativeScript tiene 3 ventajas sobre la reacción nativa:
- Nativescript puede compartir mucho más código que reaccionar nativo. Significa que guarde sus tiempos.
- Nativescript es una plataforma multiplataforma real que permite el acceso de API 100% nativo y el acceso de Libs.
- Como usa Angular 2, significa que tiene todas las ventajas que Angular 2 tiene.
React Native:
- Puede manejar funcionalidades más complejas
- Puede escribir con ES6 / TS
- Una mano extra para el desarrollo específico de la plataforma
- Actuación
- Comunidad Mayor
- Menor tamaño de la aplicación en comparación con Nativescript
Native Script
- Un desarrollo más rápido
- Artículo de lista
- Angular 2 basado
- Acceso directo a la API de la plataforma nativa
Ambos sirven para ser un marco de JavaScript multiplataforma para el desarrollo móvil. El poder con React Native sobre otros marcos comparables, es que utiliza las abstracciones y el poder de React. Facebook describe aquí las ventajas de esto: https://facebook.github.io/react/docs/why-react.html
Si NativeScript satisface tus necesidades y te gusta el paradigma, ve con eso. Es una elección personal. Me gusta React Native, y cuando se combina con una implementación de Flux, descubrí que realmente ha mejorado el manejo del estado de mi aplicación, la reutilización de los componentes y mi felicidad general de desarrollo.