1. John Siracusa
    1. Mountain Lion
      1. Introduction
      2. Achat et installation
      3. Changements d'interface (1)
      4. Changements d'interface (2)
      5. Changements d'interface (3)
      6. Applications (1)
      7. Applications (2)
      8. Applications (3)
      9. Applications (4)
      10. Applications (5)
      11. iCloud(1)
      12. iCloud(2)
      13. iCloud(3)
      14. Gatekeeper(1)
      15. Gatekeeper(2)
      16. Retina et HiDPI
      17. Fourre-tout (1)
      18. Fourre-tout (2)
      19. Fourre-tout (3)
      20. Fourre-tout (4)
      21. Fourre-tout (5)
      22. Fourre-tout (6)
      23. Recommandations
      24. Deux pères, un fils
    2. Lion
      1. Introduction
      2. Installation
      3. Revoir les fondamentaux
      4. Redimensionnement des fenêtres
      5. Et voici pour les cinglés
      6. La gestion des fenêtres
      7. Le modèle de document
      8. le modèle des processus
      9. Les éléments internes (1)
      10. Les éléments internes (2)
      11. ARC
      12. Le système de fichiers
      13. Ses modifications dans Lion
      14. Documents, résolution
      15. Le Finder
      16. Mail, Safari
      17. Fourre tout (1)
      18. Fourre tout (2)
      19. Recommendations
    3. Snow Leopard
      1. Introduction
      2. Le ticket d'entrée
      3. L'installation
      4. Nouvel aspect
      5. Détails internes
      6. Quick Time X
      7. Système de fichiers
      8. Faire plus avec plus
      9. LLVM et Clang
      10. Les blocs
      11. Concurrence
      12. Grand Central Dispatch
      13. Asynchronicité
      14. Open CL
      15. La différence...
      16. Quick Time Player
      17. Le Dock
      18. Le Finder
      19. Exchange
      20. Performances
      21. Fourre tout (1)
      22. Fourre tout (2)
      23. Le futur
    4. Leopard
      1. Introduction
      2. L'héritage
      3. Nouvel aspect 1
      4. Nouvel aspect 2
      5. Le noyau
      6. 64 bits
      7. FS Events
      8. Core animation
      9. Quartz GL
      10. Core UI
      11. Détails internes
      12. Le Finder
      13. Le Dock
      14. Time Machine
      15. Performances
      16. Pot pourri
      17. Demain
    5. Tiger
      1. Introduction
      2. Retour sur le passé
      3. Nouvel aspect de Tiger
      4. Mises à jour du noyau
      5. Le lancement
      6. Les méta-données
      7. Attributs étendus
      8. Listes de contrôle d'accès
      9. Spotlight 1
      10. Spotlight 2 : analyse et potentiel
      11. Types de fichiers
      12. Méta-données : la fin
      13. Quartz
      14. Quartz 2D Extreme
      15. Core Image
      16. La vidéo sous Tiger
      17. Dashboard
      18. Le Finder
      19. Les performances
      20. Pot pourri
      21. Conclusion
    6. Panther
      1. Introduction
      2. Les précédents
      3. L'installation
      4. Nouvel aspect
      5. Performances
      6. Changement rapide d'utilisateur
      7. Gestion des fenêtres
      8. Exposé
      9. Le Finder
      10. Performance du Finder
      11. Toujours le même
      12. Safari
      13. XCode
      14. Conclusion
    7. Jaguar
      1. Introduction
      2. Le nom
      3. L'installation
      4. Modifications d'Unix
      5. Dévelopeurs...
      6. Quoi de neuf
      7. Rendezvous
      8. Quartz Extrême
      9. Performance
      10. Compositions
      11. Le Finder
      12. Applications
      13. Sherlock
      14. Le portrait
    8. Puma
      1. Prelude
      2. Introduction
      3. Installation
      4. Réglages système
      5. Performance
      6. Redimensionnement des fenêtres
      7. Utilisation de la mémoire
      8. Diagnostics de mémoire
      9. L'environnement Classique
      10. L'interface Utilisateur
      11. Le Finder
      12. Extensions de fichiers
      13. Divers, conclusion
    9. Cheeta (Mac OS X 10.0)
      1. Qu'est ce que Mac OS X
      2. Installation
      3. Le démarrage
      4. Utilisation de la RAM
      5. Performance
      6. Performance des applications
      7. Stabilité
      8. L'interface utilisateur
      9. Le Finder
      10. Le navigateur du Finder
      11. Le Finder (divers)
      12. L'interface utilisateur
      13. Os X Classique
      14. Système de fichiers
      15. Unix
      16. Applications
      17. Conclusion
    10. Les débuts de MacOsX
      1. 1999 : OSX DP2
      2. 2000 : Quartz et Aqua/a>
      3. Fin de la lune de miel
      4. la première bêta publique
      5. 2001 : Mac OS X 10.0
      6. Un investissement
    11. Finder Spatial
      1. Introduction
      2. Interfaces spatiales
      3. Le Finder spatial
      4. Le concierge
      5. Un nouveau Finder
      6. Le browser
      7. Le browser spatial
      8. Finder et méta-données
      9. Les modèles
      10. Pensées finales

Core UI




