Terreno

Peter Conn
Peter Conn

Hay bastante ecosistema en torno a las Trusted Web Activities y puede ser bastante difícil ver cómo se relaciona todo y qué deberías usar. Este artículo tiene como objetivo abordar ese problema.

Si es la primera vez que usas las actividades web confiables o solo quieres conocer el conjunto de herramientas recomendadas que deberías usar hoy, ten en cuenta lo siguiente:

  • Bubblewrap: Es una herramienta de NodeJS que permite a los desarrolladores crear y compilar un APK para Android que une una AWP existente. La aplicación generada se basa en Trusted Web Activities, pero esto es transparente para el desarrollador. No se requiere experiencia en desarrollo de Android. Consulta la documentación de Bubblewrap para comenzar.
  • android-browser-helper: Es una biblioteca de Android que encapsula el protocolo de actividades web confiables. Se recomienda para desarrolladores que estén familiarizados con el desarrollo de Android y quieran usar actividades web confiables como una de las actividades de su app para Android o realizar personalizaciones que no sean compatibles con Bubblewrap. Para comenzar a usar android-browser-helper, consulta la documentación y nuestras demos.

En la siguiente sección, se proporciona un breve resumen de todos los proyectos en relación con los demás. Por último, (para los más curiosos) hay una sección de historia que te muestra cómo llegamos hasta aquí y hacia dónde planeamos ir en un futuro cercano.

Descripción general de las bibliotecas

Este es un resumen breve de una sola oración de cada una de las bibliotecas que podrías usar:

  • androidx.browser, una biblioteca de Android para interactuar con el navegador instalado en el dispositivo del usuario.
  • El Android Browser Helper, una biblioteca que se compila en androidx.browser para clientes de Trusted Web Activity que proporciona métodos convenientes y valores predeterminados razonables.
  • Bubblewrap, una herramienta para crear Trusted Web Activities desde las AWP sin modificar ningún código Java.

Además, cada una de estas bibliotecas o herramientas reemplaza a una anterior:

Historial

La biblioteca de compatibilidad de Android

La biblioteca de compatibilidad de Android extiende la plataforma de Android con nuevas APIs y funciones de compatibilidad. Se divide en varios paquetes, y la biblioteca de compatibilidad de Custom Tabs contiene la funcionalidad para interactuar con los navegadores en el sistema del usuario. El desarrollo de la biblioteca de compatibilidad de pestañas personalizadas se realizó principalmente en el repositorio de GitHub custom-tabs-client, y los cambios se volvieron a enviar a la biblioteca de compatibilidad de Android.

Una pestaña personalizada es una actividad de Android que usa un navegador para mostrar una página web. El beneficio principal para el desarrollador es que puede tener un tema y un botón de cierre, por lo que el usuario sigue en la app del desarrollador (en lugar de salir de ella y pasar a la experiencia de navegación completa). Como API de Android, las pestañas personalizadas pueden ser compatibles con cualquier navegador y usarán el navegador predeterminado del usuario (aunque los desarrolladores pueden anular esta opción).

Debido a que las Trusted Web Activities se compilan en pestañas personalizadas, comenzaron en esta biblioteca custom-tabs-client. Las actividades web de confianza quitan la barra superior de las pestañas personalizadas cuando el usuario explora un sitio que pertenece al desarrollador de la app. Esto te permite integrar tu sitio web sin problemas en una app nativa para Android y se puede usar para crear apps en las que la Web proporciona todas las funciones.

AndroidX

Más tarde, la biblioteca de compatibilidad de Android cambió de marca a AndroidX, que forma parte de un esfuerzo más amplio para mejorar la experiencia de los desarrolladores llamado JetPack. Por lo tanto, las pestañas personalizadas y las actividades web de confianza tuvieron que pasar de la biblioteca de compatibilidad de pestañas personalizadas a la nueva androidx.browser.

Parte del código que escribimos en custom-tabs-client era adecuado para una biblioteca de clases de ayuda de actividad web confiable, pero no para una API de Android. El código que se ocupa de verificar si hay versiones de Chrome desactualizadas y le solicita al usuario que las actualice o tome decisiones sobre cómo se deben almacenar los datos no se pudo transferir a AndroidX. Por lo tanto, creamos una biblioteca alternativa para contener estas partes de custom-tabs-client que no podían ir a androidx.browser, y así nació el Android Browser Helper.

El Android Browser Helper se creó para contener código que puede ser específico para navegadores (no solo Chrome, estamos abiertos a codificar específicamente para otros navegadores) y puede tomar decisiones concretas que las bibliotecas no deberían tomar. Aprovechamos esta oportunidad para separar los roles de estas dos bibliotecas:

  • androidx.browser contiene los elementos básicos para interactuar con los navegadores en el sistema del usuario.
  • El Android Browser Helper contiene implementaciones predeterminadas prácticas y sensibles.

Inicio

Los desarrolladores son personas ocupadas, con mucho trabajo por hacer y plazos que cumplir. Para ayudar con esto, creamos dos herramientas que permiten que los usuarios inicien su Trusted Web Activity.

El primero (y más antiguo) es svgomg-twa, que es un proyecto de Android alojado en GitHub que inicia una actividad web confiable. Originalmente, se diseñó como un proyecto de demostración que evolucionó a una plantilla. Los usuarios pueden clonar ese repositorio y modificar el archivo build.gradle para que apunte a su propio sitio web, compilarlo y producir una actividad web confiable sin modificar ningún código Java. (Obtener la verificación de los vínculos de recursos digitales requiere más esfuerzo. Obtén más información aquí).

svgomg-twa comenzó dependiendo de custom-tabs-client, pero luego se trasladó al Asistente de navegador de Android (y, de forma transitiva, a androidx.browser).

La herramienta más nueva y brillante es Bubblewrap, una herramienta de Node.js que tomará tu manifiesto de app web y generará una actividad web confiable por ti. Esta es la forma más fácil de crear una Actividad web de confianza a partir de una AWP existente y no requiere ningún conocimiento de desarrollo de Android.

Futuro cercano

Daremos de baja svgomg-twa por dos motivos:

  • Bubblewrap genera, en esencia, un svgomg-twa completo para un desarrollador. Lo hace de forma interactiva y puede tomar la configuración de un manifiesto de app web (que es probable que una AWP ya tenga).
  • Si los desarrolladores quieren una referencia para comenzar su propio proyecto de Trusted Web Activity desde cero, pueden consultar el directorio de demos de Android Browser Helpers.

Los desarrolladores nuevos deben usar Bubblewrap para generar su proyecto. Si ya usas svgomg-twa y realizaste algunas modificaciones importantes, puedes seguir haciéndolo, pero no recibirás actualizaciones.

Planeamos que Bubblewrap sea lo más capaz posible, por lo que, si falta una función obvia o te encuentras con un error, no dudes en crear un problema.