¿Salvarán las aplicaciones web progresivas a Huawei?

A estas alturas todo el mundo sabe que la guerra comercial entre Estados Unidos y China, aderezada con las sospechas de espionaje que ha vertido Estados Unidos contra Huawei (y sobre cuya veracidad, desafortunadamente, no podemos decir gran cosa) ha puesto en la mirilla de la administración Trump a la empresa china, que se puede quedar sin todos sus partners estadounidenses (y otras compañías, como ARM que, a pesar de su origen británico y su capital japonés de momento han cortado vínculos con Huawei). Y si no estáis al corriente, desde los estudios de Informática, Multimedia y Telecomunicación hemos intentado explicarlo desde medios como Cinco Días o El País Retina.

Si no cambia el viento, los futuros móviles de Huawei pueden seguir usando AOSP —la capa de código abierto de Android— pero se quedan sin Google Play Services, el paquete de APIs (absolutamente propietarias) que ofrece Google a los desarrolladores para ofrecerles servicios de log in, geolocalización, guardar la información de partidas de videojuegos, pagos y un sinfín de otras opciones. Y una buena parte de las aplicaciones que encontramos en Google Play (la tienda de aplicaciones de Google, que también perderán los próximos modelos de Huawei) hacen uso de esos Play Services.

¿Progressive web apps?

Las aplicaciones web progresivas (o PWAs, por sus siglas en inglés) son aplicaciones web (y por tanto, construidas con HTML, CSS y JavaScript, más las tecnologías de servidor que se consideren más convenientes) que se aprovechan de las capacidades que han ido añadiendo los navegadores en los últimos años para acercarse cada vez más a las funcionalidades de una aplicación nativa. ¿Qué permiten esas aplicaciones?

  • Funcionar sin conexión. La primera vez que accedemos a la aplicación esta puede almacenar «en local» aquellos recursos que considere necesarios (siempre dentro de un orden: no esperéis que se descargue la Wikipedia entera :-), y contando con el permiso del usuario, naturalmente). Se acabó la necesidad de estar en línea para usar una aplicación web.
  • Instalarse. Accede varias veces a la aplicación y el navegador te mostrará la opción de añadirla a la página de inicio del móvil. Y si usáis un sistema operativo «de escritorio», también: de hecho, la aplicación de Twitter para Windows es una PWA desde hace tiempo…
  • Notificaciones «push». ¿Todas esas notificaciones que os llegan de vuestras apps en el móvil? Ahora también podéis importunar al usuario avisar a vuestros clientes de las últimas novedades desde vuestra aplicación web.

Pero, sobre todo…

  • Acceder a APIs web, no nativas. Y por tanto, da igual que haya o no Google Play Services en el dispositivo, porque si se puede acceder a un servicio (de Google o de quien sea) desde el navegador… se puede acceder a él desde una aplicación web.
¿Salvarán las aplicaciones web progresivas a Huawei?
La administración Trump ha decidido que las empresas norteamericanas no pueden mantener relaciones comerciales con Huawei

¿Es todo perfecto?

Naturalmente, no. En primer lugar, convertir una aplicación web existente en una PWA requiere un poco de trabajo. Necesitaremos servir nuestra aplicación desde un dominio con https (pero eso ya lo estabais haciendo, espero), escribir un manifest que le explique al navegador qué debe guardar en local, y unos service workers que hagan que si carecemos de conexión se usen todos esos recursos almacenados localmente, lo que complicará algo el desarrollo de nuestra aplicación web. ¿Cuánto? Dependerá de muchos factores, pero en general pasarse por un recurso como PWABuilder para ver los primeros pasos que deberemos dar.

Y siempre habrá lugar para las aplicaciones nativas: aunque los navegadores pueden acceder a un buen montón de los servicios que ofrece nuestro dispositivo (incluyendo el Bluetooth, reproductores de archivos de audio y vídeo (incluso en streaming y con DRM), la geolocalización o el acceso a la GPU para acelerar la creación de gráficos 2 y 3D) y cosas como WebASM nos dan acceso a buena parte de los recursos de la máquina, si necesitamos exprimir hasta el último recurso siempre convendrá desarrollar en nativo.

Pero, para cada vez más casos, las aplicaciones web en general, y las progresivas en particular, nos tienen hoy más cerca que nunca de aquel viejo sueño del write once, run anywhere.

César Córcoles es profesor de la UOC y director del máster universitario de Desarrollo de Sitios y Aplicaciones Web.

Comentar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.