La principal ventaja de las aplicaciones nativas es que pueden acceder a todas las API nativas que una plataforma podría ofrecer (contactos, flash de cámara, SMS, telefonía, red, bluetooth, sensores, tomas sin procesar ...) mientras que una aplicación web progresiva no puede (todavía) ya que están limitados por las capacidades web estándar.
El objetivo de las aplicaciones web progresivas es ampliar estas capacidades para cubrir los casos más críticos. En este estado de ánimo, eche un vistazo a Progressive Web Apps: Escaping Tabs Without Loosing Our Soul, donde puede encontrar una lista de lo que debe ofrecer una aplicación web progresiva:
- Responsive: para adaptarse a cualquier factor de forma
- Independiente de la conectividad: mejorado progresivamente con Service Workers para que puedan trabajar sin conexión
- Interacciones similares a aplicaciones: adopte un modelo de aplicación Shell + Content para crear navegaciones e interacciones de aplicaciones
- Fresh: Transparente y siempre actualizado gracias al proceso de actualización del Service Worker
- Seguro: servido a través de TLS (un requisito de Service Worker) para evitar espionaje
- Detectable: se pueden identificar como "aplicaciones" gracias a los manifiestos del W3C y al alcance de registro del trabajador de servicio que permite a los motores de búsqueda encontrarlos.
- Reenganchable: puede acceder a las IU de reenganche del sistema operativo; por ejemplo, notificaciones push
- Instalable: en la pantalla de inicio a través de las indicaciones proporcionadas por el navegador, lo que permite a los usuarios "conservar" las aplicaciones que encuentran más útiles sin la molestia de una tienda de aplicaciones.
- Vinculables: lo que significa que son de cero fricción, instalación cero y fáciles de compartir. El poder social de las URL es importante.
Desde estos puntos, lo enlazable fue una de las primeras características importadas por las aplicaciones nativas de Open Web en forma de enlaces profundos móviles .
Pero mención especial merecen el combo fresh + installable ya que representa una de las principales ventajas de la Web como plataforma frente a las alternativas nativas . Aquí instalable significa que aparece en su pantalla de inicio. No significa que deba pasar las etapas de descarga e instalación. Abres una URL o descubres un servicio mientras navegas y listo: aparece en tu pantalla de inicio .
Fresh se refiere a cómo funciona una web normal, que ofrece una carga instantánea y actualizaciones sin problemas. No se te pide instalar una actualización desde la web de YouTube, se despliega y la consumes la próxima vez que la visites.
No estoy hablando de los beneficios de los puntos restantes porque estabas preguntando por las diferencias y, por ejemplo, volver a interactuar es algo que las aplicaciones nativas ya tienen a través de servicios push y notificaciones y ahora las aplicaciones web se han puesto al día.
Otra pregunta relacionada y clave es qué plataforma es más adecuada para sus necesidades. Si no está accediendo a capacidades especiales de hardware, la Web debería ser suficiente y eligiendo la Web, está libre de los mercados, los ecosistemas propietarios y, por cierto, puede garantizar cierto grado de ubicuidad e interoperabilidad .
Como notas finales, te recomiendo que navegues por www.flipkart.com desde un móvil con Chrome. Es bastante impresionante: sin errores, navegación fluida, sensación de aplicación. Desconecte y seguirá funcionando. Un ejemplo verdaderamente real de esa publicación. Agregue la aplicación a la pantalla de inicio y la próxima vez que la abra, la experiencia será aún mejor.
Puede echar un vistazo a Firefox OS , así como un ejemplo de cómo llevar más API de plataforma a la Web estándar (con más o menos éxito).