¿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:
- Progressive Funcionan para cada usuario, independientemente del navegador que elijan, ya que están diseñadas con mejoras progresivas como principio básico.
- Responsive Caben en todos los formatos: TV, Escritorio, Teléfonos, Tablets y cualquier otra tecnología que pueda surgir.
- Independientes de conexión El Service Worker les permite trabajar incluso con falta de conexión a internet o en redes de mala conexión internet.
- Lucen como aplicaciones La experiencia de los usuarios es similar a las aplicaciones nativas, incluyendo navegación e interacciones.
- Siempre actualizadas Siempre que puedan se actualizaran sin necesidad de acción del usuario.
- Explorables Gracias al manifiesto, los motores de búsqueda pueden identificarlas como aplicaciones y mostrarlas como tal.
- Interactivas Permiten características como notificaciones push que pueden ser útiles para interacción con los usuarios.
- Instalables Pueden ser «instaladas» como si fuesen applicaciones del app store y ser ubicadas en la pantalla principal.
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.