Qué es una Progressive Web App (PWA)

Proporciona una experiencia de usuario similar a las aplicaciones nativas

Publicado por Aunitz Giménez el 24 abril 2019

Las aplicaciones web progresivas (PWA, por sus siglas en inglés) son aplicaciones web que se cargan como páginas web o sitios web normales, pero ofrecen una experiencia de usuario que las asemeja a las aplicaciones nativas.

Son capaces de ofrecer funcionalidades como trabajar sin conexión, notificaciones push o el acceso al hardware del dispositivo. Tradicionalmente estas funcionalidades sólo estaban disponibles para aplicaciones nativas.

Las PWA no son una tecnología en sí misma, sino un conjunto de tecnologías disponibles en los navegadores web modernos. El concepto de PWA es más bien un término “marketiniano” que fue acuñado por primera vez por Google en 2015. De hecho, Google es la empresa que con más fuerza ha promovido este concepto y cuenta con una completa web que lo documenta en detalle.

Funcionalidades que se pueden implementar en una PWA

Al tratarse de un variado conjunto de tecnologías, hay que tener en cuenta que una determinada PWA no tiene que implementarlas todas. Sólo aquellas que tengan sentido para el proyecto en concreto. Además, se trata de tecnologías que podemos utilizar en cualquier aplicación o sitio web, sin tener siquiera que denominarla como PWA.

La lista es amplia y va creciendo continuamente. Muchas de estas funcionalidades están todavía en fase experimental y, en gran parte, sólo Chrome las soporta totalmente.

A continuación, muestro un listado de algunas de las más interesantes en el momento de escribir este artículo. Acompañado de enlaces para poder profundizar en su conocimiento.

Funcionalidades relacionadas con el hardware del dispositivo

  1. Acceso a la geolocalización (Geolocation API).
  2. Acceso a los sensores de movimiento y orientación: acelerómetro, giroscopio y brújula.
  3. Acceso a dispositivos conectados mediante USB (WebUSB API).
  4. Posibilidad de conectarse a otros dispositivos mediante Bluetooth e interactuar con ellos (Web Bluetooth API).
  5. Grabación de audio.
  6. Captura de imágenes (acceso a la cámara).
  7. Grabación de vídeo.

Funcionalidades que facilitan la vida al usuario (mejoran la usabilidad)

  1. Permiten “instalar” la aplicación en el móvil (Add to home screen, A2HS).
  2. Sincronización en segundo plano (Background Sync). Permite que las PWA se actualicen, aunque el usuario no las tenga abiertas.
  3. Capacidades offline. La PWA puede guardar en local todo lo necesario para seguir funcionando, aunque pierda la conexión a internet.
  4. Notificaciones push (Web Push Notifications). Permite que las PWA envíen notificaciones push al dispositivo, aunque el usuario no las tenga abiertas.
  5. Una API que facilita los procesos de login (Credential Management API).
  6. Facilidades para ejecutar pagos sin tener que rellenar formularios web (Payment Request API).
  7. Facilidades para compartir contenido en redes sociales (Open Graph Protocol para Facebook y las Twitter Cards para Twitter).