L'indépendance vis à vis de la résolution est une bonne idée, mais il y a le problème épineux de savoir dessiner tous ces widgets de l'interface utilisateur en utilisant plus de pixels. Quand l'indépendance à la résolution débarquera en 2008 (ou à un autre moment), est-ce que l'interface utilisateur de Mac OS X sera dessinée entièrement en utilisant du dessin vectoriel, à échelle variable ? Cela résoudrait bien la difficulté de savoir où mettre tous ces pixels supplémentaires, Mais je ne suis pas très partisan de cette approche. Pourquoi ne pas inclure simplement des bitmaps géants pour chaque élément d'interface, en se basant sur les mécanismes traditionnelles de changement d'échelle en bitmap pour les dessiner à des tailles plus petites ? Cela marche bien, mais cela semble un peu dispendieux d'utiliser des bitmaps géants pour des lignes et des formes de base qui sont représentées par des vecteurs de façon si compacte.

Hé bien, que voyons-nous donc là, qui se cache dans /System/Library/PrivateFrameworks dans Léopard ? Pourquoi semble-t-il y avoir un nouveau framework, CoreUI.framework ? A quoi cela pourrait-il servir ? Surprise ! Chaque morceau de l'interface utilisateur dans Léopard est dessiné d'une façon entièrement nouvelle en incorporant le meilleur des styles bitmap et vectoriel.

Jetons un coup d'œil au mécanisme. Core UI dessine chaque morceau de l'interface utilisateur sur la base d'une série de recettes XML, qui décrivent la structure et les caractéristiques de chaque élément, en se reportant à des croquis stockés dans des fichiers séparés de ressources, à l'intérieur du paquet du framework. Voici seulement quelques exemples de ces recettes :

listing

Notez la localisation de stockage : le framework Core UI contient d'autres paquets qui à leur tour contiennent des recettes et des ressources. Il est difficile de ne pas considérer cet arrangement comme une sorte de moteur de thèmes, dans la tradition de Kaleidoscope ou de ShapeShifter, et bien sûr d'Appearance Manager d'Apple elle-même... bien que ce soit un moteur proche de concurrents, et susceptible de changer par la suite. Mais maintenant c'est un écart significatif à l'approche qui était restée sans changement, de dessin de l'IU (Interface Utilisateur) dans Tiger ou dans les versions précédentes. A tout le moins, la nouvelle structure recette/ressources montre dénudés les composants qui constituent ce qu'on voir sur l'écran. Checkmark

Prenons la simple case à cocher, par exemple. Le fichier checkbox.xml est un fichier étourdissant de plus de 2800 lignes de long, dont la plupart crées très vraisemblablement par les outils Apple de création de thème de Core UI (connus depuis longtemps par ceux qui y prêtent attention). Il renvoie à une figure nommée checkmark représentée dans le répertoire de ressources par le fichier checkmark.pdf.

Dans le même répertoire, vous trouverez aussi différents bitmaps "matériels" ; en voilà deux exemples, rapetissés par rapport à leur taille réelle de 398 x 398 pixels

Cœurs inutilisés

aquamaterial.png (à gauche) et brightmaterial.png (à droite)

Gardez à l'esprit qu'il ne s'agit pas là de radio-boutons géants ; des bitmaps de ce genre sont utilisés comme sources de textures pour des widgets de toutes formes et de toutes tailles.

Et finalement, voici à quoi ressemble une case à cocher dans Léopard à différents facteurs d'échelle :

cases à cocher

Cases à cocher aux échelles 1, 2 et 3

Vous voyez comment tout commence à se mettre en place. L'exploration de l'ensemble complet des ressources révèle une division attendue du travail entre de grosses images bitmap en (PNG) et des graphiques vectoriels (en PDF). Tout de qui est linéaire ou a des formes de base est fait avec des vecteurs. Les surfacés léchées, d'un autre côté sont encore représentées avec du bitmap (sans doute amélioré à la main), souvent de très grande taille. En particulier, la manière dont Core UI construit ses widgets Aqua brillants, en utilisant une suite de bitmaps "materials", quelques uns pour l'éclairage, d'autres pour le fond, et ainsi de suite, est une façon élégante de préserver de la mémoire, tout en utilisant du dessin à la main.

Alors, qu'est-ce que cela signifie pour Mac OS X ? Et bien d'abord, cela veut dire que Apple travaille sur une solution d'indépendance à la résolution. On le savait déjà, mais c'est bien de voir jusqu'où les choses sont arrivées. Rappelez-vous que même au facteur d'échelle par défaut (1.0) avec lequel Léopard est livré, tous les widgets de l'interface utilisateur sont dessinés par Core UI. Seules les premières pré-versions de Léopard utilisaient Core UI à des facteurs d'échelle supérieurs à 1.0, et repassaient à l'ancienne manière de faire pour 1.0. La décision d'utiliser Core UI partout révèle une certaine confiance dans la technologie.

Core UI veut dire aussi que Apple est en bonne position pour proposer des modifications fondamentales à l'apparence de Mac OS X, que j'attend depuis longtemps. Core UI n'est certainement pas un moteur d'usage général, capable de créer n'importe quel rendu auquel un artiste peut rêver. Il est clairement fait pour créer des rendus de style Aqua, avec l'ajout de choses comme les ombres portées et les éclairages. Mais l'approche d'ensemble consistant à utiliser des recettes XML pour composer des ressources vectorielles et bitmaps est saine, et elle va engager Apple pour longtemps, en plein dans l'ère de l'indépendance à la résolution.