Aplicación Web Progresiva
La aplicación web progresiva (PWA, por sus siglas en inglés del término Progressive Web App) es una app que se entrega por medio de la web, a diferencia de las aplicaciones nativas, que son empaquetadas y distribuidas a través de tiendas de apps (App Store, Google Play, Microsoft Store, Amazon AppStore, Opera Mobile Store, entre otras).
La aplicación web progresiva es una nueva filosofía de desarrollo de sitios web que tiene como producto final un tipo de app que integra un conjunto de ciertos componentes tecnológicos perfectamente definidos, aplicación web que luce, responde y se desempeña como cualquier app móvil nativa de las que venimos usando cotidianamente desde la llegada de las tabletas y los teléfonos inteligentes.
Como filosofía de desarrollo de software, el enfoque PWA se caracteriza por esforzarse en satisfacer el siguiente conjunto de atributos en la aplicación:
- Responsiva
- Opera online y offline
- Se desempeña como una app nativa
- Fresca
- Segura
- Visible
- Instalable
- Vinculable
Una aplicación web progresiva es un tipo de app que funciona para todos los usuarios sin importar qué navegador o dispositivo móvil estén usando. Debe ser responsiva, segura, se puede vincular desde cualquier página web y se comporta como cualquier aplicación nativa cuando es usada en un dispositivo móvil o tableta.
Para que una aplicación califique como PWA, debe cumplir satisfactoriamente los siguientes tres criterios de referencia:
- Debe ejecutarse bajo HTTPS
- Debe incluir un Web App Manifest
- Debe hacer uso de los Service Workers
El manifiesto de la aplicación web (web app manifest) es un simple archivo JSON que brinda a los desarrolladores un lugar específico para registrar información asociada a una aplicación web. Estos metadatos incluyen, pero no se limitan a, el nombre de la aplicación web, los enlaces a los íconos y la URL por defecto cuando un usuario inicia la aplicación web. El manifiesto también permite a los desarrolladores declarar una orientación predeterminada para su aplicación web, además de proporcionar la posibilidad de configurar el modo de visualización de la aplicación (por ejemplo, en pantalla completa). Además, el manifiesto permite que un desarrollador asocie una app a una URL específica. Usando estos metadatos, los navegadores y sus agentes de usuario pueden proporcionar a los desarrolladores medios para crear experiencias de usuario que sean similares a las de una aplicación nativa.
Los service workers consisten básicamente en un script (código javascript) que mantiene su ejecución independientemente de si la aplicación web está abierta o no, lo cual nos permite mantener una app trabajando en segundo plano. Un service worker se ejecuta por separado del navegador y su función principal es interceptar solicitudes enviadas por el usuario para iniciar una acción en el servidor, almacenar en caché o recuperar recursos del mismo y entregar mensajes de inserción. La funcionalidad de un service worker sólo está disponible en páginas a las que se accede a través de HTTPS.
Desarrollo de Aplicaciones Web Progresivas (PWA) |