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

L'environnement de Mac OS X (2).







Mes commentaires :

Pour une fois, les commentaires viennent avant le texte d'Apple, car cette partie est très technique, et pas vraiment à la portée d'un utilisateur lambda, et c'est plutôt normal, elle est faite pour des développeurs. Mais n'en négligez pas la lecture, car elle vous apprendra beaucoup de choses qui vous permettront de mieux comprendre Mac OS X.

L'essentiel repose sur la notion de paquetage (bundle), qui est proposé par Apple comme mode privilégié d'installation des applications. Quand vous installez une application, le mode opératoire normal vous invite à glisser un dossier (avec une extension .app) dans le répertoire des applications (vous devez avoir un statut d'administrateur pour le faire). Un paquetage regroupe l'ensemble des ressources dont une application a besoin pour fonctionner, y compris les ressources de localisation qui lui permettent de fonctionner sous des langues différentes.

Un paquetage (bundle) est fondamentalement un dossier. Ce que vous prenez pour un fichier (avec l'extension .app) dans le dossier /Volumes/Macintosh HD/Applications (ou /Volumes/SnowLeopard/Applications si vous avez suivi mes conseils) représente en réalité un dossier. Vous pouvez aller voir facilement son contenu : par exemple, dans le dossier "Applications", faites un Crtl-clic sur Text Edit.app pour accéder au menu contextuel, et choisissez "Afficher le contenu du paquet" ; explorez (sans rien modifier) le contenu qui est ainsi présenté ; parcourez les dossiers pour voir ce qu'ils contiennent. Les fichiers .nib sont les fichiers de l'interface graphique gérés par Interface Builder.

titre

Le contenu de Text Edit.app ; explorez l'ensemble du dossier (mais sans rien modifier).

Avec XCode (et Interface Builder), le système de développement d'Apple, les développeurs disposent d'outils pour créer ces paquetages, ce qui ne veut pas dire que la tâche de développement est simple. On s'en rend un peu compte à lire les recommandations qui suivent, mais c'est encore beaucoup plus compliqué que vous ne l'imaginez. L'important, puisque vous ne serez sans doute jamais des développeurs, n'est pas de rentrer dans le détail, mais d'avoir une vue d'ensemble des contraintes qu'impose Mac OS X ; c'est bien montré dans ce qui suit.


Ce que dit Apple :

5- Le Finder

Voici quelques conseils pour que votre application s'intègre bien avec le Finder :

• Donner au paquetage (bundle) de l'application une extension .app ; le Finder en tient compte pour lancer l'application. Selon les Préférences du Finder<Options Avancées, le nom de l'extension peut être affiché ou masqué.

• Mettre les applications CFM (Code Fragment Manager) dans un paquetage ; vous pouvez toujours tirer avantage du mécanisme des paquetages de Mac OS X.

• Fournissez des informations au Finder à l'aide de listes de propriétés (property lists). C'est le mode standard pour placer et stocker des informations sur votre applications et les types de documents.

• Quand vous sauvez vos documents assurez-vous que vous leur donnez une extension de fichier convenable pour permettre l'inter-opérabilité. Vous pouvez aussi définir les types File et Créateur ; ils ne sont pas indispensables, mais assurent l'inter-opérabilité dans l'environnement classique.

• Evitez de modifier le type Créateur des documents existants. Il indique une forme de propriété du fichier. Votre application peut définir un type créateur pour les fichiers qu'elle crée, mais elle ne doit pas modifier le type Créateur d'autres applications. L'utilisateur peut toujours associer des fichiers avec une application spécifique à l'aide de la fenêtre d'informations.

• Si votre application crée des documents dans des formats autres que HTML, RTF, texte pur, TIFF, PNG, JPEG, PDF et mov, il vous faut proposer un générateur Quick Look pour que le Finder puisse afficher ces documents dans une vue Cover Flow ou dans Quick Look.


6- Formats et extensions de fichiers

Quand c'est possible, utilisez des formats de fichiers standards pour vos documents ; cela rend plus facile l'échange de données entre votre application et d'autres. Les utilisateurs seront plus enclins à adopter votre application s'ils savent qu'ils peuvent récupérer les données, ou en mettre.

Pour la sauvegarde des données de configuration, faites-le dans un fichier texte, pour que l'utilisateur puisse le modifier. Les applications de Mac OS X utilisent XML. Vous pouvez écrire des données XML à l'aide du support fourni pour les préférences système et XML dans Core Foundation et Cocoa.

De nombreuses plateformes se basent sur l'existence d'une extension au nom de fichier pour identifier le type de fichier. Bien que depuis longtemps, les développeurs sous Mac OS X aient découragé leur utilisation, les extensions facilitent les échanges de fichiers entre des utilisateurs de plateformes différentes. Les applications qui sauvegardent des documents doivent inclure une extension de fichier appropriée. En même temps, elles doivent respecter les préférences de l'utilisateur concernant l'affichage des extensions des fichiers et des documents.


7- L'internationalisation

Le système d'empaquetage des applications de Mac OS X accepte des textes localisés, des images, des fichiers nib et d'autres ressources. Mais adapter une application à des marchés différents va au delà d'une simple traduction de chaînes de caractères. La compatibilité internationale propose quelques considérations d'ensemble pour assurer l'internationalisation ; au minimum, vous devez inclure les éléments suivants :

• Organisez votre programme en paquetage pour tirer parti du support d'internationalisation de Mac OS X.

• Utilisez du texte Unicode. Mac Os X supporte Unicode complètement, et votre application doit le faire aussi.

• Modifiez votre code pour obtenir des chaînes de caractères visibles par l'utilisateur à partir des fichiers .string. Utilisez les interfaces de Core Foundation et Cocoa pour récupérer les les chaînes de caractères à partir des fichiers de ressources de votre paquetage.

• Utilisez des fichiers .nib pour stocker les données de l'interface utilisateur


8- Problèmes associés à des utilisateurs multiples

Mac OS X est une système multi-utilisateurs : non seulement il accepte de multiples comptes utilisateurs, mais aussi, il permet à des utilisateurs multiples de se partager simultanément les ressources du même ordinateur. Avec cette technique de changement rapide d'utilisateur, l'utilisateur abandonne l'usage de l'ordinateur sans sortir de sa session. Dans ces conditions, des conflits peuvent intervenir si les applications ne gèrent pas convenablement les ressources qu'elle partagent : la mémoire partagée, les fichiers de cache, les sémaphores et les tuyaux nommés (named pipes) doivent être soigneusement étiquetés pour empêcher leur corruption par d'autres utilisateurs utilisant la même application. Les applications ne doivent pas considérer qu'elles ont un accès exclusif aux ressources du système, comme un CD ou un DVD.

Il faut donc garder à l'esprit quelques éléments spécifiques lors de la conception du programme :

• Les ressources nommées d'une application, qui peuvent être accessibles à partir de multiples sessions d'utilisateurs doivent inclure un identificateur (ID) de session dans le nom de celle-ci. Cela s'applique aux fichiers de cache, à la mémoire partagée, aux sémaphores, aux tuyaux nommés, entre autres.

• Les utilisateurs n'ont pas tous les mêmes privilèges ; seuls les administrateurs peuvent écrire des fichiers dans le dossier /Applications. Certains utilisateurs peut avoir des privilèges limités, ou un accès limité à certaines parties du système ; ils peuvent en particulier être incapables d'exécuter les actions suivantes :
- accéder à toutes les vitres des Préférences Système
- modifier le Dock
- changer leur mot de passe
- brûler des DVDs ou des CDs
- ouvrir certaines applications.

• Sur une ordinateur, les utilisateurs peuvent être locaux, ou venir du réseau, donc ne supposez pas que le répertoire maison (Home) est sur le volume local. Vous pouvez avoir affaire au réseau.


9- La gestion des ressources

Les applications en paquetage facilitent l'installation, et sont plus faciles à éliminer pour l'utilisateur. C'est le mécanisme de distribution à privilégier. Voici quelques conseils :

• Mettez toutes les ressources nécessaires dans le paquetage de l'application ; il doit contenir tout ce qui est nécessaire pour faire tourner l'application.

• Ne mettez que les sous-ensembles de fichiers nécessaires à la localisation dans les répertoires de ressources spécifiques au langage. Si des ressources n'ont pas besoin de localisation, inutile de les multiplier : le chargement des paquetages recherche les ressources globales aussi bien que les ressources localisées, et renvoie celle qui est la plus appropriée.

• Utilisez un installeur pour mettre des ressources optionnelles dans le sous-répertoire approprié de la Bibliothèque. Les ressources optionnelles correspondent à des modèles de documents, ou à d'autres ressources utiles pour l'application, mais pas nécessaires au lancement de celle-ci. La plupart de ces fichiers doivent être mis dans un sous-répertoire spécifique à l'application dans ~/Library/Application Support ou dans /Library/Application Support.

• Evitez de stocker des données dans la fourche ressources de l'exécutable de l'application ; elle n'est pas faite pour cela. Sauvegardez vos ressources dans des fichiers individuels dans le paquetage de l'application.


10- Les threads

Pendant la conception de l'application, identifiez les opérations qui peuvent être faites en parallèle. Le multi-thread pour une application améliore la flexibilité de l'interface utilisateur en déplaçant les calculs longs en dehors de la boucle d'évènements principale. Le multi-thread peut améliorer la rapidité de certaines tâches , notamment sur les systèmes multi-processeurs. L'utilisation des threads réclame beaucoup de précautions pendant la conception, pour s'assurer que les structures des données partagées ne sont pas corrompues par d'autres threads.