Options de migration
Il existe deux principales options pour migrer à partir d'applications Chrome: les applications Web et les extensions Chrome:
Les applications Web constituent le chemin privilégié dans la plupart des cas. Les extensions Chrome peuvent être utilisées dans certains cas d'utilisation qui ne sont pas pris en charge par le Web, comme l'exécution en arrière-plan sans interface utilisateur.
Applications Web
L'alternative à privilégier pour migrer depuis les applications Chrome consiste à créer une application Web. Ce faisant, vous pouvez utiliser des fonctionnalités avancées, comme celles du projet de fonctionnalités Web. Les API du projet Capabilities couvrent désormais la plupart des cas d'utilisation qui étaient auparavant réalisables avec les API d'applications Chrome. Cependant, l'utilisation de ces fonctionnalités n'est pas obligatoire: la flexibilité du Web permet aux développeurs de choisir le niveau de complexité qui répond le mieux à leurs besoins.
Avantages des applications Web
Les applications Web présentent certains avantages par rapport aux applications Chrome:
- Portabilité:les applications Chrome ne s'exécutent que dans Chrome. Les applications Web sont compatibles avec la plupart des navigateurs et des systèmes d'exploitation, mais la compatibilité varie selon les API.
- Expérience du développeur:les applications Chrome utilisent les mêmes technologies que les applications Web (HTML, JavaScript et CSS), mais certaines fonctionnalités avancées (par exemple, les pages en arrière-plan) ne sont pas standards et nécessitent donc des connaissances supplémentaires.
- Ensemble de fonctionnalités:les applications Chrome reposent sur des API qui ne font plus l'objet d'une maintenance ni d'une mise à jour avec de nouvelles fonctionnalités. Les applications Web reposent sur le Web ouvert, qui évolue en permanence et a accès à toutes les API à jour.
- Installation et mises à jour:les applications Chrome nécessitent des installations et des mises à jour manuelles, et un avis sur le Play Store est parfois requis. Les applications Web sont accessibles directement depuis un navigateur et peuvent éventuellement être installées. Les mises à jour des applications Web sont instantanées dès leur déploiement, dès que le navigateur récupère les nouveaux fichiers.
- Assistance:bien que les applications Chrome et les applications Web aient accès à de vastes communautés, la plate-forme Web est bien plus présente et propose un plus large éventail d'outils de développement, tels que des frameworks et des bibliothèques, pour aider les développeurs.
Progressive web apps
Les progressive web apps (PWA) ne sont que des applications Web conçues et optimisées avec des API modernes pour offrir des fonctionnalités améliorées, une installation et une fiabilité améliorées. La mise en œuvre de ces fonctionnalités vous permet de créer des expériences semblables à celles d'une application sur le Web.
Installabilité
Les PWA peuvent être installées sur les plates-formes mobiles et de bureau, mais cela est facultatif, car vous pouvez toujours y accéder directement depuis le navigateur. Les utilisateurs qui choisissent d'installer une PWA peuvent la lancer via des icônes et des raccourcis. Vous pouvez fournir des métadonnées dans le fichier manifeste Web de votre PWA pour indiquer qu'elle s'ouvre dans sa propre fenêtre lorsqu'elle est lancée après l'installation.
Fiabilité
Les PWA peuvent fonctionner de manière cohérente, même dans des conditions réseau difficiles. Cela est possible grâce à un composant essentiel des PWA, les service workers. Les service workers vous permettent d'intercepter les requêtes réseau et de diffuser du contenu mis en cache pour garantir que l'application fonctionne hors connexion ou en cas de mauvaise connectivité. Les bibliothèques telles que Workbox fournissent un ensemble de stratégies prêtes à l'emploi qui vous permettent d'implémenter les fonctionnalités hors connexion courantes, ce qui simplifie considérablement le développement.
Fonctionnalités avancées
Le projet Web Capabilities permet aux applications Web de réaliser de nombreux cas d'utilisation que les applications Chrome pourraient mettre en œuvre. Cependant, le modèle de sécurité du Web impose certaines limites. Voici quelques exemples de fonctionnalités Web avancées que vous pouvez utiliser à la place des API Chrome App existantes:
- Accès Bluetooth et USB:le Bluetooth Web et le réseau USB Web offrent une alternative à
chrome.bluetooth
etchrome.usb
respectivement. - Gestion des systèmes de fichiers:l'API File System Access est l'alternative à l'API
chrome.fileSystem
. - Raccourcis:les applications Web peuvent utiliser les raccourcis clavier en écoutant divers événements de touches (par exemple, touche enfoncée), mais les raccourcis compatibles sont limités. Lorsque votre application Web est utilisée en mode plein écran, vous pouvez intercepter ces raccourcis système à l'aide de l'API Keyboard Lock.
- Stockage persistant:demander l'autorisation de stockage persistant dans votre application Web peut offrir des fonctionnalités semblables à l'autorisation
unlimitedStorage
dans les applications Chrome. - Géolocalisation:au lieu de l'autorisation de géolocalisation, vous pouvez utiliser l'API Geolocation dans les applications Web pour localiser la position d'un utilisateur.
- Traitement en arrière-plan:des alternatives à l'autorisation
background
incluent l'API Background Sync et l'API Periodic Background Sync. - Copier dans le presse-papiers:l'API Async Clipboard vous permet de copier et de coller du texte et des images par programmation.
Extensions Google Chrome
Les applications Web sont la meilleure alternative pour migrer depuis les applications Chrome, mais les extensions Chrome peuvent dans certains cas. Les extensions sont également conçues à l'aide de technologies Web (HTML, CSS et JavaScript), et peuvent être utilisées pour ajouter ou modifier des fonctionnalités de navigateur et personnaliser d'autres applications Web afin d'améliorer l'expérience utilisateur.
Créer une extension autonome
Selon l'expérience utilisateur que vous souhaitez fournir, il peut être judicieux de convertir votre application Chrome en extension. Par exemple, vous pouvez fournir un bouton d'action du navigateur qui affiche une petite fenêtre pop-up pour votre interface utilisateur ou qui permet d'accéder à une page fournie par votre extension. Ce modèle d'interface utilisateur peut être plus adapté aux applications qui exécutent la plupart de leurs tâches en arrière-plan.
Connecter une extension Chrome depuis une application Web
Si votre application Chrome propose des fonctionnalités qui ne sont pas disponibles sur la plate-forme Web, vous pouvez associer une extension Chrome à une application Web et lui donner accès aux API d'extension.L'inconvénient de cette approche est que les utilisateurs et les administrateurs informatiques doivent gérer deux parties différentes (application Web et extensions associées). Il est important de noter qu'il est impossible d'exécuter les extensions Chrome sur certains navigateurs. Nous vous conseillons de détecter les cas où les fonctionnalités requises ne sont pas disponibles et de fournir un texte explicatif aux utilisateurs de ces autres navigateurs.
Dois-je créer une application Web ou une extension Chrome ?
Il est préférable d'utiliser une application Web pour migrer depuis les applications Chrome. Dans certains cas d'utilisation, les extensions Chrome peuvent constituer un meilleur choix. Avant de vous décider, déterminez quelle option est la plus adaptée en fonction de différents facteurs:
- Objectif:les extensions Chrome sont principalement utilisées pour étendre les fonctionnalités du navigateur. Exemples d'utilisations courantes: outils de productivité, optimisation du contenu d'une page Web et agrégation d'informations. Les applications Web peuvent couvrir un éventail beaucoup plus large de cas d'utilisation grâce à toute la puissance du Web.
- Expérience utilisateur:les extensions Chrome ont généralement une interface utilisateur plus limitée et sont conçues pour s'intégrer au navigateur. Les applications Web peuvent être dotées d'une interface utilisateur enrichie qui ressemble à une application native et qui est hautement personnalisable.
- Portabilité:les extensions Chrome sont spécifiques à Chrome. Certains navigateurs (Firefox et Edge, par exemple) sont compatibles avec les mêmes API d'extension que Chrome, mais elles ne sont pas universelles. Les applications Web sont compatibles avec tous les navigateurs (même si toutes les API ne le sont pas).
- Visibilité:les extensions Chrome doivent être installées (par exemple, à partir du Chrome Web Store ou via l'auto-hébergement) et accessibles via la barre d'outils du navigateur. Les applications Web peuvent être chargées instantanément via une URL et accessibles depuis tous les navigateurs. Vous pouvez les installer en option, mais ce n'est pas obligatoire.
- Ensemble de fonctionnalités:les extensions Chrome sont étroitement intégrées à Chrome grâce aux API Chrome. Les applications Web peuvent être plus limitées dans les tâches de bas niveau ou de niveau système. Comme indiqué précédemment, il est possible d'appeler une extension à partir d'une application Web afin d'accéder aux API dédiées exclusivement aux extensions.
- Travail en arrière-plan:les extensions Chrome peuvent effectuer des tâches en arrière-plan et s'exécuter même lorsque la fenêtre du navigateur est fermée. Les applications Web, en revanche, sont généralement conçues pour s'exécuter au premier plan et ont des fonctionnalités en arrière-plan plus limitées, principalement utilisées pour améliorer les performances et la fiabilité.
Étapes de migration
Migrer vos applications Chrome
Pour migrer d'une application Chrome vers des applications Web ou des extensions Chrome, procédez comme suit:
- Limiter les fonctionnalités de votre application:dans certains cas, votre application détermine si vous devez opter pour une application Web ou si votre seul choix est de créer une extension Chrome. Si les deux peuvent répondre à vos besoins, vous avez le choix. Consultez le site Web Fonctionnalités et la documentation de référence de l'API Chrome Extension pour en savoir plus sur ce que chaque technologie peut apporter.
- Apprendre et créer:suivez les ressources d'apprentissage pour connaître les technologies et rendre votre application opérationnelle. Les guides de formation sur les PWA et les guides de démarrage de l'extension Chrome sont d'excellentes ressources pour vous familiariser avec chacune de ces technologies.
- Tester et distribuer:pour vous assurer qu'elle fonctionne correctement, proposez votre nouvelle application à un plus petit pourcentage d'utilisateurs avant de la déployer à plus grande échelle. Pour les rendre plus largement disponibles, il est possible d'accéder aux applications Web et de les installer depuis un navigateur. Les extensions Chrome sont généralement distribuées via le Chrome Web Store ou auto-hébergées. Les deux peuvent être installés d'office par les administrateurs dans des scénarios gérés.
Migrer vos utilisateurs
Quelle que soit la technologie que vous avez choisie pour migrer depuis les applications Chrome, vous devez demander à vos utilisateurs de désinstaller l'application actuelle et les guider vers la nouvelle expérience.
Nous vous recommandons de mettre à jour votre application pour inclure un message indiquant qu'elle n'est plus disponible et que les utilisateurs doivent à l'avenir consulter votre site Web ou le Chrome Web Store (voir l'exemple suivant). Vous pouvez également inclure un bouton "Désinstaller" qui appelle la méthode uninstallSelf()
.
À partir de Chrome 75, la méthode installReplacementWebApp()
peut être utilisée dans une application Chrome, en réponse à un clic sur un bouton ou à un autre geste de l'utilisateur, pour déclencher automatiquement le flux d'installation de votre application Web de remplacement.
Nous vous recommandons également de demander aux administrateurs du navigateur Chrome Enterprise et de ChromeOS Enterprise de modifier les règles relatives aux applications pour leur organisation. Il est courant pour les utilisateurs gérés par Enterprise et Education que leurs applications et extensions soient installées d'office via une règle de gestion. Les développeurs doivent demander aux administrateurs de mettre à jour leur règle ExtensionInstallForcelist (utilisée pour installer les applications Chrome) et de la remplacer par la règle WebAppInstallForceList par l'URL de votre application Web.
Assistance
Si vous avez des questions techniques, voici quelques ressources que vous pouvez utiliser pour obtenir de l'aide:
- Pour toute question concernant la migration d'applications Chrome vers des applications Web ou des extensions Chrome, rejoignez la communauté des développeurs ChromeOS sur Discord.
- Pour les fonctionnalités manquantes de l'application Web, demandez une nouvelle capacité sous Capabilities, également appelée Project Fugu.