¿Puede HTML5 reemplazar las aplicaciones de Android e iOS?
El auge de un gran número de nuevos dispositivos móviles ha cambiado el futuro de Internet. En términos de desarrollo tecnológico, ¿HTML5 reemplazará a las aplicaciones? ¿O hasta qué punto puede sustituir a las aplicaciones? En la especificación HTML5, se agregó soporte para cámara, brújula magnética e información de GPS. Muchos navegadores emergentes también han comenzado a admitir estas nuevas funciones. ¿Puede HTML5 unificado reemplazar los costos duales del desarrollo paralelo para Android e iOS? La siguiente es una traducción de un artículo de Michael Mahemoff que proporciona un análisis detallado de si HTML5 puede reemplazar las aplicaciones de Android e iOS.
Introducción
Las aplicaciones móviles (apps) y HTML5 son las tecnologías más populares en este momento y existe una superposición considerable entre las dos. Las páginas web HTML5 que se ejecutan en navegadores de dispositivos móviles también se pueden volver a empaquetar en aplicaciones que se ejecutan en diferentes plataformas. Ahora que muchos navegadores tienen un buen soporte multiplataforma, las soluciones web HTML5 son más convenientes para los desarrolladores. Complételo una vez y úselo en múltiples plataformas. ¿Pero es esto realmente posible? Todavía existen muchas razones necesarias por las que los desarrolladores eligen el desarrollo de aplicaciones. Al parecer, mucha gente ya lo está haciendo. En este artículo analizaremos en detalle los pros y los contras de ambas opciones.
Rico en funciones
Lado positivo: se pueden desarrollar funciones más ricas en la aplicación
Dividimos las funciones móviles en dos categorías. El programa en sí y la integración del programa en el sistema. Por ejemplo, en Android, agregue íconos de widgets o recordatorios de notificaciones, etc. No hace falta decir que eso es seguro.
Vista contraria: las aplicaciones son bastante potentes, pero la red también está haciendo lo mismo
De hecho, muchas aplicaciones nativas implementan funciones que HTML5 no puede igualar. No importa qué tan buena sea tu web, si está atrapada en una zona de pruebas sin soporte para cámara, hay muchas situaciones en las que aún así no funcionará tan bien como debería. Afortunadamente, ya no existen tales restricciones en la zona de pruebas. Si necesita su página web para tomar fotografías, puede crear una aplicación que tome fotografías y luego empaquetar su página web en esta aplicación. El marco PhoneGap de código abierto hace precisamente eso. De esta forma, tanto los widgets como las alertas del teléfono funcionarán correctamente.
Pero el problema con este desarrollo híbrido es que añade complejidad y no se ejecuta directamente en el navegador como la Web tradicional. Me temo que este problema no se solucionará en el corto plazo. Afortunadamente, los estándares web están evolucionando rápidamente y los navegadores avanzados han seguido el ritmo. Los navegadores iOS también admiten WebSocket y la detección de orientación del dispositivo.
Los dispositivos móviles en general están en constante evolución y la Web cambia con la misma rapidez. En términos de navegadores de escritorio, actualmente hay cinco principales desarrolladores de navegadores que mejoran los estándares existentes y los enriquecen con nuevas funciones. Como resultado, las aplicaciones nativas están creciendo rápidamente y la web está cerrando la brecha.
Eficiencia operativa
Ventajas: las aplicaciones nativas son más rápidas
Las aplicaciones nativas no tienen cuellos de botella y pueden llamar directamente a la aceleración de GPU y utilizar subprocesos múltiples.
Contador: Las redes actuales son más rápidas y la mayoría de las aplicaciones no necesitan que sean tan rápidas.
Esto está un poco desactualizado dado que Javascript V8 provocó un gran salto en las velocidades web cuando se lanzó Chrome. Ahora, los cálculos son cada vez más rápidos:
Los motores de procesamiento de imágenes ya utilizan aceleración de red. Ahora también se implementa la aceleración de hardware.
Aquellos que buscan desarrollar juegos 3D no necesitan mover un dedo, pero para noticias simples, correo electrónico, gestión del tiempo y redes sociales, todos están disponibles en la web. Pruebe la herramienta de prueba de rendimiento móvil de Steve Souders. Además, cada vez se integran más marcos con WebGL para aprovechar OpenGL. Por ejemplo, ImpactJS puede ayudar a desarrollar juegos JS.
Las Apps Nativas utilizan potentes lenguajes de programación (Java, Objective C, C++). Es adecuado para escribir programas complejos, está históricamente probado y tiene una API rica. Se puede probar fácilmente en un entorno de escritorio mediante un emulador. Los programas de red, por otro lado, requieren un tiempo de ejecución y una gran cantidad de navegadores, lo cual es un dolor de cabeza.
Desventajas: Las redes suelen ser más sencillas, especialmente si se requiere compatibilidad con diferentes dispositivos.
Al principio, la Web se limitaba a la presentación de documentos, no a las aplicaciones programáticas. JS parecía haber sido introducido sólo en las últimas dos semanas, pero con JS, el mundo de la Web fue inmediatamente diferente. Sin mencionar que la web no es solo estática, HTML5, CSS3, EcmaScript Harmony (¿quién sabe qué es esto?) (¿quién sabe qué es esto?) son todos muy útiles para los desarrolladores. Te gusta C++, Java, JavaScript, esa es tu preferencia personal y se basa en el código que has guardado. Pero ahora nadie puede negar que JavaScript también está en la misma línea de partida que el primero.
La incompatibilidad (fragmentación) entre navegadores/tiempos de ejecución y viceversa también se aplica a la producción de aplicaciones. Después de escribir aplicaciones de Android en Java y luego tener que lidiar con iOS Objective C, sería un gran alivio poder escribir un programa que se ejecute tanto en Android como en iOS de inmediato. Ni siquiera hemos mencionado todavía WebOS, BlackBerry y Windows Mobile. Por supuesto, esto es sólo teórico. Si desea que su programa se ejecute bien en todas las plataformas, debe realizar muchas depuraciones y compromisos. Lo mismo ocurre con muchas aplicaciones nativas. Diferentes versiones de sistemas operativos, diferentes dispositivos.
La llamada fragmentación de Internet siempre ha existido. Pero la buena noticia es que existen muchas soluciones excelentes y la biblioteca Modernizr, cuando se usa correctamente, puede ayudarlo a obtener compatibilidad con una gran cantidad de dispositivos convencionales, independientemente del sistema o la marca. Consulte nuestra demostración de Google IO 2011.
Experiencia de usuario
Positiva: las aplicaciones nativas son más relevantes para la plataforma original
Una de las definiciones de experiencia operativa es que los usuarios quieren operar de una manera que sea consistente y consistente con el sistema. Una forma unificada de hacer las cosas en su programa. Las diferentes plataformas tienen algunas convenciones. Por ejemplo, qué sucede cuando mantienes presionado un botón. No se puede esperar satisfacer las necesidades de todos los usuarios con una aplicación HTML5 unificada.
Además, la sensación general de la plataforma se puede coordinar mediante el uso de las bibliotecas de software propias de la plataforma. Las llamadas directas al Platform Toolkit le brindan acceso directo a soporte completo y gratuito.
Desventaja: Tenemos nuestras propias tradiciones en la Web, y si quieres que la Web se sienta como la plataforma original, puedes hacerlo.
Como dije antes, la Web es el El método de desarrollo es crear una versión que sea universalmente aplicable a todas las plataformas y luego mejorarla continuamente para diferentes plataformas. Si bien estas mejoras se centran principalmente en la funcionalidad, puede seleccionar algunas plataformas que más le interesen para optimizarlas. Similar a las pruebas del navegador. En los foros de tecnología, los técnicos frustrados a menudo se quejan de este problema. Hay tantas versiones diferentes de navegador. Pero si priorizas dos o tres plataformas principales, vale la pena dedicar un poco más de tiempo a optimizarlas.
La red debe tener su propio sentido de funcionamiento. También podríamos decir que los diferentes navegadores y entornos operativos predeterminados crean una "sensación web" única. Desde una perspectiva más amplia, este es en sí mismo un enfoque aprobado por los usuarios. Además, hay muchas historias de éxito que funcionan bien sin seguir el comportamiento móvil nativo. ¿Piensas en la interfaz de tu juego móvil favorito? Lo mismo ocurre con muchas aplicaciones más tradicionales, como el cliente de Twitter.
Canales de distribución
Positivo: Las aplicaciones nativas son más fáciles de popularizar
Los mecanismos de distribución de aplicaciones como Google Play y Apple Store han sido imparables en los últimos años. impulsando todo el desarrollo móvil de la industria. Todo programador puede publicar aplicaciones en el mercado. Los usuarios acuden al mercado para navegar, buscar y recibir recomendaciones. No sólo eso, sino que si tu programa es lo suficientemente bueno, las calificaciones de los usuarios existentes te ayudarán a convencer a más clientes nuevos.
Visión contraria: de hecho, Internet le facilita llegar a los clientes
Encontrar contenido a través de Internet es una forma madura y confiable. Con las URL, cada contenido publicado tiene una dirección separada, incluidas las aplicaciones publicadas en el sitio web. Los motores de búsqueda ayudan a descubrir contenido, otros sitios web proporcionan enlaces y hay sitios web clasificados similares a los mercados de aplicaciones. Los usuarios también pueden compartir su enlace por correo electrónico, mensaje de texto o en sitios de redes sociales. Los enlaces de su aplicación se pueden abrir directamente en diferentes dispositivos.
Actualmente no existe un sistema de calificación unificado en Internet, pero esto está cambiando. Desplácese hacia abajo para ver.
Tarifas
Lado positivo: Cargos de solicitud: en línea con la voluntad de Dios y cerca del sustento de las personas
"Un niño de seis años presentó una solicitud en mediodía, y costó 3 yuanes cada uno. ¿Cuántos se vendieron? Últimamente escucho y veo a menudo noticias como ésta. Varios fabricantes, grandes y pequeños, también se han subido al tren, esperando ganar dinero. Los puntos del fabricante de aplicaciones ayudan a los desarrolladores a cobrar directamente. La forma más sencilla es cobrar una tarifa única. También hay cargos separados o cargos de suscripción en la aplicación, que pueden ayudar a los desarrolladores a obtener retornos estables y a largo plazo.
Además, la publicidad y el patrocinio de sitios web tradicionales también son aplicables en las aplicaciones.
Visión contraria: Ganar dinero en un sitio web nunca ha sido un problema. Ahora, las oportunidades están aumentando
La red puede ser una fuerza impulsora en la sociedad actual, y poder cosechar recompensas de diversas maneras es fundamental. Aunque el uso pago no es común. Pero el modelo SaaS se ha vuelto bastante popular. Los ejemplos exitosos incluyen Google Apps, la familia de productos 37Signals y versiones pagas de varios tipos de correo electrónico. Además, la carga directa no es el único modelo para aplicaciones de red. La publicidad, los enlaces de afiliados, los patrocinios y la promoción cruzada de otros productos y servicios son opcionales.
Los desarrolladores web, si ven un mercado donde pueden ganar dinero directamente con él, en lugar de simplemente enviar su URL al mercado, ¿qué tal si crean una aplicación shell que pueda navegar por la web y conectarse a la suya? red ? Hoy en día existen cientos de aplicaciones en el mercado que pueden hacer precisamente eso. Algunas de estas aplicaciones están empaquetadas tan bellamente que ni siquiera se nota que son un programa web.
¿El mercado de aplicaciones apoyará directamente los programas de red en el futuro? Es difícil saberlo ahora, pero el año pasado Google creó una tienda web Chrome que, aunque todavía sólo está disponible en computadoras de escritorio, ha despertado el interés de los proveedores de navegadores. Aunque se trata todavía de un concepto preliminar, parece prometedor.
Conclusión
Aún no hay un ganador claro. Algunos son buenos para aplicaciones y otros son buenos para html5. Tal como están las cosas ahora mismo, las aplicaciones nativas son sin duda una opción importante. El desarrollo mixto mencionado anteriormente puede ser un buen compromiso. Cuando tenga acceso a la red, use su aplicación para llamar a la red. Funciones que no son posibles en la web se pueden desarrollar a través de aplicaciones.
Si elige un enfoque de red, preste atención a los estándares de la red y sus mejoras continuas. La ventaja de la tecnología de red en sí es que es compatible con una gran cantidad de sistemas operativos y dispositivos diferentes. En una nota negativa, también puedes pensar que está fragmentada, pero la web lo abarca todo.