Le terrain

Peter Conne
Peter Conn

Il existe un certain nombre d'écosystèmes autour des activités Web fiables, et il peut être assez difficile de comprendre comment tout est lié et ce que vous devez utiliser. Cet article vise à résoudre ce problème.

Si vous débutez avec les activités Web fiables ou si vous recherchez simplement l'ensemble d'outils recommandé que vous devriez utiliser aujourd'hui, voici ce que vous devez savoir:

  • Bubblewrap: outil NodeJS qui permet aux développeurs de créer et de compiler un APK Android qui encapsule une PWA existante. L'application générée repose sur des activités Web fiables, mais cela est transparent pour le développeur. Aucune expérience en développement Android n'est requise. Pour commencer, consultez la documentation sur le papier bulle.
  • android-browser-helper: bibliothèque Android qui encapsule le protocole des activités Web fiables. Recommandé pour les développeurs qui connaissent bien le développement Android et qui souhaitent utiliser des activités Web fiables parmi les activités de leur application Android ou effectuer des personnalisations non compatibles avec le format Bubblewrap. Pour faire vos premiers pas avec android-browser-helper, consultez la documentation et nos démonstration.

La section suivante donne un bref résumé de tous les projets les uns par rapport aux autres. Enfin, pour les plus curieux, une section "Historique" vous montre comment nous en sommes arrivés là et où nous prévoyons d'aller dans un avenir proche.

Présentation des bibliothèques

Voici un bref résumé en une phrase de chacune des bibliothèques que vous pourriez utiliser:

  • androidx.browser, une bibliothèque Android permettant d'interagir avec le navigateur installé sur l'appareil de l'utilisateur.
  • Android Browser Helper, une bibliothèque basée sur androidx.browser pour les clients d'activité Web fiable, offrant des méthodes pratiques et des valeurs par défaut raisonnables.
  • Bubblewrap est un outil qui permet de créer des activités Web fiables à partir de PWA sans toucher au code Java.

En outre, chacune de ces bibliothèques/outils remplace un ancien:

Historique

Bibliothèque Android Support

La bibliothèque Android Support étend la plate-forme Android avec de nouvelles API et fonctionnalités de compatibilité. Elle est divisée en plusieurs packages, et la bibliothèque Support des onglets personnalisés contient une fonctionnalité permettant d'interagir avec les navigateurs du système de l'utilisateur. Le développement de la bibliothèque Support pour les onglets personnalisés s'est principalement fait dans le dépôt GitHub custom-tabs-client, les modifications étant retransmises en amont dans la bibliothèque Android Support.

Un onglet personnalisé est une activité Android qui utilise un navigateur pour afficher une page Web. Le principal avantage pour le développeur est qu'elle peut être thématique et dotée d'un bouton de fermeture, de sorte que l'utilisateur reste toujours dans l'application du développeur (au lieu de quitter l'application et d'accéder à l'expérience de navigation complète). En tant qu'API Android, les onglets personnalisés peuvent être compatibles avec n'importe quel navigateur et utiliseront le navigateur par défaut de l'utilisateur (bien que les développeurs puissent le remplacer).

Les activités Web fiables étant basées sur les onglets personnalisés, elles ont commencé leur vie dans cette bibliothèque custom-tabs-client. Les activités Web fiables suppriment la barre supérieure des onglets personnalisés lorsque l'utilisateur navigue sur un site appartenant au développeur de l'application. Cela vous ouvre les portes à une intégration parfaite de votre site Web dans une application Android native. Vous pouvez l'utiliser pour créer des applications dont toutes les fonctionnalités sont fournies par le Web.

AndroidX

La bibliothèque Android Support a ensuite été rebaptisée AndroidX, ce qui s'inscrit dans une initiative plus importante, appelée JetPack pour améliorer l'expérience des développeurs. Les onglets personnalisés et les activités Web fiables ont donc dû passer de la bibliothèque Support des onglets personnalisés au nouveau androidx.browser.

Une partie du code que nous avions écrit dans custom-tabs-client convenait à une bibliothèque de classes d'assistance de confiance pour l'activité Web, mais pas à une API Android. Le code permettant de vérifier les versions obsolètes de Chrome et d'inviter l'utilisateur à effectuer une mise à jour ou à prendre des décisions concernant le stockage des données ne pouvait pas être déplacé vers AndroidX. Par conséquent, nous avons créé une autre bibliothèque destinée à contenir ces parties de custom-tabs-client, qui ne pouvaient pas être intégrées à androidx.browser. C'est pourquoi Android Browser Helper est né.

L'outil d'aide du navigateur Android a été créé pour contenir du code qui peut être spécifique aux navigateurs (pas seulement Chrome : nous sommes ouverts au code spécifiquement conçu pour d'autres navigateurs) et permet de prendre des décisions concrètes que les bibliothèques ne devraient pas prendre. Nous en avons profité pour séparer généralement les rôles de ces deux bibliothèques:

  • androidx.browser contient les composants de base pour interagir avec les navigateurs sur le système de l'utilisateur.
  • L'outil d'aide du navigateur Android contient des implémentations par défaut pratiques et judicieuses.

Amorçage

Les développeurs sont des personnes très occupées, avec beaucoup de travail à faire et des délais à respecter. Pour ce faire, nous avons créé deux outils permettant aux utilisateurs d'amorcer leur activité Web fiable.

Le premier (et le plus ancien) est svgomg-twa. Il s'agit d'un projet Android hébergé sur GitHub qui lance une activité Web fiable. À l'origine, il a été conçu comme un projet de démonstration, qui est devenu un modèle. Les utilisateurs peuvent cloner ce dépôt et modifier le fichier build.gradle pour qu'il pointe vers leur propre site Web, le compiler et générer une activité Web fiable sans toucher au code Java. (La validation de Digital Asset Links nécessite plus d'efforts. Pour en savoir plus, cliquez ici.)

svgomg-twa a commencé par dépendre de custom-tabs-client, puis est passé à Android Browser Helper (et à androidx.browser).

L'outil le plus récent et le plus performant est Bubblewrap. Il s'agit d'un outil Node.js qui prend votre fichier manifeste d'application Web et génère une activité Web fiable pour vous. Il s'agit du moyen le plus simple de créer une activité Web fiable à partir d'une PWA existante. Aucune connaissance en développement Android n'est nécessaire.

Futur proche

Nous allons abandonner svgomg-twa pour deux raisons:

  • Le wrapper génère essentiellement un code svgomg-twa rempli pour un développeur. Elle effectue cette opération de manière interactive et peut récupérer la configuration à partir d'un fichier manifeste d'application Web (ce qui est probablement déjà le cas d'une PWA).
  • Si les développeurs souhaitent savoir comment démarrer leur propre projet d'activité Web fiable à partir de zéro, ils peuvent consulter le répertoire demos des outils d'aide pour le navigateur Android.

Les nouveaux développeurs doivent utiliser Bubblewrap pour générer leur projet. Si vous utilisez déjà svgomg-twa et que vous avez apporté de lourdes modifications, vous pourrez continuer à le faire, mais vous ne recevrez pas de mises à jour.

Nous souhaitons que le format Bubblewrap offre des fonctionnalités optimales. Par conséquent, si une fonctionnalité évidente est manquante ou si vous rencontrez un bug, n'hésitez pas à signaler un problème.