Una pregunta común formulada por los desarrolladores de aplicaciones móviles es la siguiente: “¿Debo crear mi aplicación con HTML 5 o construir nativa?”. Hay una amplia gama de razones por las cuales elegiría cualquiera de estos, y los defensores de ambos tienen argumentos muy válidos y convincentes. Exploraremos los diversos tipos de categorías de aplicaciones y discutiremos los pros y los contras de ambos métodos.
Definiciones
Antes de comenzar, debemos definir los términos, aplicación HTML5 y aplicación nativa, para evitar ambigüedades y argumentos innecesarios en los comentarios.
Una aplicación nativa, para el propósito de este artículo, se refiere a una aplicación creada completamente usando tecnologías nativas de un sistema operativo particular. Esto podría ser Android, iOS, Windows, Blackberry, etc. Para Android, las aplicaciones nativas normalmente se crean usando Java, mientras que para iOS, una aplicación nativa se puede construir usando Objective C o (más recientemente) Swift.
Una aplicación HTML5, por otro lado, se refiere a una aplicación móvil construida completamente con HTML, CSS y Javascript solamente. Las aplicaciones HTML5 son aplicaciones web y deben ejecutarse utilizando el navegador del sistema operativo subyacente. Tenga en cuenta que HTML5 admite datos sin conexión, así como también medios enriquecidos, como audio y video. Una aplicación HTML5 bien escrita se puede usar incluso cuando el dispositivo está fuera de línea o, como mínimo, muestra un mensaje de error.
Comparación de HTML5 y aplicaciones nativas
Portabilidad
Las aplicaciones HTML5 son portátiles en diferentes sistemas operativos y tipos de dispositivos. Una aplicación HTML5 escrita con métodos de diseño adaptables también se escalaría adecuadamente según el tamaño del dispositivo en el que se visualiza actualmente. Cuando se requiere una actualización, la aplicación única se actualiza y prueba, y está disponible para todos los dispositivos de inmediato.
Las aplicaciones nativas, por definición, son exclusivas de cada sistema operativo y, por lo tanto, para admitir varios sistemas operativos móviles, se debe escribir una aplicación por separado para cada sistema operativo. Cuando se requiere una actualización, cada aplicación se debe actualizar de forma independiente y probarse de forma independiente. Las aplicaciones de Android no modifican el diseño para que coincida con el tamaño del dispositivo automáticamente, sin embargo, durante el desarrollo, se pueden especificar diferentes diseños para diferentes tamaños y orientaciones de dispositivo / pantalla. Por lo general, esto se traduce en diseños que son más agradables estéticamente en comparación con las aplicaciones HTML5 de diseño responsivo automático, aunque con más esfuerzo y planificación.
Ganador : HTML5
Costo de desarrollar
Por lo general, las aplicaciones HTML5 son más económicas de desarrollar y mantener que las aplicaciones nativas, ya que solo se requiere una sola aplicación para compatibilidad con varios sistemas operativos. Esta única aplicación puede ser desarrollada por un único desarrollador web. Sin embargo, las aplicaciones nativas para todos los principales sistemas operativos móviles normalmente requerirían un desarrollador especializado para cada sistema operativo (Java para Android, Objective C / Swift para iOS, C # para Windows), que sería significativamente más costoso que un desarrollador web único.
Ganador : HTML5
Velocidad y Eficiencia
Las aplicaciones nativas son casi siempre más eficientes y más rápidas que las aplicaciones HTML5. A pesar de los avances en el aumento de la velocidad de los intérpretes de JavaScript, una aplicación HTML5 no puede ejecutarse a la misma velocidad que una aplicación nativa de funcionalidad similar. La App Store de Apple puede rechazar aplicaciones por ser demasiado lenta o no sentirse lo suficientemente nativa, lo cual es más probable que ocurra con una aplicación HTML5 que con una aplicación completamente nativa.
Ganador : Nativo
Uso de Hardware
Las aplicaciones nativas pueden interactuar con una amplia gama de hardware disponible en un dispositivo, incluida la ubicación, la cámara, el acelerómetro, los altavoces, la pantalla y más. Las aplicaciones HTML5 no tienen la misma capacidad para interactuar con el hardware, lo que puede ser un gran factor decisivo, según la funcionalidad deseada de la aplicación.
Ganador : Nativo
Aplicaciones híbridas
Si necesita entregar una aplicación al costo más bajo a la velocidad más rápida en múltiples tipos de sistema operativo móvil, una aplicación HTML5 es casi siempre la mejor opción. Sin embargo, si su aplicación necesita hacer uso de hardware específico del dispositivo, o necesita correr muy rápido, lo hará mejor con una solución nativa.
Sin embargo, como con la mayoría de las cosas relacionadas con la computadora, hay más de una solución. Hay una tercera categoría de aplicaciones, llamadas aplicaciones híbridas. Las aplicaciones híbridas se crean utilizando el lenguaje / framework, y luego se envuelven con código nativo específico para cada sistema operativo móvil deseado. Por ejemplo, construyes una aplicación usando HTML5, CSS y Javascript, luego generas un envoltorio alrededor de la aplicación para dispositivos Android, iOS y Windows. El producto final es, a todos los efectos, una aplicación nativa para cada plataforma, sin embargo, comparten una única base de código. Para el usuario final, una aplicación híbrida no es diferente de una aplicación nativa. Los frameworks de aplicaciones híbridas populares incluyen Apache Cordova (anteriormente PhoneGap), Appcelerator Titanium, Appear IQ, CocconJS y Appzillon, entre otros.
Las aplicaciones híbridas no son todas rosas. Hay ventajas y desventajas:
Pros
- Las aplicaciones híbridas son tan portátiles como las aplicaciones HTML5. Permiten la reutilización del código en toda la plataforma, y el marco gestiona todas las diferencias específicas de la plataforma.
- Se puede construir una aplicación híbrida prácticamente a la misma velocidad a la que se puede crear una aplicación HTML5. La tecnología subyacente es la misma.
- Se puede construir una aplicación híbrida casi al mismo costo que una aplicación HTML5. Sin embargo, la mayoría de los marcos requieren una licencia, lo que agrega un costo de desarrollo adicional
- Las aplicaciones híbridas pueden estar disponibles y distribuidas a través de la tienda de aplicaciones correspondiente, al igual que las aplicaciones nativas
- Las aplicaciones híbridas tienen un mayor acceso a los recursos de hardware nativos que las aplicaciones simples de HTML5, generalmente a través de las propias API del marco correspondiente.
Contras
- No todos los recursos de hardware nativos están disponibles para aplicaciones híbridas. La funcionalidad disponible depende del framework utilizado.
- Las aplicaciones híbridas se muestran al usuario final como aplicaciones nativas, pero se ejecutan significativamente más lento que las aplicaciones nativas. La misma restricción para las aplicaciones HTML5 que se rechazan por ser demasiado lentas en la App Store de Apple también se aplica a las aplicaciones híbridas. Renderizar diseños CSS complejos llevará más tiempo que renderizar un diseño nativo correspondiente
- Cada framework tiene su propia idiosincrasia única y formas de hacer las cosas que no son necesariamente útiles fuera del framework dado.
Mientras que el debate entre la aplicación HTML5 y la aplicación nativa sigue abierto, vale la pena mencionar que hay literalmente docenas de razones válidas para desarrollar una aplicación HTML5, nativa o híbrida. Sin embargo, la pregunta más importante no debería ser “¿Qué tecnología deberíamos usar para desarrollar?”, Sino “¿Qué hace la aplicación?”. Las funciones que la aplicación debe realizar, cuando se deletrean adecuadamente, a menudo responderán a qué tecnología es apropiada.
Si tiene la intención de desarrollar un juego de gráficos intensivos, seguramente querrá construir una aplicación nativa, con el fin de brindarles a los usuarios el juego más rápido y con mayor capacidad de respuesta posible.
Si está escribiendo una aplicación para una empresa que permite a los ejecutivos acceder a la información de la compañía, puede decidir entre una aplicación híbrida o HTML5, especialmente si su aplicación no necesita usar el hardware del dispositivo, y debe estar disponible para su uso en el dispositivo preferido.
Si está desarrollando una aplicación que es el núcleo de su negocio, como Instagram, puede crear una aplicación nativa, proporcionar la mejor experiencia para sus usuarios o ir híbrida, de modo que esté disponible para la mayor cantidad de usuarios, en tantos dispositivos como sea posible.