Trusted Web Activity: el punto de inflexión para que los desarrolladores puedan distribuir sus Progressive Web App en Google Play

11/02/2019
Artículo original

Trusted Web Activity: el punto de inflexión para que los desarrolladores puedan distribuir sus Progressive Web App en Google Play

Maximiliano Firtman, fue el primero que lanzó la noticia de la inminente posibilidad que las Progressive Web App puedan ser distribuidas en Google Play Store como apps de primer nivel. Es decir, que las PWA sean integradas con todas las funcionalidades que gozan en el navegador pero ejecutadas desde una APK y distribuidas a través de la tienda de aplicaciones.

Tal como comenta Maximiliano en su artículo en medium, desde que en Mayo del 2018 en Chrome Summit presentará las Trusted Web Activity se abría la puerta a un integración sin complejos de las PWA en Android. Es decir, utilizando todas las capacidades integradas de Chrome 72. Más allá de un limitado Webview o una ChromeTab con aspecto de navegador.

¿Por qué queremos ver las PWA en Google Play Store?

PWA amplían las posibilidades de las web apps normales acercandonos a este concepto hasta ahora sólo visto en las apps nativas

Posiblemente una de las ventajas de las PWA frente a las apps nativas es que no requieren instalación, pero continuamos con la obsesión de hacer app todo lo que el usuario maneja. Estamos en la década de las apps en contraposición a la web. Empujados por todo el marketing para ser descubierto en la tienda, las estadísticas de retención y, claro está, ciertas capacidades nativas que abren el abanico de posibilidad más allá de abrir un enlace o tener un acceso directo a una PWA en el móvil. Así que inevitablemente tenemos que estar presente en las tiendas de aplicaciones, en este caso en Google Play.

Cualquiera de nosotros que trabaje en la industria del desarrollo de aplicaciones móviles ha visto la insistencia de nuestros jefes o clientes por tener una app. Una forma de diferenciarse y de en cierta forma retener al usuario. Enviando notificaciones push o teniendo al usuario geolocalizado y, sobre todo, siempre logueado en nuestra plataforma para que pueda interactuar con ella, sin tener que esperar a que se registre de nuevo en el navegador o no pierda la sesión.

PWA amplían las posibilidades de las web apps normales acercandonos a este concepto hasta ahora sólo visto en las apps nativas:

  • Podemos acceder offline o incluso cuando las conectividad es pobre
  • Podemos mantener fidelizado a los usuarios a través de las push notificaiones
  • En contraposición a las web normales, podemos utilizarlas a pantalla completa y ser enlazadas con un acceso directo en la pantalla de inicio.
  • La nueva información puede ser sincronizada aunque la app esté cerrada, gracias a los service workers
Service Worker Progressive Web App

El punto de inflexión técnico pasa por las Trusted Web Activity

Si alguna vez has desarrollado una aplicación Android te sonarán los Webview. Este componente permite abrir páginas web incrustadas dentro de las apps. Más tarde llegaron las Chrome Custom Tab que tenían la capacidad de retener la sesión del usuario comportándose como una pestaña más del navegador, pero con aspecto de browser.

Pero todo eso no era suficiente, ya que seguiamos teniendo muchas limitaciones, como si de una página web se tratase, sin caché entre sesiones, ni tener ninguna de las ventajas de una PWA siendo incapaz de funcionar offline, por ejemplo.

Así que el equipo de Chrome empezó a desarrollar las Trusted Web Activities, lo que permitiría manejar las apps webs en full screen y consever la caché y servicios en background como los imprescindibles service worker de las Progressive Web App.

Aquí tenéis un vídeo de la presentación en el pasado Chrome Web summit.

Una Trusted Web Activity ejecuta un Chrome a pantalla completa dentro de una app Android, sin la interfaz visible dejando de parecer un navegador. Esta poderosa capacidad necesita, por supuesto, que el desarrollador de la app valide las URLs que se van abrir verificando su legitimidad. Todo ello a través de los Digital Assets Links.

Ya que una TWA tiene acceso a todas las funcionalidades de Chrome, podemos ir mucho más allá en el uso de que le dábamos hasta ahora a las WebView en Android. Algunas de las principales características son las web push notifications, la sincronización background, el autorelleno de formularios, Media Source Extension o las Sharing API.

Todo el contenido de una TWA debe cumplir, por supuesto, las mismas políticas para desarrolladores que hasta ahora para una app normal. Además de alcanzar ciertos criterios de rendimiento utilizando Lighthouse como herramienta de referencia: con al menos una puntuación de 80.

Progressive Web App

Opciones para desarrollar una Progressive Web App como “WebAPK”

A día de hoy tenemos dos posibilidades para integrar una Progressive Web App dentro de una APK Android.

  • Como primera opción si no tenemos extensos conocimientos de Android, podemos usar el esqueleto desarrollado como experimento por el equipo de Google: SVGOMG / Trusted Web Activity. Donde tal sólo debemos centrarnos en modificar el Android Manifest verificando los recursos a través del Digital Asset Links. Aquí tenéis una guía más exhaustiva de cómo hacerlo.

  • Otra posibilidad es integrar directamente en una app ya creada el componente de Trusted Web Activity disponible en la Support Library, por supuesto, sigue siendo obligatorio rellenar todos los campos del manifest para cumplir los requisitos de validación de la webapp.

Imagen | Maximiliano Firtman