Las aplicaciones web progresivas, nombre con el que se clasifica a las páginas web que cumplen con requisitos que hacen la experiencia de usar éstas páginas, similar a las descargar, instalar y usar una app para tu teléfono.
En 2015, se creó el concepto para englobar una nueva generación de aplicaciones que aprovechan lo último en APIs y tecnologías de los navegadores web para ofrecer experiencias de aplicaciones desde una página web.
Cada año los navegadores web continúan añadiendo funcionalidades al navegador, las empresas continúan adoptando la creación de aplicaciones web progresivas y en general el mercado disponible de apps que puedes usar sin tener que descargarlas, crece.
En este artículo discutiremos algunas de las novedades de la industria en lo que respecta a aplicaciones web progresivas para el 2019. Recuerda que puedes aprender a crear aplicaciones web progresivas con [este curso](
).
Nuevas APIs
Los navegadores web ofrecen APIs de acceso al hardware del dispositivo que nos permiten crear experiencias enriquecidas. Algunas de APIs, lanzadas hace varios años, son usadas extensivamente por páginas web como el uso del GPS, de la cámara, del micrófono, el sensor de luz, etc.
En esta sección destacaremos algunas APIs nuevas que pronto podrás usar para tus páginas web.
SMS Reciever API
Existen aplicaciones que utilizan el número telefónico como identificador único de un usuario, así, apps como WhatsApp o Telegram, utilizan un mecanismo de envío de SMS para poder validar que el teléfono que un usuario registra, es igual al del dispositivo en que se está usando.
La SMS Reciever API, permite registrar tu página web para la lectura de SMS, y así poder realizar automáticamente el proceso de validación de un teléfono, como las apps que instalas lo han podido hacer.
Acceso nativo al sistema de archivos
La API de acceso nativo al sistema de archivos provee de una API para leer y escribir archivos en el dispositivo del usuario, a través de una página web.
Usando ésta API abre la posibilidad a la creación de apps que interactúan intensivamente con el sistema de archivos, como los editores de texto, IDEs, editores de fotos, de vídeo, entre otros casos más.
Guardar un archivo de texto, se vuelve ahora tan simple como:
// Código de: https://web.dev/native-file-system/
function getNewFileHandle() {
const opts = {
type: 'saveFile',
accepts: [{
description: 'Text file',
extensions: ['txt'],
mimeTypes: ['text/plain'],
}],
};
const handle = window.chooseFileSystemEntries(opts);
return handle;
}
Portals
En las apps nativas que instalas para iOS y Android, puedes embeber sitios web externos usando WebViews, esto te permite mostrar páginas web, sin que el usuario salga de tu aplicación.
En la web, un concepto similar es el de los iframes, que te permiten embeber páginas web dentro de otras páginas web. Sin embargo, los iframes son una tecnología muy general que carece de ciertas características como el precargado de páginas web, antes de abrirlas.
Para eso se lanzan los Portals, un concepto similar al de los iframes, con funcionalidad añadida, como la posibilidad de agregar transiciones en la navegación de un página web a un portal y viceversa. Los Portals abren la puerta a una nueva arquitectura de aplicaciones web, basadas en multi sitios.
Este es un ejemplo que puedes encontrar en el artículo sobre Portals en web.dev
Distribución de aplicaciones web progresivas
Las apps nativas, se distribuyen principalmente a través de tiendas establecidas como la Play Store, el App Store, las tiendas de Amazon, Samsung, etc. Además, es posible distribuir una aplicación compartiendo su instalador vía correo, USB, Bluetooth, entre otros más.
Las aplicaciones web, por su parte, están restrigindas a la distribución a través del internet y los links. No existen tiendas, ni canales físicos de distribución.
Con la introducción de nuevos canales de distribución, se espera que más usuarios puedan acceder a las aplicaciones desarrolladas con tecnologías web.
Web Bundles
Hoy, más de 4 mil millones de usuarios alrededor de todo el mundo está conectado a internet, más de la mitad de las personas en el mundo ya usan internet. Sin embargo, existe todavía un número importante de gente sin acceso al internet.
Se espera que la próxima gran ola de usuarios para la web venga de mercados emergentes como México o India, se conectarán a través de dispositivos de bajo rendimiento o en lugares donde la conexión a internet no es estable.
Para compensar esta inestabilidad de la red, se han desarrollado múltiples tecnologías, entre ellas las ServiceWorkers que nos permiten usar páginas web sin internet. Sin embargo, las SW solo son útiles y nos permiten navegar un sitio sin internet, luego de ser instaladas, esta instalación requiere conexión a internet. En términos prácticos, para usar un sitio sin internet, primero debes ingresar a dicho sitio con internet, al menos una vez.
La API de Web Bundles permitirá que distribuyas tu aplicación web en muchos formatos más, desde pasar la app vía Bluetooth, hasta distribuirlas en USBs, lo que significa que las aplicaciones web ya no están restringidas al internet para su distribución.
Puedes ver este vídeo con una demostración del uso de Web Bundles para compartir apps de dispositivo a dispositivo.
Trusted Web Activities en Android
A inicios del año, Android introdujo una nueva API para desplegar páginas web desde una app nativa de Android, las Trusted Web Activities.
Las Trusted Web Activities te permiten empaquetar aplicaciones cuyo único trabajo y responsabilidad es la de mostrar una página web. Esta API se introdujo, principalmente, con la idea de abrir las puertas de la Play Store a las aplicaciones web progresivas.
A través del uso de la TWA (Trusted Web Activities), puedes crear una APK para tu aplicación web progresiva, que además, puedes distribuir vía la Play Store, o cualquier tienda para Android.
Conclusión
Las aplicaciones web progresivas han demostrado mejorar métricas clave de una aplicación como el uso diario, retención de usuarios, activaciones, registro de nuevos usuarios y mucho más.
Sumado a ésto, los navegadores se encuentran en constante mejora y crecimiento, para ofrecer funcionalidades de acceso al hardware y distribución para las aplicaciones web progresivas.
No ha existido un mejor momento para desarrollar para la web. Te invito a que inicies el curso para crear aplicaciones web progresivas, donde aprenderás de las tecnologías clave detrás de esta generación de aplicaciones:
Continuaré actualizando este artículo con nuevas APIs que los navegadores agreguen.