Quand on conçoit une interface, on est souvent confronté à un dilemme :

  • On souhaite faire une interface simple
  • On veut offrir des fonctions avancées

La solution est de proposer une interface à plusieurs niveaux de lecture, d’utilisation.

Plutôt que de vous embêter avec de la théorie, je vous propose un exemple concret, avec le générateur d’expressions pour les listes intelligentes de iTunes.

Le sujet, classique d’ailleurs, est de proposer un générateur de requête, sans avoir à demander à l’internaute d’apprendre un langage.

Dans ce premier exemple, simple, on peut ajouter des lignes, les unes sous les autres.

La première liste déroulante permet de choisir si on veut « un gros et » ou « un gros ou » entre les lignes :

Chaque ligne permet de choisir le critère de recherche, la liste est a peu près sur l’ensemble des champs associés à chaque médias (nom, date, durée, …).

C’est assez intuitif tout ça, pas la peine d’avoir bac + 5.

Le problème, c’est que c’est bien sympathique pour démarrer, mais cela ne permet pas d’exprimer n’importe quoi. Certaines requêtes nécessitent de faire des regroupements (les parenthèses des expressions).

Dans l’interface de base, on ne peut pas faire ça…. Mais en fouillant un peu, on trouve.

En appuyant sur Option, le bouton « + » se transforme en « … », et permet d’ajouter des blocs, comme dans l’exemple suivant :

D’un coup, notre langage d’expression devient bien plus riche !

D’autant que chaque bloc peut être un bloc ET ou OU.

Le côté intéressant est que cette fonction avancée n’est absolument pas visible par défaut. Il faut fouiller un peu.

Moi en l’occurrence, j’ai trouvé cette fonction sur un blog. Mais elle est très bien décrite dans l’aide, accessible depuis le « ? » en bas de l’écran.

Donc, c’est de mon point de vue un très bon exemple d’une interface ayant plusieurs niveaux d’utilisation :

L’utilisateur débutant y trouvera rapidement son compte.

L’utilisateur avancé trouvera un moyen de faire des choses évoluées.