¿Qué son las PWA (Progressive Web Apps)? Virtudes y contras

Una Aplicación Web Progresiva o Progressive Web App (PWA) es una aplicación web que usa las capacidades de los navegadores modernos para brindar a los usuarios una experiencia muy similar a la de aplicaciones nativas sin dejar de ser aplicaciones web. Estas aplicaciones tienen que cumplir ciertos requerimientos como: estar desarrolladas orientadas a servidores, disponibles a través de una URL e indexadas por los motores de búsqueda como Google.

Un poco de historia

Allá por el año 2005 las tecnologías de desarrollo web se empezaron a mover de sitios estáticos a sitios dinámicos dividos en una parte orientada a servidor (PHP, ASP.NET) y otra orientada al cliente (AJAX). Esto, junto con el impulso del diseño web responsivo hizo que las desarrolladores comenzaran a desarrollar aplicaciones web.
Siempre la brecha entre aplicaciones webs y aplicaciones nativas fue que estas ultimas se diferenciaban por brindar una experiencia de usuario muy superior en lo que respecta a tiempos de carga, explotación del hardware (como cámara, sensores, etc..).
Con el avance de la capacidad de procesamiento de los dispositivos moviles y de la evolución de los navegadores la brecha fue disminuyendo cada vez mas, al punto de hacer que comiencen a surgir aplicaciones híbridas.

Aplicaciones Híbridas

Las aplicaciones híbridas son aplicaciones que siguen la apariencia de una aplicación nativa, que se descarga de un App Store y se instala en el dispositivo. Sin embargo, en su interior son programadas en lenguajes web (Javascript, CSS3, HTML) y en su mayoría consumen datos de algún servicio web.

El resultado

En el año 2015, con el avance de los navegadores modernos y de los sistemas operativos para moviles, los ingenieros de Google Chrome comenzaron a introducir el termino de «Progressive Web Apps» para describir aplicaciones que aprovechan las ventajas modernas como «Service Workers» y «Web App Manifests» que entregan al usuario las siguientes virtudes:

Todas estas caracteristicas hacen que la diferencia entre una app nativa y una PWA sean mínimas, pero hay una ventaja muy grande a favor de PWA: El usuario no necesita instalar nada.