L'environnement de Mac OS X (1).
L'environnement de Mac OS X peut influer sur la conception de votre application ; il n'est pas associé à une seule technologie, ou à un type de développement, mais s'applique à tout développement, et vous devez en être familier.
Mac OS X est au centre du moyeu numérique de l'utilisateur, toujours prêt à être utilisé. Parce qu'il est équipé de systèmes d'économie d'énergie, il est courant de laisser un ordinateur tourner la plupart du temps ; tenez compte du fait qu'il peut fonctionner depuis des heures, des jours, des semaines ou même des mois :
• Evitez de dépendre d'un redémarrage pour vous débarrasser de fichiers temporaires ou en cache qui peuvent encombrer le disque ; éliminez ces fichiers vous-même quand vous n'en avez plus besoin.
• Evitez de compter sur un démarrage ou une ouverture de session pour démarrer des processus au niveau de l'utilisateur. Si un utilisateur quitte un processus lancé au démarrage, ce processus sera inutilisable jusqu'à ce que la machine redémarre.
• Evitez d'exiger un redémarrage après une installation ou une mise à jour de logiciel, à moins que ce ne soit absolument nécessaire. Votre application n'est sans doute pas la seule à être ouverte, et un redémarrage peut être une interruption brutale.
Fournissez des valeurs précises si votre application doit afficher des informations sur le disque, qui soient cohérentes avec celles fournies par le Finder ou d'autres applications. Utilisez GB (10003, et non GiB, 10243) pour récupérer toutes les statistiques des disques. Cela évite des confusions pour les utilisateurs travaillant sur des systèmes différents.
Ne faites pas de suppositions sur la taille de l'écran. Mac OS X peut fonctionner sur des écrans de 800 x 600, mais les utilisateurs peuvent avoir des moniteur en hautes résolutions multiples. Par défaut, optimisez votre application pour 1024 x 768 pixels. Une résolution de 640 x 480 est disponibles- pour des iBooks, et dans des applications Classique, mais cela n'implique pas que vous deviez la considérer comme résolution minimum ; concevez votre application pour une résolution d'au moins 800 x 600.
Sachez que les utilisateurs peuvent tourner leur écran de 90° ; une résolution de 800 x 600 (rapport L/H = 1,33/1) devient après rotation un rapport L/H = 0,75/1. L'application peut être informée des évènements de changement d'écran par une fonction de rappel comme CGDisplayReconfigurationCallBack.
Le Dock est plus qu'un outils pour les utilisateurs ; les développeurs doivent en être conscients, et le prendre en compte dans leurs applications. En créant ou en re-dimmensionnant des fenêtres, prenez en compte la disposition du Dock ; les nouvelles fenêtres ne doivent pas se superposer au Dock, et il faut empêcher que l'utilisateur de déplacer ou de re-dimensionner une fenêtre sous le Dock (sous Cocoa, utiliser la méthode NSScreen pour connaître l'écran sans le Dock et la barre de menu).
Fournir de l'information dans le Dock
• Utiliser l'étiquetage (badging) pour fournir une information dans le Dock ; l'étiquetage consiste à surimposer une petite image sur l'icône de l'application dans le Dock. Par exemple, Mail utilise l'étiquetage pour monter le nombre de messages non lus. C'est une bonne façon de communiquer une rétro-action.
• Pour des informations plus importantes, comme des conditions d'erreur, utilisez les Notification Manager. Les notifications provoquent le rebondissement de l'icône dans le Dock ; supprimez cet effet quand l'utilisateur a réagi au problème. Dans une application Cocoa, les classes associées à une erreur déclenchent automatiquement des notifications au Dock.
Cliquer dans le Dock
Un clic sur l'icône d'une application dans le Dock rend toujours cette application active.
• Si l'application n'est pas ouverte, un nouvelle fenêtre doit s'ouvrir. Dans une application à base de document, l'application doit ouvrir une nouvelle fenêtre de document sans titre. Pour une application sans document, une fenêtre principale doit s'ouvrir.
• Si l'application est ouverte, l'application devient active, et toutes les fenêtres non minimisées de l'application passent au premier plan (les fenêtres minimisées restent dans le Dock). S'il n'y a pas de fenêtres non minimisée quand l'utilisateur clique sur l'icône, la dernière fenêtre qui a été minimisée doit s'ouvrir et devient active. Si aucune fenêtre n'est ouverte, une nouvelle fenêtre sans titre s'ouvre pour une application à base de document, ou autrement, une fenêtre principale de l'application.
Si on clique et maintient appuyé l'icône d'une application ouverte dans le Dock, deux choses interviennent :
• Exposé affiche toutes les fenêtres ouvertes de l'application (y compris les fenêtres minimisées).
• Un menu minimum du Dock permet de :
- Quitter l'application
- Cacher ou montrer la fenêtre de l'application
- Proposer les options : Garder dans le Dock, Ouvrir avec la session, et Afficher l'application dans le Finder
Si on clique et maintient une icône d'une application qui n'est pas ouverte, un menu propose :`
- d'ouvrir l'application
- les options Supprimer du Dock, Ouvrir avec la session, et Afficher l'application dans le Finder
Un Ctrl-Clic sur l'icône d'une application ouverte affiche un menu personnalisable ; par défaut, il affiche les mêmes items que le menu minimal du Dock, liste en plus toutes les fenêtres ouvertes (y compris les fenêtres minimalisées), et peut contenir des items propres à l'application. Un Ctrl-Clic sur une application non ouverte affiche le menu minimal.
Rien à dire sur les trois premiers paragraphes de cette page. Après être longtemps, et seule, restée au GigaOctet binaire, Apple s'est résolue avec Snow Léopard à passer au GigaOctet décimal et est ainsi rentrée dans le rang. Je le regrette personnellement, mais c'est ainsi, et cela me semble plus commercial que fondamental.
Mais il me faut encore, puisque l'occasion se présente, revenir sur les nouvelles dispositions du Dock cogitées par Apple, car je ne comprends toujours pas quelle mouche a piqué ses concepteurs :
• Ces dispositions sont nouvelles ; les Aqua Human Interface Guidelines de 2001 ne parlent pas du Dock. Pourtant, le Dock est hérité de l'étagère (the shelf) du Next, et a été adapté dès les premières versions de Mac OS X 10, avec ses possibilités de miniaturisation des icônes, et un affichage de menus hiérarchiques (docklets).
• Revenons aux fondamentaux : l'intérêt du Dock, c'est de mettre facilement à portée de l'utilisateur les applications et les documents qu'il utilise couramment, et d'y conserver les fenêtres miniaturisées. Cela évite d'aller les chercher dans le système de fichiers. Pour être efficace, le Dock ne doit pas être inutilement surchargé ; Mac OS X permet d'ôter ou de remettre facilement des icônes du Dock par un simple glisser-déposer, quand les besoins de l'utilisateur changent.
• Des améliorations importantes ont été apportées au Dock en incluant ses préférences dans les Préférences Système, en le disposant au choix sur trois côtés de l'écran, en permettant qu'il soit caché et réapparaisse quand le curseur touche le bord de l'écran, et en agrandissant les icônes placées à proximité du curseur pour les rendre plus lisibles. Ces fonctionnalités sont vraiment utiles, et rendent très confortable l'utilisation du Dock.
• Je suis déjà beaucoup moins enthousiaste à propos des menus du Dock, qui ne font que dupliquer des possibilités disponibles ailleurs : si j'ai besoin du terminal, le Dock me l'ouvre, et les commandes du Dock (Nouvelle fenêtre, Nouvelle commande, Nouvelle commande distante...) sont très réductrices par rapport au menu du terminal, donc sans intérêt. Et pourquoi passer par le Dock pour quitter l'application, ou la masquer quand on est dedans ?
• L'option "Ouvrir avec la session" est disponible dans <Préférences Systèmes<Comptes<Ouverture, et a le mérite d'être applicable pour toutes les applications ; pourquoi distraire l'utilisateur vers une autre solution, qui n'a pas la stabilité de la précédente ? Et si vous décochez "Garder dans le Dock" (cela semble aller de soi puisque vous l'y avez mis !), l'icône correspondante disparaît du Dock dès que vous fermez l'application. Tout cela ne peut qu'entraîner la confusion, ou est au mieux inutile. Heureusement (pourrait-on dire), ce n'est accessible qu'aux utilisateurs avertis (qui n'ont vraiment pas besoin de cela), car les autres ont peu de chances de faire spontanément un Ctrl-clic sur l'icône. Bref, des complications pour rien !
Les dernières dispositions du Dock, qui ouvrent Exposé sur un clic maintenu sont elles aussi inutilement compliquées, et inutiles. Certes, seules les fenêtres de l'application y apparaissent, mais Exposé est (plus naturellement) disponible à l'aide d'une touche spéciale du clavier, et l'utilisateur n'est pas aussi stupide, qu'il ne puisse pas y identifier les documents de l'application qui l'intéresse ; à partir de là, l'action nécessaire est la même : cliquer sur le document choisi pour le rendre actif. Je ne vois donc pas l'intérêt de passer sur un clic maintenu, qui là encore a beaucoup de chances d'être complètement ignoré des utilisateurs débutants, ou même confirmés. Quand à prétendre qu'il s'agit de dispositions volontairement réservées à l'expert, elles sont généralement trop réductrices pour intéresser l'expert !
Les menus et le déclenchement d'Exposé font entrer Mac OS X dans un fonctionnement modal, cela même qu'Apple cherche à décourager. Ils ne font que dupliquer des fonctionnalités dont la place naturelle est ailleurs ; ce faisant, ils multiplient, certes, les possibilités d'accomplir une tâche, mais au prix (élevé) d'une complexité accrue, avec des actions spécifiques de l'utilisateur (le Ctrl-clic, le clic maintenu) qui sont loin d'être intuitives. Toutes choses contraires aux recommandations des AHIG.
Les piles de documents qui apparaissent en éventail quand le Doc est un bas du bureau sont (à mon humble avis) une représentation infantile des dossiers du Finder, qu'il est bien plus facile de consulter à partir du Finder. L'information annexée en PDF au dossier de téléchargement à propos de ces piles contient d'ailleurs en français une grossière erreur de traduction puisqu'elle parle de "ventilateur" pour évoquer l'éventail ! Pourquoi introduire dans le Dock cette notion de "Pile" qui ne fait que compliquer les choses en dupliquant la notion bien établie de Dossier ?
Et puis, j'ai déjà déversé ma bile sur l'aspect sinistre du Dock, sur le fait que le noir empêche (même les non handicapés) de voir les coordonnées d'une recopie partielle d'écran (il faut utiliser l'outil Capture pour avoir des coordonnées en rouge), sur la semi-transparence des fenêtres d'icônes d'un dossier...
Toutes choses indignes de l'Apple que je connais (ou que je connaissais ?).