Le partage d’informations entre applications a toujours été au coeur d’iOS mais a largement pris son envol depuis iOS 6 avec l’introduction des deux rangées d’icônes et les extensions d’actions. Cependant cette méthode conserve de fortes limites en matière d’interaction, notamment à cause d’une communication à sens unique de l’application en cours d’utilisation vers l’application de destination.

Apple propose pourtant les méconnus schémas d’URL comme “x-callback-url”, un mode d’interaction plus complet et plus technique mais dépendant fortement du bon vouloir des développeurs concernant sa mise en place.

À l’occasion de l’arrivée de ce système dans Ulysses Mobile, procédons à un petit défrichage en règle de cette solution pour envoyer des requêtes d’une application à une autre et en exploiter les réponses…

Le principe de x-callback-url

Un peu de “méthodes”

En programmation, toute application emploie des “méthodes” pour réaliser certaines actions comme, par exemple, l’envoi d’un tweet, la création d’un document, la conversion d’une donnée, etc. Chaque “tap” sur un bouton est l’occasion pour l’application d’exécuter la méthode associée et de réaliser les actions qu’elle “contient”.
Une méthode va prendre une information en entrée, la traiter et produire un résultat. Exemple : le texte d’un tweet (l’entrée) son envoi (le traitement) et la confirmation de publication (le résultat).

X-callback-url pour utiliser les méthodes des apps

Un développeur qui implémente « x-callback-url » dans son application va ainsi rendre “disponibles” des méthodes (avec entrée et résultat) aux autres applications en mesure d’exécuter de tels appels (Editorial, Drafts, Launch Center Pro, etc).

Le fonctionnement de ce protocole inter-applications est aussi “simple” qu’une adresse (URL) « type » web farcie de paramètres.

AppCible://x-callback-url/methodeTest?x-source=AppSource&text=le+texte+de+mon+tweet

Ce premier exemple permet d’appeler la méthode “methodeTest” de “AppCible” à partir de “AppSource” et de lui donner l’information “text” contenant le texte de notre tweet. Ici, la communication est à sens unique, proche du système de partage d’iOS : on envoie une information à l’application pour lui faire faire une action (la méthode).

Notez que, dans ce schéma, vous avez des couples “clé=valeur” liés entre eux par le caractère “&”. En exploitant ce principe, il est possible d’ajouter d’autres paramètres (la clé) et leurs données associées (la valeur).

Ainsi, si l’on veut traiter le résultat de la méthode de “AppCible”, il est possible d’ajouter des paramètres supplémentaires :

AppCible://x-callback-url/methodeConversion?
x-success=AppSource://x-callback-url/afficherConversion&x-source=AppSource&x-error=AppSource://x-callback-url/afficherErreurs&montant=40&monnaie=euro

Si l’on découpe ici cette action, voici ce qui se passe :

  • nous faisons appel à la méthode “methodeConversion” de “AppCible”,
  • “x-success” indique à “AppCible” une méthode “afficherConversion” à utiliser en cas de réussite.
  • “x-source” identifie l’application de départ “AppSource”.
  • “x-error” sur le principe de “x-success” permettra de réagir en cas d’erreur retournée.
  • “montant” et “monnaie” sont des variables contenant des valeurs fournies à la méthode.

Documentation indispensable

Vous avez sûrement déjà lancé nombre d’applications courantes supportant les schémas “x-callback-url” sans vous en rendre compte : Fantastical, Google Chrome et Maps, Prizmo, Ulysses, etc.

En effet, le concept n’est pas évident au premier abord et ferait bien vite fuir les utilisateurs sans autre forme d’explication ou d’exemple pratique.

Chaque application définissant elle-même quelles méthodes, quelles “variables” et quels résultats elle gère, il y a autant de possibilités que d’ouvertures créées par les applications, multiplié par leur nombre !

Malheureusement il faut soit fouiller dans l’aide de l’application, soit examiner à la loupe le site du développeur pour découvrir l’étendue des possibilités offertes à la programmation…

