¿Cuál es la diferencia entre HTML5, Native y una aplicación híbrida? ¿Cual es mejor?

Hola

Existen principalmente 3 opciones de desarrollo de aplicaciones móviles:

  • Aplicación nativa:

    Aplicaciones móviles creadas para plataformas específicas como iOS, Android, Blackberry, Windows, etc., utilizando sus respectivas herramientas de desarrollo y lenguaje. La aplicación nativa solo funcionará en la plataforma para la que ha sido diseñada.

  • Aplicación web HTML5:

    Sitios web optimizados para dispositivos móviles que parecen ser aplicaciones y se ejecutan en el navegador móvil. Estas son independientes de la plataforma pero carecen de UX y funcionalidad superiores. Estas aplicaciones no se ejecutarán en el modo fuera de línea.

  • Aplicación híbrida / multiplataforma:

    Aplicación móvil única creada en HTML5 y optimizada para múltiples plataformas (utilizando contenedores nativos). Se descargan de las tiendas de aplicaciones como aplicaciones nativas.

    Antes de seleccionar una plataforma, es importante comprender los siguientes puntos

    1. ¿A cuántas plataformas deseas apuntar?

    Ahora depende de su estrategia general, si desea apuntar a una sola plataforma y no quiere un alcance más amplio, entonces nativo es definitivamente la mejor opción para usted. Aquellos que desean un alcance más amplio pueden optar por múltiples aplicaciones nativas, desarrolladas específicamente para cada sistema operativo. Una aplicación híbrida también le permitirá llegar a todas las plataformas a través de una aplicación común.

    2. ¿Qué pasa con la experiencia del usuario de la aplicación móvil?

    Algunas aplicaciones tienen una interfaz muy simple, pero algunas tienen un diseño UX exigente. Con las aplicaciones nativas, es posible crear fácilmente una experiencia de usuario muy atractiva, fascinante e interactiva que será específica para el dispositivo para el que se ha desarrollado. Mientras que en términos de aplicación híbrida, la experiencia del usuario que se puede diseñar será simplemente promedio. Elija una aplicación nativa para múltiples dispositivos si desea que su aplicación móvil tenga un alto rango en UX y usabilidad.

    ¿Cómo construir un sitio web móvil fácil de usar? 10 súper consejos de expertos

    3. Restricción de tiempo y dinero. Si alguna ?

    Una aplicación híbrida está construida en HTML5 / js / css y este no es un conjunto de habilidades poco común. El costo de desarrollo de una aplicación nativa es, por lo tanto, mucho más alto que el de una aplicación híbrida.

    Obtener una aplicación web HTML5 será la solución más rápida y rentable, pero no servirá para su propósito en la mayoría de los casos.

    4. ¿Qué tan compleja es la aplicación que se va a desarrollar?

  • Una aplicación nativa puede acceder a hardware como GPS y cámara, manejar las teclas físicas de un teléfono, conectarse a una base de datos en línea, administrar grandes cantidades de datos del lado del cliente, ejecutarse sin conexión y acceder a widgets sin problemas. Todo esto no es posible con una aplicación web, pero con las últimas tecnologías, todo esto también es posible con una aplicación híbrida. La única preocupación será que a medida que la aplicación se vuelve más y más compleja, se hace difícil crear una aplicación multiplataforma.

    Elige una aplicación nativa si quieres:

    • Una aplicación que exige una respuesta rápida y un alto rendimiento.
    • Eso puede procesar grandes cantidades de datos en el lado del cliente
    • Para administrar recursos del sistema o sistemas operativos
    • Para escenarios de video o juegos

      Las aplicaciones móviles requieren la aprobación de su tienda de aplicaciones respectiva antes de que aparezca y este proceso toma muchos parámetros en cuenta, como el contenido de la aplicación, la calidad, las imágenes, el diseño, la usabilidad, etc. y este proceso puede llevar tiempo y, por otro lado, un HTML5 la aplicación web basada no requiere autorización para seguir adelante.

      Para más detalles, consulte:

      Native / Web / Hybrid: ¿cómo elegir una plataforma de desarrollo de aplicaciones móviles?


      Cada aplicación móvil necesita un impulso planificado y estratégico antes y después de su lanzamiento para que su público objetivo lo note.

      Con el presupuesto como una restricción y las redes sociales como el medio de conversación más utilizado, los desarrolladores de aplicaciones móviles pueden planificar una estrategia de marketing de redes sociales atractiva que los ayudará a aumentar las descargas de aplicaciones móviles y atraer a los usuarios existentes de forma gratuita.

      Siga leyendo para aprender cómo se puede ejecutar esto fácilmente.

    • Aumente las descargas de aplicaciones móviles con una estrategia efectiva de redes sociales

