¿Cuáles son los pros y los contras de escribir una aplicación web móvil en lugar de una aplicación nativa?

Aquí hay algunos pensamientos de mi experiencia trabajando en Stay In Touch (http://www.stayintouchapp.com), que es una aplicación web móvil que envolvimos en envoltorios nativos de iPhone / Android a través de Phonegap para su distribución en las tiendas de aplicaciones:

Beneficios de crear una aplicación web móvil:
1) Solo necesito habilidades HTML5 / CSS / Javascript frente a Objective-C o Java. Hicimos las cosas aún más simples mediante el uso de Mobl (http://www.mobl-lang.org), un lenguaje específico de dominio para crear aplicaciones web móviles que compila a javascript / html.
2) Base de código único para todas las plataformas (iOS, Android, Windows 7, web móvil)
3) Pruebas e implementación rápidas (hasta que lo marque por teléfono, en ese momento estará sujeto a las condiciones de revisión de la App Store, etc.)
4) Con Phonegap, aún puede aprovechar la distribución y el pago integrado a través de App Store o Android Market

Inconvenientes:
1) Bajo rendimiento, especialmente si su aplicación es gráficamente intensa, es decir, un juego. Puede implementar el almacenamiento en caché o aprovechar algunas soluciones de terceros (es decir, Sibblingz) para la aceleración de gráficos nativos, pero en su mayor parte una aplicación nativa es mucho más rápida / suave que la aplicación web móvil
2) Falta de widgets de UI pre-construidos, transiciones, controles estándar, etc. Su tiempo de desarrollo puede llevar más tiempo, especialmente si desea una aplicación de aspecto pulido con un aspecto nativo. Puede intentar usar Sencha Touch, JQ Touch o herramientas similares con elementos de interfaz de usuario preconstruidos, pero es probable que todavía deba dedicar una buena cantidad de tiempo a diseñar la aplicación para que parezca nativa.

Entonces, ¿debería crear una aplicación web móvil o una nativa? Si está creando una aplicación que está involucrada gráficamente o que involucra operaciones computacionalmente caras, asegúrese de que las herramientas aún no están allí para facilitar el trabajo de las aplicaciones web móviles. Si está creando algo bastante simple y no necesita ningún estilo nativo o pulido de diseño, vaya a la ruta web móvil.

¡Hola!

Las principales diferencias en los enfoques de creación de la aplicación móvil son la velocidad de implementación, el costo y la calidad del producto final; y las opciones tecnológicas de desarrollo de aplicaciones móviles, disponibles para los empresarios de hoy, son numerosas. Comprender las diferencias entre varios enfoques y tecnologías, así como las diversas formas en que se relacionan entre sí es la parte difícil.

Cada enfoque tiene sus pros y sus contras. Comencemos desde la aplicación web móvil que se puede desarrollar con Apache Cordova (marco que permite crear aplicaciones móviles usando HTML, CSS y Javascript):

Pros
– Alta velocidad de desarrollo.
– Escribe un código utilizando tecnologías de desarrollo web (HTML, CSS, Javascript) y, como resultado, obtiene iOS, Android y software compatible con la web. Puede ser desarrollado por 1 desarrollador web: no necesita expertos en desarrollo de aplicaciones Android y desarrollo de aplicaciones iOS.
– Existen marcos que emulan elementos de la interfaz de usuario de la aplicación nativa: botones, menús, etc.
– Puede hacer que la experiencia del usuario sea muy cercana a la nativa utilizando elementos de la interfaz de usuario que imitan el comportamiento nativo de la aplicación.
– Acceso a las API de hardware del teléfono inteligente (cámara, notificaciones push, geolocalización y otras).

Contras
– La experiencia del usuario no es tan buena como en las aplicaciones móviles nativas. (Retrasos de clics de 300 ms, clics fantasmas durante el desplazamiento, etc.).
– La aplicación más complicada es, más lenta funciona debido a los diferentes contenedores y bibliotecas.
– No funciona sin conexión.
– Es muy difícil implementar animación para la interfaz de usuario.

En cuanto a la aplicación móvil nativa , tenemos una situación muy diferente:

Pros
– Hay muchos módulos y bibliotecas para resolver tareas de desarrollo comunes que aceleran el proceso.
– Buen rendimiento y excelente experiencia de usuario en todas las plataformas móviles.
– Permite que la aplicación acceda a todo el hardware del dispositivo permitido por el fabricante.
– Puede trabajar sin conexión y almacenar datos localmente en el dispositivo.

Contras
– Mayores costos en comparación con el desarrollo de aplicaciones híbridas.
– Diferentes pilas de tecnología para diferentes plataformas: por lo general, necesitará un desarrollador separado para construir y mantener la aplicación de iOS y Android. Cualquier característica debe agregarse por separado a cada plataforma.
– Crear una aplicación nativa es una opción perfecta si tienes suficientes recursos. Las tecnologías para construir tales aplicaciones existen desde hace mucho tiempo y se realizaron muchas tareas complicadas. Es poco probable que te quedes atascado resolviendo el problema técnico o de rendimiento que nunca antes había sido resuelto por alguien y hay una gran comunidad de desarrolladores para aprender.

Algunos ejemplos de aplicaciones móviles nativas populares:

Coinbase

Una de las aplicaciones más populares para el comercio de criptomonedas .

Uber

La aplicación de transporte más popular

Conclusión

Se recomienda crear aplicaciones nativas si su aplicación necesita realizar cálculos complejos, mantener una conexión en tiempo real con el servidor, tener una funcionalidad innovadora única que requiera interacción con otras aplicaciones en el dispositivo o hardware.

También es posible crear una aplicación React Native que cubra todas las características comunes, y crear módulos nativos de iOS / Android para manejar características no admitidas por RN. Esta es una solución efectiva, pero requiere que sus desarrolladores estén familiarizados con las tecnologías móviles nativas y la web al mismo tiempo. A menudo, estos profesionales son antiguos desarrolladores móviles nativos que aprendieron el desarrollo web. Lo más probable es que sea difícil encontrar tales expertos y costoso contratarlos.

La decisión final solo depende de usted. Simplemente elija la forma de hacer una aplicación.

¡Espero que mi respuesta haya sido útil!