1. Mode Graphique
    1. 1- Principes fondamentaux
      1. Processus de conception
      2. Caractéristiques d'un grand logiciel
        1. Haute performance
        2. Facilité d'utilisation
        3. Aspect attractif
        4. Fiabilité
        5. Adaptabilité
        6. Interoperabilité
        7. Mobilité
      3. Principes de conception
        1. Principes (1)
        2. Principes (2)
        3. Principes (3)
      4. Pensez aux utilisateurs
        1. Compatibilité internationale
        2. Accessibilité aux handicapés
        3. Etendre l'interface
      5. Priorités
    2. 2- L'expérience du Mac
      1. L'environnement
        1. L'environnement (1)
        2. L'environnement (2)
      2. Les technologies
        1. Les technologies (1)
        2. Les technologies (2)
        3. Les technologies (3)
        4. Les technologies (4)
      3. Installation et mises à jour
        1. Packaging, installation
        2. Les assistants
    3. 3- L'interface Aqua
      1. Entrées utilisateur
        1. La souris
        2. le clavier
          1. Fonction des touches
          2. Raccourcis-clavier
          3. Navigation au clavier
        3. Sélection
        4. Edition de texte
      2. Glisser-déposer
        1. Glisser-Déposer (1)
        2. Glisser-Déposer (2)
      3. Le texte
        1. Les fontes
        2. Le style
      4. Les icônes
        1. Genres et familles d'icônes
        2. Création des icônes
        3. Icônes des barres d'outils
        4. Images propres au système
      5. Les pointeurs
      6. Les menus
        1. Comportement des menus
        2. Conception des menus
        3. La barre de menus
          1. Les menus (1)
          2. Les menus (2)
          3. Les menus (3)
        4. Menus contextuels et du Dock
      7. Les fenêtres
        1. Type et apparence
        2. Eléments
          1. Barre de titre
          2. Barre d'outils
          3. Barre de recherche
          4. Barre latérale
          5. Barre inférieure
          6. Les Tiroirs
        3. Comportement des fenêtres
          1. Comportement (1)
          2. Comportement (2)
          3. Superposition
          4. Défilement
        4. Les panneaux
          1. Les panneaux
          2. Panneaux transparents
          3. Autres panneaux
      8. Les dialogues
        1. Types de dialogues
        2. Aspect et comportement
      9. Fenêtres de dialogues
        1. Recherche, Préférences, Ouverture
        2. Enregistrement
        3. Choix, Impression
      10. Les contrôles
        1. Contrôles du cadre
          1. Contrôles en capsule
          2. Contrôles hérités
        2. Les boutons
          1. Boutons poussoirs
          2. Boutons en icônes
          3. Boutons de recherche
          4. Boutons de gradient, et d'aide
          5. Boutons à champfrein
          6. Boutons ronds
        3. Contrôles de sélection
          1. Boutons radio
          2. Cases à cocher
          3. Contrôles segmentés
          4. Boutons et menus pop-Up
          5. Menus Action
          6. Boîtes de combinaison
          7. Contrôles de chemin
          8. Puits, sélection de date
          9. Menus pop-down
          10. Glissières
          11. Contrôles pas-à-pas et placards
        4. Indicateurs
          1. Indicateurs de progression
          2. De niveau, de capacité
          3. D'estimation, de pertinence
        5. Contrôles de texte
          1. Champs d'entrée
          2. Champs à jeton
          3. Champs de recherche
          4. Listes de défilement
        6. Contrôles de visualisation
          1. Triangles d'affichage
          2. Boutons d'affichage
          3. Vues en liste
          4. Vues en colonnes
          5. Vues éclatées
          6. Vues à onglets
        7. Contrôles de groupage
          1. Séparateurs
          2. Boîtes de groupage
        8. Règles de disposition
          1. Dans le corps de la fenêtre
            1. Fenêtre de préférences
            2. Fenêtre à onglets
            3. Alerte, Dialogue
          2. Contrôles réduits et mini
            1. Contrôles réduits
            2. Mini contrôles
          3. Groupement des contrôles
          4. Positionnement dans la barre inférieure
      11. Glossaire
        1. Entrées en anglais
          1. 1- A à C
          2. 2- D à H
          3. 3- I à R
          4. 4- S à Z
        2. Entrées en français
          1. 1- A à C
          2. 2- C à G
          3. 3- I à P
          4. 4- P à Z
        3. `
    4. 4- Les leçons de Lion
      1. L'environnement de Mac OS X
      2. Principes fondamentaux
      3. L'expérience utilisateur
        1. Règles de conduite (1)
        2. Règles de conduite (2)
        3. Règles de conduite (3)
        4. Règles de conduite (4)
        5. Règles de conduite (5)
        6. Règles de conduite (6)
      4. Les technologies d'Apple
        1. Les technologies (1)
      5. -->
  2. Mode Commande

Utiliser les technologies de Mac OS X (1)




Ce que dit Apple :




Mac OS X propose une quantité de technologies directement ré-utilisables pour éviter de passer du temps de développement à ré-inventer des solutions personnalisées pour des tâches génériques. Utiliser ces technologies facilitera l'intéraction de votre application avec Mac OS X et avec d'autres applications de la plateforme.


1- Le carnet d'adresses

Si votre application stocke ou utilise des informations personnelles, utilisez le framework du carnet d'adresse pour gérer cette information. Les informations personnelles correspondent aux noms, aux numéros de téléphone et de fax, aux adresses électroniques et postales connues pour une personne. A l'aide du framework Carnet d'adresse, vous avez accès à cette information à partir de la base de donnée des utilisateurs, et pouvez les afficher dans des fenêtres paramétrables.

Les interfaces du carnet d'adresse qui permettent d'afficher des fenêtres personnalisées utilisent des termes "people picker" et "picker", qui ne sont pas appropriés à une interface d'application. Vous devez à la place utiliser des noms qui décrivent le contenu, comme "Adresses", ou "Contacts".

La présentation d'une fenêtre "people-picker" est personnalisable pour afficher les données significatives pour votre applications. Par exemple, Mail personnalise cette fenêtre de la façon suivante pour montrer les contacts d'adresss électroniques.

Mail

Une fenêtre "People-Picker", celle utilisée par Mail (Source Apple).




2- L'animation

Une des caractéristiques de Mac OS X, est d'utiliser l'animation pour améliorer l'expérience ressentie par l'utilisateur, comme la miniaturisation des fenêtres dans le Dock, le déroulement des feuilles, ou l'ouverture des tiroirs. A partir de Mac OS X 10.5, l'animation concerne le mouvement des icônes dans Cover Flow (la présentation en panorama du Finder), le surgissement des items depuis une pile dans le Dock, ou l'arrivée des partenaires dans une fenêtre iChat.

L'animation permet aux utilisateurs de suivre le mouvement des objets, les aide à comprendre les effets de leurs actions, et fournit une impression physique de réalisme au monde virtuel affiché sur l'écran. L'animation se prête bien pour :
- communiquer une progression
- fournir une rétroaction signifiante
- clarifier un processus ou un concept.

Si vous développez une application pour Mac OS X 10.5 ou plus, vous pouvez vous aussi tirer avantage de l'animation, en utilisant les interfaces de programmation de Core Animation. Mais il est important de les utiliser sagement, pour fournir une amélioration subtile de l'expérience ressentie par l'utilisateur, pas comme un but en soi. Voici quelques cas où on peut envisager l'animation :

• Quand un utilisateur parcourt une collection. Quand la navigation est semblable à des activités familières du monde réel, comme tourner les pages d'un livre ou des DVDs disposés sur une étagère, l'utilisateur est mieux capable d'appréhender l'organisation et l'étendue de la collection. Quand les items dans une collection semblent avoir une taille et un poids réalistes, ils sont plus facilement reconnus d'emblée.

• Quand il est utile de comprendre les conséquences d'une action avant de l'exécuter. Montrez les conséquences d'une action pour rendre l'utilisateur sûr de ce qu'il fait et éviter des erreurs. Par exemple, les éléments du Dock s'écartent quand un utilisateur cherche à y déposer un objet, et montrent la place qu'occupera cet objet quand l'utilisateur aura relâché le bouton de la souris.

• Quand l'utilisateur entre dans un nouveau mode d'interaction, comme le mode plein écran ; l'animation peut le guider, lui fournir des indices qui l'aident à prendre conscience du mode courant. Par exemple, les étoiles défilantes de Time Machine aident l'utilisateur à faire la distinction entre Time Machine et la présentation standard du système.

• Quand les propriétés d'un objet changent. On peut montrer la transition d'un objet d'un état à un autre, à la place des états initial et final, pour aider l'utilisateur à comprendre ce qui se passe, et lui donner l'impression qu'il contrôle le processus. Par exemple, quand plusieurs propriétés d'un document changent en même temps, une icône peut montrer progressivement les effets des changements.

• Quand une action est si rapide que les utilisateurs ne peuvent pas la suivre. La vitesse et l'efficacité sont essentielles, mais parfois, cela va trop vite si bien que le contexte d'une action et son résultat ne sont pas clairs. S'il est important que l'utilisateur comprenne une connexion ou un processus, l'animation peut l'aider à suivre l'actionà un rythme plus humain. Par exemple, quand un utilisateur minimise une fenêtre, elle ne disparaît pas brutalement du bureau pour réapparaître dans le Dock, mais se déplace progressivement entre l'un et l'autre pour que l'utilisateur suive le mouvement.

Si vous décidez d'utiliser l'animation, assurez-vous qu'elle améliore les tâches et les concepts sur laquelle porte votre application de façon subtile, et n'en distrait pas l'utilisateur. L'animation peut clarifier des processus obscurs ou cachés, et fournir une rétroaction utile, mais une animation gratuite ou illogique peut dégrader l'expérience de l'utilisateur, en même temps qu'elle affecte la performance. Il faut en particulier :

• Eviter de répéter un style comme Front Row ou Time Machine pour une application qui réclame une forte intervention de l'utilisateur (comme l'entrée de texte), ou qui sert à la création de contenu. Une animation complète en plein écran, qui affiche des contrôles énormes et simplifiés ne rend pas la tâche de création de contenu plus facile ou plus efficace.

• Evitez d'animer n'importe quoi. On peut être tenté de croire que plus d'animation est plus clair et fournit une meilleure rétroaction, mais ce n'est pas vrai : la plupart des tâches et des actions se passent mieux quand elles sont accomplies rapidement et sans fanfare.

• Evitez d'animer les actions courantes de l'interface utilisateur fournies par des contrôles du système comme :
- le changement de tabulation
- l'ouverture et la fermeture des vues
- le clic sur des items de la barre d'outils.
Les utilisateurs comprennent comment les éléments de l'interface utilisateur fonctionnent, et ils n'aiment pas perdre leur temps à contempler une animation inutile à chaque fois qu'ils cliquent sur un bouton.


3- Automator

A l'aide d'Automator, un utilisateur peur automatiser des procédures courantes, et construire des flux de travail en organisant les processus d'applications différentes dans un ordre donné. Les applications d'Apple comme Mail, iPhoto, Safari rendent leurs tâches disponibles pour une organisation en flux de travail. Ces tâches (qu'on appelle actions) sont simples et étroitement définies, comme l'ouverture d'un fichier, ou l'application d'un filtre. L'utilisateur peut les incorporer dans des flux de travail différents.

En tant que développeur de votre application, vous pouvez définir des actions, correspondant à des tâches limitées que votre application peut accomplir. Vous rendez ces actions disponibles aux utilisateurs en créant des greffons d'actions qui implémentent le comportement correspondant. Un greffon d'action contient un fichier nib et un peu de code pour gérer l'interface utilisateur de l'action, et assurer son comportement. Vous pouvez utiliser Applescript ou Objective-C pour créer les greffons d'actions. Vous pouvez envisager de créer un ensemble d'actions de base qui sera livré avec l'application, pour que vos utilisateurs puissent utiliser votre application avec Automator.

En concevant l'interface utilisateur d'une action, gardez à l'esprit ces principaux conseils :

• Dans Automator, les utilisateurs empilent les actions les unes au dessus des autres. Comme les écrans sont plus larges que hauts, minimisez l'utilisation de l'espace vertical. Un moyen d'y arriver est d'utiliser un menu pop-up à la place de boutons radio, même s'il n'y a que deux choix possibles.

• N'utilisez pas de boîtes de groupage. Une action n'a pas besoin de séparer ou de regouper des contrôles.

• Evitez les vues par onglet ; utilisez à la place des vues de tabulation cachées pour naviguer entre différents ensembles de contrôles.

• Evitez d'utiliser des étiquettes pour donner le nom d'une action ou sa description. Elles prennent de la place sans fournir d'information.

• Utilisez une triangle d'affichage pour afficher ou cacher des réglages optionnels.

• Pour minimiser l'espace utilisez des contrôles Aqua de petite taille et des marges de 10 pixels.

• Assurez une rétroaction. Utilisez un indicateur de progression quand l'action est longue à accomplir

• Si possible, affichez un exemple montrant le résultat de l'action pour que les utilisateurs puissent évaluer l'impact de réglages différents.


Mes commentaires :

Nous sommes ici toujours dans des considérations très techniques, à l'usage du développeur. Mais l'utilisateur, s'il sait un peu lire, peut en tirer des informations très précieuses pour comprendre l'environnement de travail de Mac OS X, et en tirer mieux parti à l'occasion. Cela va être le cas pour toutes les pages de ce chapitre ;

Le premier enseignement, est que certaines applications d'Apple (ici le Carnet d'adresses) peuvent mettre leurs données à la disposition d'autres applications. Plutôt que par un simple accès au fichier de données de cette application, qu'il suffirait de lire dans un format accessible, mais qu'il faudrait ensuite interpréter, présenter, organiser, les choses passent par l'intermédiaire d'un framework, qui fournit un ensemble de méthodes d'accès à tous les objets manipulés par l'application, et permet de les restituer dans des formats et avec des organisations différentes. L'avantage, est que l'essentiel du travail de récupération et de présentation des données est déjà fait par le framework. Le programmeur dispose ainsi d'outils efficaces pour simplifier considérablement son travail, mais il doit quand même savoir utiliser le framework...

Automator est un autre exemple d'outil mis à la disposition des utilisateurs par Apple ; il permet d'enchaîner des actions à l'intérieur d'une application, ou d'une application à une autre. Mais Apple ne s'est pas contentée de définir des actions pour ses propres applications ; elle permet au programmeur de définir ses propres actions pour ses propres applications. A l'utilisateur ensuite, d'en tirer parti ou pas. Si vous avez besoin d'automatiser des tâches qui font intervenir plusieurs applications (copier une sélection dans un document, la coller dans un autre par exemple), vous pouvez utiliser Automator à condition que les tâches soient très répétitives et se présentent dans des conditions similaires à chaque fois. Malheureusement, c'est rarement le cas... en tout cas dans les manipulations que je fais régulièrement.

Connaissez bien les principales formes d'animation que vous rencontrez : l'animation est faite pour vous aider à reconnaître ou à évaluer une tâche quand elle est un peu complexe. Certaines animations me sont très utiles, comme l'agrandissement des icônes du Dock sous le curseur, l'apparition ex-nihilo du Dock quand le curseur atteint le bord de l'écran, le placement d'une nouvelle icône dans le Dock. Tout cela, c'était avant que le Dock ne soit corrompu par des ajouts inutiles et inconsidérés, qui en font maintenant un monstre.

Apple semble très prudente à l'égard de l'animation, et met en garde de ne pas l'employer n'importe comment. Mais elle a mis en place des animations qui me semblent d'une utilité et d'un goût très contestables, comme le déploiement en éventail des fichiers d'un dossier du Dock quand ce dernier est en bas de l'écran (heureusement, mon Dock est à gauche, et je ne rencontre pas ce comportement plutôt infantile) !

Pour un développeur, mettre en place une animation, même pour une tâche élémentaire, n'est pas une mince affaire, malgré l'existence du framework Core Animation. Il est très puissant, mais pas d'un abord facile, comme vous pourrez le voir si vous suivez le lien ci-dessus. Alors, en tant qu'utilisateur, contentez-vous d'identifier les animations disponibles sur votre système.