angular - español - nativescript vs react native
Aplicación híbrida-Ionic vs NativeScript (4)
Respuesta corta
Con Ionic estás creando aplicaciones híbridas o Progressive Web Apps . La estructura de la aplicación está escrita en HTML y la aplicación creada utiliza WebViews (algo así como un sitio web dentro de su aplicación).
Con NativeScript , está creando verdaderas aplicaciones nativas que no usan el DOM de HTML y tendrá que aprender los componentes de la interfaz de usuario de la plataforma a la que se dirige (por ejemplo, iOS / Android ). Sin embargo, las aplicaciones nativas suelen ser más rápidas que las aplicaciones híbridas y puede acceder a las funciones de hardware como cámara, toque, calendario, llamadas telefónicas, etc., todo con código TypeScript / JavaScript.
Respuesta larga
Aquí hay un extracto de una publicación del blog de Danyal Zia. Te sugiero que leas el completo.
Jónico (2)
Ionic 2 es un marco de desarrollo móvil híbrido ... bueno, entonces, ¿qué significa el desarrollo híbrido? Las aplicaciones híbridas son como cualquier otra aplicación que pueda encontrar en las tiendas de aplicaciones, se ejecutan de la misma manera (descargándolas e instalándolas), y la interacción del usuario es similar; de hecho, la mayoría de los usuarios apenas se dan cuenta de la diferencia entre las aplicaciones nativas y las híbridas. aplicaciones
Lo interesante de las aplicaciones híbridas es que están alojadas dentro de una aplicación nativa que utiliza WebView , que es un tipo de cargador de páginas web sin navegador, por lo que obtiene acceso a funcionalidades móviles, como cámaras, contactos, giroscopio, etc. A través de lenguajes web, como HTML, XML, CSS, etc.
Ionic 2 sigue utilizando WebView (al igual que la versión anterior de Ionic), por lo que escribe el código HTML en sus actividades de Android, por lo que puede ser más lento en comparación con ReactNative y NativeScript (hablaremos de ello más adelante). Puede crear widgets de aspecto nativo en Ionic 2, pero aún se están mostrando en WebView dentro de un contenedor nativo, por lo que no son técnicamente nativos.
Pros :
- Soporte de desarrollo web híbrido. El mismo código se puede usar para desarrollar aplicaciones para Android, iOS, Windows Phone y web.
- Ciclo de pruebas de desarrollo MUY rápido. Usted escribe el código y lo prueba en el navegador, sin necesidad de cargar un emulador pesado.
- Le permite escribir código en TypeScript, lo que hace que la transición desde Angular 2 sea muy fácil.
- El mismo lenguaje (TypeScript) se puede utilizar para desarrollar aplicaciones para cada plataforma.
- Su sistema de complementos le permite usar cualquier tipo de funcionalidades nativas de dispositivos.
Contras :
- Se pueden producir problemas de rendimiento si necesita utilizar muchas devoluciones de llamada al código nativo.
- El mismo aspecto de la interfaz de usuario en todos los dispositivos puede ser un factor decisivo para aquellos que prefieren el aspecto nativo de la interfaz de usuario.
- El desarrollo de gráficos altamente avanzados o transiciones altamente interactivas puede ser un trabajo complejo.
NativeScript
Desarrollado por Telerik , NativeScript le permite usar JavaScript o TypeScript para el desarrollo, por lo que si ha usado Angular 2 anteriormente, tendrá una transición fácil. Telerik anteriormente desarrolló la interfaz de usuario de Kendo con una estrecha integración angular para las aplicaciones híbridas, pero luego se dieron cuenta de por qué no ofrecer la verdadera experiencia nativa multiplataforma.
Con TypeScript y Angular 2, puede crear muy fácilmente componentes para aplicaciones móviles usando un estilo declarativo. Al afirmar que es compatible con "escribirlo una vez, ejecutarlo en todas partes", se puede utilizar el mismo código Angular 2 para la interfaz de usuario para todas las plataformas a las que se dirige. NativeScript es una plataforma multiplataforma real, lo que significa un acceso 100% a API nativa y su misión es permitir que las personas utilicen la misma base de código para todas las plataformas.
A diferencia de ReactNative, NativeScript usa el código UI nativo (para los respectivos teléfonos con Android e iOS) ¡aunque esté escribiendo el código en TypeScript / JavaScript! Si consideramos el lado del rendimiento, entonces NativeScript realmente tiene la ventaja sobre ReactNative, porque utiliza la estructura AngularJS 2 para crear componentes.
Lo mejor de NativeScript es que está desarrollado por Telerik, que le asegura que seguirá recibiendo nuevas actualizaciones en el futuro, ya que cuenta con el respaldo de desarrolladores profesionales de todo el mundo. Por lo tanto, si está utilizando aplicaciones comerciales, puede confiar en NativeScript más que en ReactNative, ya que ReactNative es más amigable con el código abierto y cuenta con muchas contribuciones de los usuarios. Pero, NativeScript también es de código abierto.
NativeScript también es bastante maduro en comparación con ReactNative. Ya está en la versión 2.0, ese no es el caso con ReactNative, que recibe nuevas actualizaciones con menos frecuencia. NativeScript puede compartir mucho más código que ReactNative, lo que significa que le ahorrará tiempo.
Pros :
- Soporte real multiplataforma. Base de código única para desarrollar aplicaciones para todas las plataformas compatibles.
- Acceso API 100% nativo. Puede acceder a las funciones de hardware como cámara, pantalla táctil, calendario, llamadas telefónicas, etc., todo con código TypeScript / JavaScript.
- Utiliza el Angular 2 para que pueda transferir fácilmente sus componentes web anteriores a sus aplicaciones.
- Muy buen soporte de Telerik.
Contras:
- Muchos complementos deben descargarse por separado para los componentes. No todos los complementos están disponibles o verificados (es decir, probados a fondo).
- El tamaño de la aplicación es mucho más grande que el ReactNative y el Ionic 2. Si sus usuarios tienen una conexión a Internet lenta, puede ser un problema para usted.
- No hay compatibilidad con HTML y DOM en NativeScript, por lo que necesita aprender diferentes componentes de la interfaz de usuario para crear la interfaz de usuario de las aplicaciones.
Estoy en el espacio móvil durante bastante tiempo y ya tenemos una aplicación nativa de Android e iOS. Ahora nuestra compañía planea mejorar nuestro sitio móvil y nuestro equipo ha elegido Angular 2 + TypeScript + Ionic 2. Con gran dificultad, hemos completado el desarrollo de nuestro formulario de registro en Ionic + Angular. Ahora llegué a conocer acerca de NativeScript para desarrollar aplicaciones híbridas sin vista web y, dado que utiliza el componente de interfaz de usuario nativo, la gente está diciendo que el aspecto y el rendimiento de la aplicación serán buenos.
Estoy un poco confundido al elegir uno 1. Angular + TypeScript + Ionic (html, js, css) o 2. Angular + TypeScript + NativeScript (xml, js, css)
Además, el plan a largo plazo de nuestra compañía es mantener una fuente única para iOS, Android y Mobile Site
Por favor, ayúdame.
Gracias
Esta es una pregunta / respuesta realmente subjetiva, ya que depende de cuánto trabajo quieras hacer. :-)
En primer lugar, en una aplicación iONIC / Angular2 básicamente estás haciendo la misma versión web al mismo tiempo. El rendimiento puede ser un problema grave dependiendo de lo que esté haciendo. Pantallas simples no tanto, mucha información; Problemas mucho más grandes. Además, el diseño de la pantalla puede causarle algunos problemas, ya que básicamente está codificando para un pequeño navegador web que tiene resoluciones de pantalla totalmente diferentes según el dispositivo y el sistema operativo en el que se encuentre. Si necesitas un rendimiento más cercano al nativo; hay cosas que puede hacer para hacer que iONIC sea más rápido (es decir, usar CrossWalk) y, en general, puede generar una aplicación web decente en iONIC 2. Pero es muy probable que nunca tenga nada parecido al rendimiento nativo, ni que actúe como una aplicación nativa. ya que sigue siendo una aplicación web tratando de emular una aplicación nativa.
Ahora, si está buscando un rendimiento nativo y / o la capacidad de hacer cosas fácilmente nativas en el dispositivo, entonces usar NativeScript / Angular2 podría ser la mejor opción. Obtiene el rendimiento nativo y el acceso a todos los controles nativos (es decir, cosas como ListViews reales que pueden manejar miles de elementos complejos sin ralentización), pero el costo es que TIENE que crear dos pantallas separadas y css independientes para su la aplicación La lógica real se puede compartir en NG2 entre una aplicación NativeScript y una aplicación web; pero la generación de pantalla es diferente, por lo que para su componente / pantalla html puede tener un mycomponent.html
-> <div>{{somevalue}}</div>
y en NativeScript mycomponent.xml
-> <Label text="{{somevalue}}"></Label>
. Así que terminará con un trabajo más adelantado en NativeScript ya que tiene que crear los dos archivos de diseño separados. Pero esto le permite tener la versión móvil mejor diseñada para la pantalla de un teléfono o tableta, y / o opciones adicionales, como el acceso a la cámara en el diseño del NS y un botón para cargar el archivo de imagen en la versión html.
Como alguien que ha usado ambas tecnologías, estoy firmemente en el campamento de NativeScript para todos mis nuevos proyectos; pero para algunas personas todavía hay algunos casos de uso válidos para usar iONIC / Phonegap / Cordova si la aplicación está basada en la web y no hay nada que necesite vistas complejas y / o mucha información mostrada.
No mezcle Nativescript con aplicaciones híbridas ya que las aplicaciones híbridas son aplicaciones que utilizan webview (como Ionic), Nativescript es una aplicación nativa. Cual de las diferencias entre ambos tipos.
Con Ionic, puede tener una sola fuente ya que tiene la misma vista de los tres objetivos.
Nativescript usa elementos nativos, por lo que tendrá que hacer dos vistas diferentes para los navegadores y para los móviles y algunos cambios entre el código javascript, ya que algunas cosas no están en la API del navegador, sino en el lado nativo o viceversa.
Depende de la aplicación cuál es el objetivo de uso.
Para agregar tardíamente a las excelentes respuestas anteriores, como mencionó, la empresa también debe aportar información al proceso de decisión. A continuación hay algunas preguntas subjetivas que la empresa tiene para ayudar a responder:
¿Qué impacto tendrá la financiación / identificación de los recursos del desarrollador en el proyecto? Es decir: ¿tenemos que conformarnos con lo que tenemos? ¿Obtener nuevas personas? Volver a entrenar Las soluciones híbridas frente a las soluciones nativas y si el uso del código existente es requerido no tienen un impacto trivial. Imagine una solución donde los desarrolladores nativos o front-end se vuelven más o menos redundantes ...
¿Cuál es el impacto en el negocio si la UI / UX es o no similar a través de móvil vs web / responsive / hybrid / PWA? ¿Qué pasa con el impacto de las capacidades algo diferentes para acceder a funciones nativas como cámara, GPS, notificaciones, etc. entre nativo y web / responsive / hybrid / PWA?
- ¿Cuál es el impacto del rendimiento de la aplicación posiblemente diferente en todas las plataformas? (es decir, nativo es más rápido)
- ¿El negocio ha evaluado los costos de vida y mantenimiento de cada una de estas soluciones?
Las respuestas son los principales impulsores para ser receptivos (por ejemplo, grid / flexbox / bootstrap), híbridos (por ejemplo, Ionic), o nativos (por ejemplo, Nativescript, React Native o puramente nativos).
Al final, la decisión final es una combinación de factores comerciales y técnicos.