Veo muchas ideas falsas en las respuestas aquí.

Primero, las definiciones:

  • HTML5 es una tecnología que se utiliza para especificar (parte de) el aspecto visual de una página web. HTML5 puede servirse desde un sitio web y representarse como una “aplicación web” en el teléfono. También se usa en aplicaciones híbridas para diseñar las partes visuales (controles, etc.).
  • Cualquier aplicación que pueda publicar en la tienda es, en algún nivel , una aplicación nativa. Cuando las personas dicen “aplicación nativa” a menudo significan “no híbrido”, pero existe una falsa dicotomía implícita entre “nativo” y todo lo demás, cuando en realidad hay muchas opciones
  • Una aplicación híbrida usa específicamente un WebView para representar la mayoría de los controles / elementos visuales. Encontrarás HTML5 y JavaScript manejando la mayoría de las aplicaciones híbridas.

Supongo que realmente está comparando “aplicación web”, “aplicación escrita en Java para Android y Objective C o Swift para iOS” y “aplicación escrita en Cordova / PhoneGap”. Sin embargo, estas no son las únicas tres opciones, por lo que quiero agregar algunas opciones más para comparar. Para obtener un resumen rápido de las opciones que estoy considerando, consulte esta tabla:

Como puede ver, “nativo” e “híbrido” no son las únicas opciones. Cordova / Ionic son tecnologías híbridas: el renderizado se realiza en un WebView, aunque puede usar funciones nativas del dispositivo que no están disponibles en un sitio web (cámara, notificaciones, etc.).

Puede crear aplicaciones multiplataforma que tengan un rendimiento nativo. La mayoría de los juegos han estado utilizando técnicas de desarrollo multiplataforma durante años, y los juegos son más sensibles al rendimiento que la mayoría de las aplicaciones.

Existen Unity3d, Cocos2d-x y muchos otros entornos de desarrollo multiplataforma que le brindarán un rendimiento completo para su juego (en algunos casos mejor que “nativo”), y solo necesita escribirlo una vez.

Pero los motores de juego no son ideales para aplicaciones generales, entonces, ¿qué opciones tenemos allí?

El desarrollo “híbrido” ha sufrido muchas dificultades en los últimos años. Zuckerberg afirmó que el híbrido simplemente “no es lo suficientemente bueno”. Pero luego Sencha Mobile creó un clon de Facebook basado en WebView que demostró que en realidad puedes hacerlo lo suficientemente rápido. Lea sobre esto en The Making of Fastbook: An HTML5 Love Story.

Por lo tanto, puede usar híbrido, y Cordova / PhoneGap es probablemente la plataforma más madura para construir. Sin embargo, hay opciones además de eso: Ionic Framework se basa en Cordova y le brinda controles adicionales específicos de la plataforma para que su aplicación se vea más Android o iOS en su plataforma respectiva. Meteor le brinda una forma de crear aplicaciones de pila completa que comparten código, y le permite apuntar a iOS, Android, aplicación web y código de servidor con la misma base de código.

Pero he enumerado más opciones que Cordova en la tabla anterior. A veces quieres controles nativos, y varias de las opciones anteriores te dan la posibilidad de crear controles nativos desde tu aplicación multiplataforma.

React Native y Xamarin le permiten crear controles nativos al crear diferentes rutas de código para cada plataforma: para un control particular, definirá cómo se ve en Android y cómo se ve en iOS.

NativeScript y Tabris.js abstraen los controles comunes, por lo que puede definir su diseño una vez y hacer que funcione en ambas plataformas. Hay una nueva función de Xamarin que también te permite trabajar de esta manera, aunque no he escuchado qué tan bien funciona.

Kivy no usa controles nativos, sino que es un motor de juego que simplemente proporciona las herramientas que normalmente necesita para escribir una aplicación. Entonces, en lugar de parecerse a una aplicación de Android o iOS, es más probable que cree algo que se vea como una aplicación completamente personalizada. El rendimiento no debería ser un cuello de botella, pero puede que te guste o no el estilo.

