¿Qué son las aplicaciones web progresivas?

Las aplicaciones web progresivas pueden empujar la Web móvil hacia adelante, llevar la paridad a la web y las aplicaciones nativas, y ayudar a los desarrolladores móviles a llegar a más usuarios más allá de los límites de las tiendas de aplicaciones.

Todo eso suena genial ... pero, ¿qué son las aplicaciones web progresivas, exactamente?
"Una aplicación web progresiva utiliza capacidades web modernas para ofrecer una experiencia de usuario similar a la aplicación". - Aplicaciones web progresivas
Las aplicaciones nativas de la tienda de aplicaciones hacen cosas como enviar notificaciones push, trabajar sin conexión, verse y sentirse como una aplicación (como Apple y Google las han imaginado), cargar en la pantalla de inicio, etc., etc. Las aplicaciones web móviles a las que se accede desde un navegador móvil, en comparación, históricamente no han hecho esas cosas. Las aplicaciones web progresivas lo solucionan con nuevas API web, nuevos conceptos de diseño y nuevas palabras de moda.

Para ser claro, estoy hablando de aplicaciones web móviles del navegador.


Las aplicaciones web progresivas traen las características que esperamos de las aplicaciones nativas a la experiencia del navegador móvil de una manera que utiliza tecnologías basadas en estándares y se ejecutan en un contenedor seguro al que puede acceder cualquier persona en la web.

En general, las aplicaciones web progresivas describen una colección de tecnologías, conceptos de diseño y API web que funcionan en conjunto para proporcionar una experiencia similar a la aplicación en la web móvil. Veamos algunos de los principios fundamentales de las aplicaciones web progresivas.

Trabajadores de servicio (Service Workers)

Los trabajadores de servicio son una tecnología increíblemente poderosa e igualmente confusa detrás de una aplicación web progresiva. Potencia la funcionalidad fuera de línea, notificaciones push, actualización de contenido en segundo plano, almacenamiento en caché de contenido y mucho más.

En un nivel alto, un trabajador de servicio es un script de trabajo que funciona detrás de escena, independientemente de su aplicación, y se ejecuta en respuesta a eventos como solicitudes de red, notificaciones push, cambios de conectividad y más.

Escuché a Service Workers describirse como un "proxy", que creo que los describe muy bien. Podemos escuchar eventos como fetchese en cualquier momento que ocurra una solicitud de red. Podemos manejar ese evento con control total, verificando los datos en caché y volviendo inmediatamente, o permitiendo que la solicitud continúe al servidor remoto.

El poder absoluto y la flexibilidad de los trabajadores de servicio (service workers) los hace muy complicados y, en general, los desarrolladores querrán utilizar "recetas" prefabricadas para casos de uso de trabajadores de servicio (service workers) comunes, como el modo fuera de línea. Mozilla tiene una gran referencia para recetas de trabajadores de servicio (service workers) que demuestran la gran cantidad de aplicaciones con código reutilizable. Por ejemplo, a continuación se explica cómo hacer un modo simple sin conexión que intercepta fetch eventos y devuelve datos de un caché si falla la solicitud de red. Google también tiene una gran cantidad de ejemplos de Service Worker.

Punto principal: los trabajadores del servicio (service workers) son solo un archivo JavaScript como cualquier otro, se ejecutan en segundo plano y se desencadenan a través de eventos, y depende de usted escribir código para manejar el almacenamiento en caché, notificaciones push, obtención de contenido, etc. Dado que los desarrolladores terminan usando el mismo "Recetas" para realizar tareas comunes (como soporte fuera de línea), lo más probable es que queramos utilizar recetas existentes para facilitar nuestras vidas. Los trabajadores de servicio (service workers) están disponibles en Android con Chrome 50 y actualmente no son compatibles con otros navegadores móviles importantes.

Aplicación Shell (App shell)

El modelo de App Shell es un concepto de diseño simple mediante el cual la carga inicial de una aplicación web móvil proporciona un shell básico de la interfaz de usuario de una aplicación, y el contenido de la aplicación se carga después. App Shell no es una API web o un marco, sino más bien un enfoque de diseño que los desarrolladores pueden optar por cumplir y que se ve reforzado por las capacidades de almacenamiento en caché de los trabajadores del servicio (service workers). Puede encontrar que es un enfoque bastante directo y obvio, más dramático por una palabra de moda.

Instalabilidad y Manifiesto de la aplicación (Installability and App Manifest)

Históricamente, las aplicaciones web móviles no se instalaron como una aplicación en la pantalla de inicio. Claro, un usuario podría "anclar" un sitio web móvil a su pantalla de inicio en iOS y Android, pero la experiencia fue de segunda categoría, y la aplicación todavía no incluía las características locales que esperamos de las aplicaciones nativas.

Esto está cambiando, Recientemente Chrome en Android agregó soporte para instalar aplicaciones web en la pantalla de inicio con un banner de instalación nativo, al igual que los banners de aplicaciones nativas a las que estamos acostumbrados.

Para decirle a Chrome que nuestro sitio web móvil se puede instalar como una aplicación, escribimos un archivo manifest.json y lo vinculamos desde nuestra página HTML principal.

Actualmente, iOS no tiene ninguna característica adicional aquí más allá de Pin to Homescreen, por lo que la experiencia no será tan fluida.

Conclusión

Las aplicaciones web progresivas son, a partes iguales, nuevas API web, patrones de diseño y marketing esponjoso. La web móvil se acerca a la paridad con las aplicaciones de tienda instalable mediante el manifiesto de aplicación y el soporte de instalación de pantalla de inicio, la funcionalidad de trabajadores en segundo plano con Service Workers, un tiempo de carga más rápido con App Shell y la creencia renovada de que los desarrolladores web también pueden crear increíbles experiencias de aplicaciones móviles .

Creemos que la web es el futuro de las aplicaciones: funciona en todas partes, es la pila de tecnología más conocida y potencia un número cada vez mayor de aplicaciones. Hoy en día, millones de aplicaciones de la tienda de aplicaciones utilizan las tecnologías web, pero hasta ahora, la web móvil ha sido una experiencia simplificada que impulsa a las personas a la tienda de aplicaciones. Las aplicaciones web progresivas cambian eso.

Recuerda suscribirte:

Obtenga nuestro boletín de noticias diario | Suscríbete gratuitamente SUSCRIBIRSE
¿Te ha resultado útil este artículo, recomiendanos?
Si



Share:

Related post

Comentarios

Disqus

Disqus comments:


Google+

Google+ comments:

Facebook

Facebook comments: