¿Por qué no hay más desarrolladores de aplicaciones móviles creando aplicaciones basadas en la web?

Se pueden hacer muchas cosas útiles en el navegador moderno. Sin embargo, hay algunas advertencias cuando se trata del sabor móvil de los navegadores:

  1. Falta de verdadera integración de GPU y rendimiento gráfico lento. Solo recientemente los navegadores de escritorio modernos (IE / Chrome) obtuvieron esta capacidad. Esto provoca que el rendimiento de las operaciones de IU modernas bastante básicas: transición de pantalla, aparición de widgets, animación de sprites, efectos gráficos en 3D sea deficiente. Me gusta, realmente pobre. Los usuarios de teléfonos inteligentes (especialmente iPhone están realmente acostumbrados a mejorar la experiencia que obtienen ahora, esto es especialmente para usuarios de iPhone. Realmente puedes ver una diferencia inmediata entre la aplicación móvil y la web a este respecto cuando los ves. Me gusta, inmediatamente, de verdad.
  2. Capacidad fuera de línea difícil de incorporar. Estamos hablando de los dispositivos MÁS CONECTADOS aquí … Y MAYOR es la palabra clave aquí. Esto va a cambiar pronto con los marcos y herramientas modernos (GWT y similares), pero es una historia completamente diferente cuando tienes una lógica del lado del servidor ya rica e implementada, y tienes que dar un subconjunto de esta experiencia mientras estás desconectado. Cuando era un empleado de Google> hace 3 años, probamos internamente las primeras versiones de Gmail que funcionaban sin conexión. Es cierto que estaba trabajando en Gears que fueron abandonados mientras tanto y reemplazados por HTML5, pero hay una cosa que sigo experimentando hasta hoy. Apesta. Apesta tanto que lo intenté varias veces y cada vez que lo hice, me tomó 10-20 minutos darme cuenta de cuánto apestaba y cuánto impactaba mi experiencia en línea. Y escuchamos ahora que estará disponible este verano. En pocas palabras: Google tardó> 3 años en hacer que la versión fuera de línea de Gmail (su producto estrella) estuviera finalmente disponible para todas las personas y estable. Google es una de las empresas de ingeniería más avanzadas en las que trabajé. Imagine cuánto tiempo le puede llevar a una empresa promedio.
  3. En cuanto al negocio: ¿cuánto cree que invertirá Apple en deshacerse del control del control total que tienen sobre el mercado de aplicaciones? Por supuesto, es diferente con Google, que tiene un modelo de ingresos completamente diferente, pero Apple sigue siendo un gran jugador en ese mercado. Creo que para Apple esto no es obvio. Harán todo lo posible para fingir que están abiertos para la web, pero lo harán casi tan buena experiencia como con las aplicaciones. Por un lado: ahora no hay forma de deshacerse de la barra de URL en el navegador Safari / Android, puede ocultarla, pero cuando arrastra hacia abajo la pantalla siempre puede revelarla. Y muchas cosas pequeñas como esta para que no sea realmente útil usar aplicaciones web puras. Hay una historia diferente para las aplicaciones híbridas, donde parte de la lógica está en la web pero la aplicación en sí es nativa (¡incluido el pago!), Abriendo algunas páginas en una vista web. Este es probablemente el camino a seguir para el futuro a corto y mediano plazo.
  4. No hay mucho que pueda ganar ahora con el estándar HTML5 (todavía). La preparación de aplicaciones consiste en: Análisis-> Diseño-> Implementación -> Pruebas -> Entrega. Seguir la ruta HTML5 solo aborda la implementación y, bueno, no es realmente buena en mi humilde opinión. HTML5 todavía no es un estándar “establecido en piedra”. Puede pasar más tiempo desarrollando aplicaciones HTML5 que se ejecutarán en todas partes (bueno, casi) que desarrollando la misma aplicación en paralelo para varias plataformas. Eventualmente, debe diseñarlo para que se vea bien y conveniente para cada plataforma, debe probarlo en todas las plataformas de todos modos y realmente no lo evitará. Cuando desarrolle aplicaciones nativas, puede confiar hasta cierto punto en API, entorno, capacidades bien definidas, etc. Con HTML5, está prácticamente loco … Hasta que haya herramientas realmente decentes y útiles (jquerymobile es un buen comienzo), esto será más complejo para desarrollar la aplicación una vez en HTML que varias veces de forma nativa.

Hay tres posibles razones para que los desarrolladores creen aplicaciones nativas en lugar de sitios web móviles o aplicaciones web:

  1. Marketing más eficiente Cuando coloca su aplicación dentro de una AppStore, está dentro de una economía curada de otras aplicaciones. Se puede encontrar mejor como si solo estuviera disponible en algún lugar de la web. Obtendrá enlaces cruzados de aplicaciones similares. Además, su aplicación tiene la posibilidad de aparecer dentro de la tienda, por lo que se disparan sus descargas.
  2. Equipo de desarrolladores especializado en el desarrollo de aplicaciones nativas Su equipo de desarrollo podría tener mucha experiencia en tecnologías utilizadas para el desarrollo de aplicaciones nativas y, por lo tanto, preferiría hacer aplicaciones nativas. Es posible que también tenga algo de historia en el desarrollo de aplicaciones en tecnologías similares (como Mac OS vs iOS), puede que ya haya desarrollado bibliotecas especiales que faciliten un mayor desarrollo que pueda usar.
  3. Integración estrecha con el sistema operativo móvil La aplicación puede necesitar acceso directo al sistema operativo o plataforma subyacente. Aunque la mayoría de las tareas ya se pueden resolver utilizando tecnologías web como HTML5, uno podría tener requisitos especiales, que solo una aplicación nativa puede resolver. Y también la velocidad puede ser un problema. El acceso directo a la API de gráficos nativos suele ser mucho más rápido que sus equivalentes web. Entonces, para el último juego de carreras de disparos en primera persona de alta gama, debes hacerlo de forma nativa. Esto también es cierto para cualquier otra pieza de hardware dentro de su dispositivo móvil.

Si bien esta es la verdad básica, también hay otra: muchos desarrolladores todavía no tienen idea de lo que es posible dentro de un navegador hoy en día. Tienes que invertir mucho más tiempo para aprender sobre estas posibilidades y cómo crear un código realmente eficiente. Pero confía en mí, ¡vale la pena!

Algunas razones posibles: costo y complejidad (las habilidades requeridas para implementar dicha solución pueden ser más raras, y se puede necesitar más investigación original), rendimiento (los navegadores de teléfonos inteligentes son lentos), dependencia de una conexión de red permanente.