Una aplicación web progresiva (PWA) es un sitio web que se ve y se comporta como si fuera una aplicación móvil. Las PWA están diseñadas para aprovechar las funciones nativas de los dispositivos móviles, sin necesidad de que el usuario final visite una tienda de aplicaciones, realice una compra y descargue el software localmente. En cambio, una PWA se puede ubicar con una consulta de motor de búsqueda y se puede acceder a ella inmediatamente a través de un navegador.
Las PWA eliminan la necesidad de que los comerciantes de comercio electrónico desarrollen aplicaciones nativas para múltiples sistemas operativos móviles. Al igual que los videos de YouTube, el contenido de PWA se descarga progresivamente, lo que brinda al usuario final una mejor experiencia de usuario que un sitio web tradicional que utiliza un diseño receptivo. El término "aplicaciones web progresivas" fue acuñado en 2015 por la diseñadora Frances Berriman y el ingeniero de Google Chrome, Alex Russell.
El objetivo de las PWA es difuminar la distinción entre las aplicaciones nativas y la web móvil al llevar la mayoría de los beneficios de las aplicaciones móviles nativas al navegador móvil. Las PWA utilizan tecnologías basadas en estándares y se ejecutan en un contenedor que es seguro y accesible para cualquier persona en la web. Pueden enviar notificaciones push web, trabajar sin conexión y ser accesibles desde la pantalla de inicio, al igual que una aplicación móvil de una tienda de aplicaciones.
Las PWA también pueden aprovechar las API y los complementos del navegador para garantizar que la implementación y el mantenimiento de un sitio web sea lo más fácil posible. Otro beneficio que las PWA han heredado de los sitios web tradicionales es el uso de URI para indicar el estado actual. Esto permite que la aplicación web retenga o recargue su estado cuando el usuario marca o comparte la URL de la aplicación.
La interfaz de usuario de una aplicación web progresiva debe tener el tamaño correcto para el factor de forma y el tamaño de la pantalla del dispositivo. Además, debería verse como una aplicación nativa y estar construida sobre un modelo de shell de aplicación. La PWA debería tener pocas actualizaciones de página y la aplicación debería funcionar en áreas de baja conectividad o incluso sin conexión. Además, el nuevo contenido debería estar disponible en la aplicación. Debido a que las solicitudes de red se pueden interceptar, la aplicación debe alojarse en HTTPS para evitar ataques de intermediario (MiTM).