Extensions : iOS 8 étend le champ des possibles

Stéphane Moussie |

Widgets, claviers alternatifs, options de partage supplémentaires... Ces nouveautés significatives, qui font d’iOS 8 un système d’exploitation plus ouvert, font partie du concept d’extensibility présenté par Craig Federighi lors du keynote de la WWDC. « Les applications de l’App Store pourront étendre le système et offrir des services à d’autres apps », a expliqué le SVP en charge de l’ingénierie logicielle. Une annonce sans surprise très bien accueillie par les développeurs qui réclamaient depuis longtemps de telles possibilités.

Divers types d’extensions

La bannière extensibility regroupe différents types d’extensions. Comme sus-cité, il est aussi bien question d’un widget qui trouve sa place dans le Centre de notifications que d’un clavier tiers qui remplace celui d’iOS. Ars Technica fait le point sur ce que recouvre ce concept.

Les modèles d’extensions pour iOS 8

Pour iOS, les développeurs ont à leur disposition six modèles d’extensions qu’ils peuvent intégrer à leurs apps :

  • Today : intègre un widget au Centre de notification dans l’onglet Aujourd’hui (Today)
  • Custom Keyboard : remplace le clavier par défaut d’iOS
  • Document Picker : permet à l’app d’utiliser les documents d’une autre app
  • Share : ajoute une option de partage vers un service web
  • Photo Editing : permet de retoucher une photo directement depuis l’application Photos d’iOS
  • Action : offre des fonctions depuis une autre app

Les applications du Mac App Store bénéficient elles aussi de ces nouvelles possibilités, ainsi que de Finder Sync, une extension qui sert à modifier l’interface du Finder quand une synchronisation est en cours (ajout d’un badge sur un dossier, par exemple).

Tous ces types d’extensions pour iOS, Apple les présente sur son site avec des exemples concrets et Craig Federighi nous a gratifié d’une démo pendant le keynote.

L’« extensibilité » d’iOS 8 répond aussi bien à une problématique de personnalisation que de productivité. On pourra enfin choisir le clavier de son choix, un clavier que l’on sélectionnera avant tout en fonction du gain de vitesse qu’il offrira. On pourra ajouter un raccourci de partage vers son service web préféré, un gain de temps là encore. Même topo avec les widgets du Centre de notifications qui seront l’assurance d’avoir toujours à un glissement de doigt les informations qui comptent.

L’extension d’action permet ce qui était impossible jusque-là : une application peut fournir ses fonctions à une autre app. Un exemple parlant est celui de Bing Translate ; avec l’extension installée, il est possible de traduire une page web dans Safari sans avoir à quitter le navigateur. L’extension Bing apparait dans le menu de Safari et un tap suffit à l’activer.

Des extensions distribuées via des apps...

Au sortir du keynote de la WWDC, une question se posait à propos de ces extensions : quel sera leur mode de distribution ? Il ne s’agit en effet pas vraiment d’applications en tant que telles, alors ont-elles leur place sur l’App Store ? La documentation et les sessions ont très vite éclairci le sujet : toutes les extensions, y compris les widgets, devront être contenues dans des applications distribuées dans l’App Store.

Un choix somme toute logique, on voyait mal à vrai dire Apple mettre en place un second canal de diffusion à côté de l’App Store ou carrément autoriser les installations depuis le web — l’ouverture a ses limites. Ces applications qui contiennent les extensions doivent offrir quelques fonctionnalités, requiert Apple, même si leur principal intérêt réside dans leur extension.

Widgets du Centre de notifications

Même pour les claviers alternatifs, les éditeurs devront donc faire l’effort de créer une « vraie » app avec quelques fonctions et pas seulement une capsule qui contient l’extension. Ils pourront prendre exemple sur Fleksy qui sert à prendre des notes. Libre à l’utilisateur ensuite d’utiliser cette application ou bien de la ranger au fin fond d’un dossier. Le clavier alternatif sera, lui, activable dans les réglages de clavier d’iOS. Une explication et/ou un raccourci vers les réglages ne seront sans doute pas de trop pour les utilisateurs qui s’attendraient à ce que l’app serve à activer/désactiver le clavier.

Dans le cas des widgets, ceux-ci seront activables dans le Centre de notifications. Les autres types d’extensions (action, partage...) ne nécessitent pas d’être activées manuellement, elles sont proposées quand le contexte s’y prête. Par exemple, si on a installé VSCO Cam, l’application Photos présentera automatiquement son extension dans le menu dédié, mais l’utilisateur peut aussi la désactiver s’il n’en veut pas.

...mais qui peuvent fonctionner de manière indépendante

Si les extensions sont dépendantes des apps pour leur installation, elles sont en revanche gérées de manière bien différente par le système. Il s’agit de fichiers binaires à part entière qui ne restent jamais exécutés très longtemps (à l’exception des claviers). L’extension s’ouvre quand l’utilisateur la sollicite, elle fait son boulot et elle se ferme tout de suite après. Un cycle de vie très court justifié par des impératifs de mémoire. Et pour fonctionner, l’extension n’a pas forcément besoin que l’application qui a servi à son installation soit ouverte (mais elle doit rester installée).

Concernant les widgets, Apple insiste sur le fait qu’ils doivent consommer peu de mémoire. S’ils sont trop énergivores, le système s’autorise à les fermer. En théorie, les performances ne devraient donc pas pâtir d’un trop grand nombre de widgets installés — il faudra tout de même vérifier cela dans la pratique.

Une ouverture qui ne se fait pas au détriment de la sécurité

Ce système d’extensions ne remet pas en cause le principe de sandboxing qui assure une bonne sécurité à iOS. Les apps restent toujours cloisonnées et c’est le système qui joue le rôle du gendarme de la circulation. Quand Photos veut utiliser l’extension de VSCO Cam, elle envoie une requête au système qui accepte, ou non, sa demande.

L’extension sert ensuite de relais entre les deux apps, sans pour autant compromettre le sandboxing de chacune d’entre elles. Par défaut, les applications qui contiennent les extensions ne peuvent même pas partager leurs données avec ces dernières. Ces deux éléments doivent faire partie du même App Group, un conteneur qui offre la possibilité de partager certaines données (pas toutes) entre plusieurs applications. C’est ce que Google utilise pour faciliter l’identification à travers ses apps.

De plus, le système lance à chaque fois un processus différent pour l’exécution d’une extension, même si celle-ci est utilisée dans deux apps en même temps. Pas de risque donc que les données s’échappent.

Ce système d’extensions est incontestablement une grande avancée pour iOS qui va permettre « une meilleure intégration à travers tout le système et va rendre des tâches qui sont présentement complexes et fastidieuses très simples », pour reprendre les mots de Luc Vandal, le développeur Screens VNC. On aimerait bien que l’ouverture aille encore un peu plus loin par certains aspects, comme le fait de pouvoir choisir les applications par défaut. Encore quelques emails dans la boîte de Tim Cook finiront peut-être par le faire plier. En attendant, les développeurs ont déjà de quoi faire.

Le passage sur Extensibility commence à 1 h 26
Accédez aux commentaires de l'article