Una aplicación web progresiva es un sitio web con funcionalidades que le permiten comportarse de forma similar a una aplicación instalada: se puede añadir a la pantalla de inicio de un dispositivo, ejecutar sin la interfaz del navegador, funcionar sin conexión o con conexiones inestables y, en entornos compatibles, recibir notificaciones push. Se trata de un conjunto de funcionalidades aplicadas a un sitio web convencional, más que de una tecnología independiente.
Los fundamentos técnicos son un service worker, un script que se ejecuta independientemente de la página y que puede interceptar las solicitudes de red y servir respuestas almacenadas en caché, y un manifiesto de aplicación web que describe cómo debe mostrarse la aplicación una vez instalada. Ambos requieren que el sitio se sirva a través de una conexión segura. Además de esto, las funcionalidades son progresivas: un navegador compatible ofrece la experiencia mejorada, mientras que otros usuarios ven el sitio web estándar.
La gestión de conexiones sin conexión y poco fiables es la funcionalidad con mayor valor práctico. Un service worker puede almacenar en caché la interfaz de la aplicación y el contenido visto anteriormente, de modo que un visitante con una conexión móvil intermitente ve el contenido en lugar de una página de error, y en visitas posteriores se carga desde la caché en lugar de desde la red. Para usuarios con mala conectividad, esto supone una mejora sustancial, no una simple optimización.
La instalación elimina las dificultades de la distribución en tiendas de aplicaciones, que es el principal argumento comercial. No hay proceso de envío, ni demoras en la revisión, ni comisiones de la tienda, y las actualizaciones se implementan de inmediato sin esperar a que los usuarios las instalen. Para las empresas cuya aplicación no requiere una integración profunda con la plataforma, esto evita un costo recurrente significativo y la dependencia de los administradores de la plataforma.
Las diferencias en las capacidades de las plataformas siguen siendo la principal limitación, y su reducción ha sido desigual. La compatibilidad con la instalación, las notificaciones y las funciones en segundo plano varía entre plataformas; históricamente, iOS ha sido más restrictivo que Android, y los límites de almacenamiento y las políticas de eliminación difieren. Es necesario evaluar qué funcionalidades están realmente disponibles en las plataformas que utiliza el público objetivo, en lugar de asumir la paridad, antes de adoptar un enfoque que dependa de una capacidad específica.
La visibilidad de la aplicación implica una compensación real en ambos sentidos. La distribución web permite acceder a la aplicación mediante un enlace y encontrarla en los resultados de búsqueda, lo que supone una ventaja considerable frente a la distribución en tiendas de aplicaciones, donde la visibilidad depende del posicionamiento dentro de la tienda. Sin embargo, también significa que la aplicación no aparece en la tienda, donde muchos usuarios buscan aplicaciones, y no existe un equivalente a la solicitud de instalación que ofrece una ficha en una tienda.
Las notificaciones push merecen una evaluación más crítica de la que suelen recibir. Si bien esta función es realmente valiosa para mensajes urgentes y relevantes para cada usuario, se abusa con frecuencia de ella para enviar contenido promocional no previsto. Dado que el permiso se solicita una sola vez y su rechazo es prácticamente definitivo, solicitarlo antes de establecer cualquier valor genera rechazos que no se pueden recuperar posteriormente cuando hay algo que vale la pena enviar.
El almacenamiento en caché de los service workers conlleva sus propios riesgos que requieren una gestión cuidadosa. Una estrategia de almacenamiento en caché que sirve contenido obsoleto indefinidamente provoca que los usuarios vean información desactualizada sin una forma clara de actualizarla, y un service worker mal implementado puede ser difícil de eliminar de los dispositivos que ya lo tienen instalado. El control de versiones, las estrategias de actualización y un mecanismo para forzar la actualización son imprescindibles, no opcionales.
Debido a que el enfoque abarca la arquitectura de front-end, la estrategia de almacenamiento en caché y las decisiones de distribución, es una decisión de producto más que una decisión técnica. En la práctica, el conjunto de capacidades se elige dentro de desarrollo de productos En contra de las necesidades reales de la audiencia, las implicaciones del almacenamiento en caché y la entrega se encuentran con rendimiento web trabajo, y la compensación de descubrimiento entre la distribución web y la distribución en tienda normalmente se sopesa junto con la estrategia de canal más amplia en Planificación estratégica y consultoría.