X-callback-url en pratique

La meilleure façon d’utiliser x-callback-url est de faire appel à des applications permettant de créer des actions et de les enregistrer comme, par exemple, Editorial ou Launch Center Pro.

Safari comme premier exécutant

Le format de ces schémas étant du type “URL”, vous pouvez, même si ce n’est pas pratique, utiliser Safari pour lancer une action.
Par exemple, la documentation de Fantastical (géniale application de calendrier sous iOS et OS X) indique que l’on peut utiliser une méthode “parse” bardée de paramètres comme “sentence” (l’intitulé) pour créer un événement.

Si vous tapez la commande d’action suivante dans la barre d’adresse de Safari, vous créerez un nouvel événement « Piscine » :

fantastical2://parse?sentence=Piscine

Cela permet de rapidement tester ses méthodes et leurs paramètres. Attention, avec cette technique basique il faut “encoder” les textes et ainsi remplacer tous les espaces par “%20”, ce que des applications comme Editorial s’occupent de faire toutes seules !

Launch Center Pro pour des grilles d’action

Comme son nom l’indique, Launch Center Pro est un lanceur qui peut être truffé de raccourcis de tous types dont notamment des actions basées sur le protocole x-callback-url.

Dans Launch Center Pro, vous bénéficiez de l’aide appréciable d’un éditeur visuel pour rapidement créer vos actions personnalisées.

Nous choisissons Fantastical, donnons un nom à notre action puis intégrons une demande de saisie (Prompt) pour le titre de l’événement.

Hop c’est fini !

Editorial

Avec un éditeur de texte avancé et ouvert à la programmation d’actions comme Editorial, vous allez pouvoir aller plus loin encore. Conservons notre exemple de création d’événement dans Fantastical avec l’idée de rajouter d’autres informations : la date du jour et une note sur la base du texte sélectionné dans le document.

Pour cela nous ajoutons donc un nouveau “workflow” qui comprend deux actions : demander le titre du rendez-vous puis faire appel à l’URL x-callback de Fantastical.

Vous noterez qu’Editorial permet de renseigner des variables pré-définies, sorties du document comme “Selected Text” (pour le texte sélectionné dans le document) ou encore “Year, Month et Day” pour récupérer la date et la formater selon le schéma voulu, sur la base des spécifications fournies par Fantastical.
Pensez à taper sur le symbole “%” à gauche de la saisie de l’URL pour qu’Editorial “encode” automatiquement les espaces et autres caractères spéciaux.

Il ne reste plus qu’à tester… et ça marche !

Pour la suite…

Maintenant que nous avons vu les bases des schémas x-callback-url et leur intérêt assez fort pour exploiter le potentiel des applications et étendre leurs fonctionnalités, il ne reste plus qu’à se lancer !

  • Commencez par identifier les applications supportant x-callback : dans leur description sur l’App Store, dans l’aide, sur le site du développeur ou encore ici (pas toujours à jour).
  • Déterminez ce que vous souhaitez faire, les séries d’actions qui vous feront gagner du temps…
  • Créez vos actions, testez leur fonctionnement, recevez et traitez les résultats…
  • et enfin… profitez de ces nouveaux outils !

Nous ne manquerons pas de revenir sur cette notion avec des « en pratique » précis pour augmenter la productivité au sein d’une série d’applications que nous utilisons au quotidien.

1 COMMENTAIRE

  1. Vu que je vais publier un truc derrière, je ne vais pas faire de commentaire dithyrambique…!

    Et bien si…!

    Si, car je comprends mieux ce que je fais à l’estime et en bricolant par approches successives…!!!

    Bref, ô utilisateurs d’écrans sous iOS, pensez-y car nombre de produits de traitement de texte supportant les balises Markdown et MultiMarkdown ont ajouté ces ressources… Et, du coup… Mais ceci est une autre histoire. Patience…!

À vous la parole !

Fermer
*
*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.