Otras Consideraciones:

  • Una característica clave que ofrecen algunas de las soluciones basadas en JavaScript es Live Update: la capacidad de enviar una nueva versión de una aplicación a los usuarios sin tener que esperar a que se actualicen en la tienda o que la tienda apruebe una actualización. Dado que la aprobación en la tienda de Apple puede variar de días a semanas, la capacidad de enviar un parche a los usuarios casi de inmediato es poderosa. También significa que no necesitará admitir versiones antiguas de su API, si tiene una, ya que puede garantizar que la aplicación utilizará el último cliente API.
  • En Native, obtienes acceso a las herramientas de desarrollo de la plataforma, que suelen ser buenas. En el desarrollo híbrido, tiene acceso a la increíblemente buena pila de herramientas de depuración disponibles en Chrome, y las herramientas de Safari, para depurar su aplicación en tiempo real. Los otros enfoques de JavaScript generalmente también tienen una forma de conectar Chrome, y React Native en particular admite la recarga en vivo: cambie un aspecto de la página que está viendo y lo volverá a procesar como si acabara de ejecutar todo el código para ese punto de nuevo. Es como una característica instantánea de “volver a ejecutar la aplicación y tomar las mismas decisiones”.
  • Los SDK nativos suelen ser detallados y molestos de usar para hacer algunas cosas comunes. Tener un ecosistema de complementos disponible significa que agregar algo como pagos en la aplicación puede pasar de ser una molestia a agregar un complemento y la interfaz de usuario. Lo mismo para el inicio de sesión en Facebook, notificaciones, etc. El ecosistema de complementos de Cordova es uno de los mejores, pero NativeScript se ve impresionante.
  • NativeScript tiene una característica interesante: envuelve todas las API del sistema operativo con JavaScript, por lo que tan pronto como se publique una nueva API, puede llamarla directamente. De JavaScript Sin plug-in nativo.
  • Si tiene requisitos serios de procesamiento de datos, probablemente querrá un código nativo “real”, con lo que me refiero a C / C ++ / Go / Rust o similar. La mayoría de las aplicaciones no necesitan esto, pero si lo necesita, casi todos los entornos anteriores tienen una forma de conectar su código nativo a la aplicación, pero es posible que deba conectarse por plataforma. Esto no se tiene en cuenta en la figura de “ahorro” anterior, porque no se aplica a la mayoría de las aplicaciones.
  • Las estimaciones en la tabla anterior son realmente solo estimaciones. Muchos son tomados de (mi memoria de) lo que el equipo que desarrolla la tecnología respectiva ha afirmado, pero muchos son solo conjeturas educadas. Su experiencia puede ser diferente.
  • Si necesita utilizar un complemento de terceros para su aplicación, seguramente estará disponible en nativo para iOS / Android, pero no necesariamente para cualquier otra cosa. Muchos complementos están disponibles para Cordova, pero si el que desea usar no lo está, debe agregar el costo adicional de crear un complemento Cordova (u otro) para esa tecnología. También se suma al costo.
  • Si necesita partes sustanciales de su código para convertirse en un complemento, para ser utilizado por otras compañías, hay suficientes personas que desarrollan código nativo que probablemente esté atrapado desarrollando nativo.

En conclusión: hay muy pocas razones para desarrollar usando la plataforma SDK nativa directamente más, y cuesta casi el doble hacerlo. Excepto si va a proporcionar su código como complementos para otros, le recomiendo encontrar una solución multiplataforma y usarla.

EDITADO para agregar información sobre Live Update (“parches en caliente”) como lo menciona Shai Alon en los comentarios.

More Interesting

¿Cuánto tiempo lleva aprender a crear una aplicación desde cero (suponiendo que no tenga conocimientos de programación)?

¿Cuáles son algunos de los puntos críticos en la localización / traducción de aplicaciones móviles?

¿Por qué es necesaria una aplicación móvil para las empresas?

Cómo construir una aplicación de ubicación en tiempo real como Uber

¿Por qué alguien no ha creado una aplicación de tarjeta de presentación digital dominante para dispositivos móviles?

¿Cómo hacen los desarrolladores una aplicación multiplataforma? ¿Simplemente tienen cada plataforma conectada a una base de datos de back-end y tienen un diseño de interfaz de usuario coincidente en todas ellas?

Cómo captar clientes para el desarrollo de aplicaciones móviles en India y en el extranjero como una nueva empresa

¿Hay alguna empresa en la India que garantice buenas críticas y una calificación de 4 o 5 estrellas para una aplicación móvil?

¿Qué herramientas y técnicas debo usar para crear un sitio web móvil?

¿Dónde y cómo encuentro a mi socio tecnológico de inicio?

Cómo desarrollar una aplicación sobre Blockchain comenzando sin conocimiento técnico

¿Cómo crear una aplicación exitosa sin experiencia en la creación de aplicaciones? Mi idea puede ser un poco compleja. ¿Por dónde empiezo y a quién puedo recurrir para obtener ayuda?

¿Cuál es la mejor manera de usar MaskChat?

¿Cuánto cuesta desarrollar una aplicación de citas como Clover con las mismas características?

En el futuro, ¿podría ser posible construir su propia aplicación escribiendo sus propios comportamientos en un lenguaje sencillo sin contratar desarrolladores?