Il y a 8 ans -
Temps de lecture 3 minutes
Devoxx FR 2014 – Chrome App for desktop and Mobile
La session « Chrome App for desktop and Mobile » était présentée par Joe Marini de Google. L’objectif était de nous présenter les Chrome Apps et nous donner envie de creuser le sujet ; pari gagné (en tous cas pour moi).
Il commence par nous présenter Caret, un éditeur de texte à la Sublime Text sauf que Caret est une Chrome Apps et le moins que l’on puisse dire c’est que ça à l’air pas mal du tout ! Je suis même étonné de ne pas en avoir entendu parler, surtout après le buzz qui avait eu lieu avec atom.io !?
Pourquoi créer une Chrome App ?
- Une Chrome App est offline par défaut ;
- Fonctionne sur toutes les plate-formes populaires ;
- Accès à la plate-forme sous jacente et au hardware ;
- Distribution et mises à jour via Chrome Web Store.
Offline, online… bon… comment on fait avec les données alors …
Puisque la Chrome App est offline par défaut alors il faut pouvoir stocker localement les données, pour cela nous avons à notre disposition:
- chrome.storage.local;
- indexedDB ;
- HTML5 Filesystem API.
Il revient ensuite sur la partie des données mais cette fois-ci plus orienté synchronisation lorsque l’on est online :
– chrome.storage.sync permet également de stocker des petits éléments, et ils seront automatiquement synchronisés par l’infrastructure de google de la même manière que le sont vos bookmarks dans Chrome. C’est d’ailleurs la même infra qui est mise en œuvre ;
– SyncFileSystem API pour synchroniser des fichiers plus gros (utilise l’API Google Drive).
– Google Cloud Push Messaging API pour recevoir des message depuis un serveur : en effet même si votre Chrome App n’est pas démarré il existe toujours un process Chrome qui va recevoir le message et réveiller votre application.
Chrome Apps offre également d’autres API tel que chrome.identity pour s’occuper de l’authentification OAuth.
Et comment c’est packagé ?
Une Chrome App nécessite un fichier manifest.json contenant tout un ensemble d’informations sur votre application, tel que la version, les permissions accordés à votre application…
Le package final est un simple fichier zip que vous « déposez » ensuite dans le Chrome Web Store.
Chrome App c’est plus qu’une application web
Joe Marini nous présente alors les API permettant de fournir une meilleure expérience utilisateur qu’une application Web :
- chrome.app.window pour gérer la fenêtre de l’application (taille, position de la fenêtre…) ;
- chrome.contextMenus pour gérer le clic contextuel ;
- chrome.alarms un cron dans votre application (qui réveillera votre application même si elle est fermée) ;
- chrome.mediaGalleries permet d’accéder aux répertoires de l’utilisateur contenant des médias ;
- une « URL handlers API » qui permet de réagir à des url à la manière des Intents Android (pour cela il faudra prouver à google que vous êtes propriétaire du nom de domaine, donc impossible de créer une Chrome App pour gmail.com).
Tous ces accès devront typiquement être déclarés dans la partie permissions du manifest.json de votre Chrome App.
Concernant la sécurité, Chrome Apps implémente Content Security Policy : pas d’utilisation de eval(), new Function impossible, les iframe sont sandboxés, …
Chrome Apps passe au Mobile
Et finalement, depuis janvier 2014 il est possible d’accéder en preview à l’intégration avec Cordova afin de pouvoir déployer votre Chrome App sous forme d’application native.
Conlusion
J’ai bien aimé l’idée de pouvoir réveiller une Chrome App lors de la réception d’un message ou bien encore associer une Chrome App à une URL. Il va falloir tester tout ça !
Commentaire
1 réponses pour " Devoxx FR 2014 – Chrome App for desktop and Mobile "
Published by Florent Dupont , Il y a 8 ans
Merci pour ce compte rendu.
Attention : petite erreur sur l’URL du manifest : le manifest pour la définition de Chrome apps est différent du manifest de chrome extensions. La documentation du manifest des apps est disponible sur :https://developer.chrome.com/apps/manifest