Apple Developer Connection
Recherche avancée
Member Login Ouverture de session | Vous n’êtes pas membre ? Contactez l’ADC

Mac OS X v10.4 Tiger: Developer Overview

La prochaine version du puissant système d'Apple à base d'UNIX, Mac OS X v10.4 Tiger, représentera la plus importante révision pour les développeurs depuis la sortie de Mac OS X en 2001. Tiger est rempli de technologies de pointe, proposant ainsi de nouvelles opportunités particulièrement intéressantes pour la plupart des développeurs. En fait, les développeurs travaillant sur des versions préliminaires de Tiger — membres ADC Select et Premier, participant à la WWDC 2004 — découvrent déjà les innovations et les possibilités d'utiliser les nouvelles fonctionnalités, API et environnements de développement.

Cet article est plus particulièrement consacré à quelques-unes des nouvelles technologies les plus passionnantes de Tiger et en illustre la signification pour les développeurs. Il s'agit de :

  • Spotlight
  • Dashboard
  • Développement 64 bits
  • Xcode 2.0
  • Automator
  • Core Image
  • Core Data

Nous vous parlerons également de quelques autres nouveautés et vous fournirons des détails pour vous lancer rapidement dans le développement d'applications pour Tiger. Entrons directement dans le vif du sujet avec Spotlight.

Spotlight

Apparaissant de manière proéminente sous la forme d'une icône sur la partie droite de la barre de menus, Spotlight est la première des nouvelles fonctionnalités que remarqueront la plupart des utilisateurs. Comme cela est détaillé sur la page Avant-première Mac OS X v.10.4 Tiger, Spotlight permet une recherche rapide et intuitive sur l'ensemble des données de votre système. Spotlight, comme beaucoup d'autres nouveautés de Tiger, comme les dossiers intelligents, est construite sur un ensemble de services sous-jacents qui collectent, mettent à jour et indexent à la fois le contenu et les métadonnées des fichiers de votre système.

En quelques mots, chaque fois qu'un fichier est enregistré, ses métadonnées et son contenu sont examinés, et sont ensuite enregistrés dans une base de données indexée. Ensuite, lorsqu'une recherche Spotlight est lancée, la base de données est interrogée et renvoie le chemin d'accès de chacun des documents qui correspond à la recherche. L'élégance de cette approche est qu'elle ne requiert aucune modification des applications ou du format de données. La façon dont la technologie Spotlight fonctionne est présentée dans la figure 1.

Spotlight diagram

Figure 1 : traitement et stockage des métadonnées.

Le potentiel offert par cette technologie est quasiment sans limite pour les développeurs. Par exemple, une application qui catalogue les images en général peut désormais trouver toutes les images situées dans le dossier de départ de l'utilisateur et travailler avec. Ou imaginez encore une application fonctionnant avec les contacts ; Spotlight peut rassembler les fichiers et tous les autres éléments pertinents pour une personne en particulier.

Lorsque Tiger sera commercialisé, il sera livré avec des outils d'importation pour une grande variété de formats courants. Il sera en mesure d'importer des métadonnées de fichiers images JPEG, PNG, TIFF, et GIF, de fichiers audio MP3 et AAC, d'animation QuickTime, de fichiers PDF, de transcriptions iChat, d'emails, de contacts, de calendriers, et bien plus encore. Si votre application utilise un format propriétaire, vous pourrez rendre accessibles les métadonnées de ces fichiers aux utilisateurs au travers de Spotlight. Pour cela, vous il vous faudra fournir un plug-in d'importation Spotlight avec votre application. Cela consistera à utiliser le modèle d'importation Spotlight avec Xcode et à implémenter une seule fonction à l'intérieur du plug-in dédié à Spotlight.

dashboardDashboard

Une des nouvelles fonctionnalités les plus sympathiques de Tiger est Dashboard, une nouvelle façon pour les utilisateurs de Mac d'accéder rapidement et simplement à des informations et des fonctionnalités qu'ils utilisent fréquemment. Dashboard abrite des widgets, des mini-applications qui apportent une interface très simple et dédiée à des tâches courantes. Elles sont très légères (se lancent instantanément), très simples et faciles à utiliser. Les widgets peuvent être autonomes, compléter une fonctionnalité d'une application plus importante ou plus puissante, afficher une information provenant d'Internet, et bien plus encore.

Dashboard de Tiger combine de manière unique une grande variété de technologies de Mac OS X d'une manière aussi innovante que puissante :

  • Dashboard apparaît et disparaît par un simple appui sur un bouton, ou d'un simple geste avec la souris, avec un effet visuel similaire à celui d'Exposé. Cela rend les widgets accessibles instantanément sans toutefois être encombrants.
  • Les widgets sont basés sur le Web Kit. N'importe quelle personne sachant associer des balises HTML avec des feuilles de styles en cascade CSS (Cascading Style Sheets) et du JavaScript peut écrire un widget.
  • Les capacités de traitement graphique avancées de Quartz sont accessibles dans l'environnement Web Kit au travers d'un ensemble d'extensions au HTML. Cela va vous permettre de dessiner de superbes interfaces utilisateur en utilisant JavaScript.
  • Les widgets prennent en charge les plug-ins, vous pouvez donc utiliser Cocoa et Objective-C et accéder aux fonctionnalités offertes par votre propre code natif ou tout autre code système. Et, depuis Cocoa, vous pouvez exploiter n'importe quelle fonctionnalité du système.

La facilité avec laquelle vous pouvez créer un widget Dashboard va vous permettre de proposer très rapidement de nombreux widgets intéressants. Par exemple, imaginez un système de compilation continue qui vérifie, compile, et teste votre application et qui tourne en permanence quelque part sur le réseau. Vous pourriez contrôler les messages d'erreurs sur le serveur en utilisant un widget. En cliquant sur un lien du widget il serait possible d'ouvrir le fichier dans Xcode pour vous permettre de corriger le problème et de relancer la compilation. Avec les capacités offertes par le Web Kit, Quartz et Core Image, les possibilités de widgets sont sans limites.

G5Développement 64 bits

La prise en charge du traitement 64 bits dans Tiger apporte l'adressage 64 bits pour la prochaine génération d'applications de traitement intensif de données, telles que le séquençage génomique, de l'imagerie médicale de pointe ou des applications géospatiales. Pour vous donner un exemple du type de données que l'on peut représenter avec 64 bits, imaginez que vous travailliez avec une plage de données dans laquelle l'ensemble de la zone routière du pont du Golden Gate peut être représentée en 32 bits. L'espace offert par l'adressage 64 bits vous permet de modéliser l'ensemble de la surface de la terre à la même résolution. De plus, LibSystem et beaucoup des bibliothèques mathématiques optimisées Apple prendront en charge l'adressage 64 bits dans Tiger, facilitant ainsi le travail des développeurs pour exploiter toute l'extraordinaire puissance de traitement du PowerPC G5, ainsi que d'immenses capacités mémoire. Comme vous le savez sans doute, au cœur du PowerMac G5 et du nouvel iMac G5 se trouve le processeur PowerPC G5, un processeur conçu dès son origine avec 64 bits. Il est doté de registres 64 bits, peut exécuter des opérations arithmétiques 64 bits, et peut permettre au système d'exploitation d'accéder à 4 Go de mémoire physique. En fait, il permet d'accéder à 16 exaoctets de mémoire virtuelle, et autant de mémoire physique que vous pourrez mettre dans votre Mac.

Contrairement à d'autres architectures d'unités centrales, utiliser des applications 32 bits sur le G5 n'est pas pénalisant. Ceci est dû au fait que l'architecture du PowerPC a toujours été définie comme une architecture 64 bits avec un sous-ensemble 32 bits, permettant une migration directe entre les matériels 32 bits et 64 bits. Mieux encore, les applications 32 bits peuvent tirer avantage de bien des fonctionnalités 64 bits, du traitement mathématique et des registres 64 bits. Cela a permis à Apple d'opérer une transition en douceur entre ces deux architectures. Par exemple, il n'y a qu'une version du noyau pour tout le matériel Apple.

La prise en charge 64 bits de Mac OS X Tiger ouvre la porte à toute une nouvelle génération d'applications : celles qui ne pouvaient être imaginées auparavant.

Xcode 2.0

Xcode 2.0, la seconde version majeure des outils de développement d'Apple, sera disponible avec Tiger et proposera à la fois un grand nombre de nouvelles fonctionnalités ainsi que d'importantes améliorations de l'environnement dans son ensemble. Les nouveaux outils de modélisation graphique représentent l'amélioration la plus remarquable. En sélectionnant un ensemble de classes dans votre projet, Xcode générera un diagramme illustrant, de manière totalement visuelle, la hiérarchie des classes. Ce diagramme ne se contente pas de refléter votre code mais vous permet également d'y naviguer. Et si vous modifiez le code, le diagramme des classes suivra. Ces diagrammes ne se limitent pas aux classes pour lesquelles vous avez écrit du code. Ils sont également utilisés pour manipuler des entités de données créées et gérées par Core Data.

modeler screenshot

Figure 3 : le modeleur de classes d'Xcode en action.

Une autre nouvelle fonctionnalité d'Xcode 2.0 est le débogage graphique à distance. Pour beaucoup d'applications, la meilleure façon de déboguer un problème est de l'exécuter sur la même machine que celle utilisée par le développeur pour développer avec Xcode. Mais lorsque vous travaillez sur des applications plein écran, comme des jeux, ou la gestion des événements, le débogage à distance vous donne la possibilité d'exécuter une application sur une autre machine tout en conservant l'accès à la plupart des fonctionnalités de débogage dont vous avez l'habitude.

Outre les améliorations de l'interface graphique, Xcode 2.0 est fourni avec GCC 4.0 qui propose un nouvel analyseur de C++ et de nombreuses améliorations dans la génération du code, dont la vectorisation automatique. Bien que l'optimisation manuelle du code pour Velocity Engine puisse vous permettre de tirer le maximum de performance des processeurs G4 et G5, vous pouvez désormais confier à GCC l'essentiel du travail. Vous bénéficierez de cela sans effort supplémentaire, la vectorisation automatique de GCC améliorant de 4 à 14 fois la performance de code manipulant des tableaux de données.

Automator

AppleScript permet depuis longtemps aux utilisateurs de combiner les capacités de plusieurs applications de manières surprenantes et innovantes. Automator fait progresser les technologies d'intégration des applications AppleScript d'un grand pas en avant. Avec Automator, les utilisateurs finaux peuvent glisser-déposer des actions depuis diverses applications dans un seul et même flux de production enregistrable. C'est un peu comme écrire des scripts shell en redirigeant la sortie d'un outil en ligne de commande vers un autre avec des "shell pipes", mais au moyen d'une interface visuelle.

automator screenshot

Figure 4 : actions chaînées dans Automator.

En tant que développeur, vous découvrirez qu'il est facile de créer vos propres actions avec AppleScript ou Cocoa. Cela vous permet de proposer à d'autres personnes n'importe quelle fonctionnalité dont vous pouvez rêver sous la forme d'une petite unité, se comptant en octets, à insérer dans leurs propres flux de production. Par exemple, dans un environnement de type grande entreprise, vous pourriez créer une action qui irait collecter les données de plusieurs sites Web internes, créerait un rapport à l'aide de ces données, et enfin enverrait le rapport à tous les membres d'une équipe. Certaines des actions à accomplir dans ce flux seraient des actions standard fournies avec Automator. D'autres pourraient être des actions personnalisées que vous auriez créées.

Automator est également fourni avec nombre d'actions qui seront utiles aux développeurs. Par exemple, vous serez à même de créer un flux qui produit une version prête à déployer de votre projet, crée un "package" d'installation comprenant l'exécutable et quelques autres fichiers, et enfin compresse le tout dans une image disque DMG que vous pouvez transférer ensuite à votre serveur Web.

Core Image

Au cours des dernières années, les processeurs graphiques (GPU) des cartes vidéo dernier cri d'ATI et de Nvidia ont évolué plus rapidement que la loi de Moore en doublant leurs performances tous les six mois. Les GPU d'aujourd'hui ont une puissance de calcul en virgule flottante étonnante, la nouvelle GeForce FX 6800 peut calculer plus de 6 milliards de pixels par seconde. Cette augmentation énorme de la puissance de calcul ouvre de nouvelles possibilités aux développeurs car les cartes vidéo peuvent maintenant effectuer des calculs par pixel qui auparavant étaient du ressort du processeur central.

Voici Core Image, une architecture robuste intégrée à Tiger qui permet des traitements d'images ultra-rapides et de haute précision, depuis des opérations simples comme des ajustements de couleurs, jusqu'à des effets spéciaux vidéo très élaborés. Core Image s'appuie sur OpenGL pour vous offrir un environnement de traitement d'images dernier cri, vous permettant de profiter plus facilement de la puissance des GPU programmables d'aujourd'hui. Core Image compile des programmes (ou kernels) d'images durant l'exécution, optimisant globalement les traitements entre plusieurs kernels et profitant du GPU à chaque fois que c'est possible. Il peut aussi générer dynamiquement du code optimisé pour les systèmes multiprocesseurs lorsque les processeurs centraux sont requis pour certains calculs.

Une autre fonction puissante pour les développeurs est l'architecture de plug-ins offerte par Core Image. Cette architecture offre aux logiciels un accès aisé aux ensembles de filtres, de transitions, et d'effets appelés Image Units – des plug-ins simples qui encapsulent un kernel de traitement de pixels. Les Image Units sont écrites avec le langage CIKernel, un langage dérivé de l'OpenGL Shading Language optimisé pour les traitements d'images. Ces Image Units peuvent être utilisées par n'importe quel logiciel compatible Core Image, ce qui réduit la complexité du développement.

core image diagram

Figure 5 : des échantillonneurs et un kernel assemblés dans un pipeline de traitement.

Comme le montre la figure 5, chaque image dans le pipeline de traitement requiert un objet échantillonneur pour gérer les étapes de la prise de pixels à l'image, du bon conditionnement des pixels, et de l'envoi des pixels vers le kernel pour leur traitement. Vos images source ne sont pas altérées, ce qui permet un traitement non destructif des images.

Lorsque vous assemblez un pipeline de traitement d'images, vous pouvez choisir entre des dizaines d'Image Units intégrées à Tiger, incluant des effets de flou, de distorsion, de netteté et des transitions diverses. Vous pouvez aussi créer facilement vos propres Image Units pour les utiliser dans votre propre logiciel ou tout autre logiciel compatible Core Image.

Core Data

Cocoa constitue depuis longtemps une solution de haut niveau pour le développement de l'interface utilisateur de logiciels. Dans Panther, Cocoa a commencé à offrir des objets contrôleur préfabriqués (la couche de liens ou "bindings") pour relier ensemble divers éléments de l'IU avec des modèles de données. Désormais, dans Tiger, Cocoa peut gérer vos objets-données eux-mêmes avec la puissance de Core Data qui offre le support automatique des fonctions annuler/rétablir, une synchronisation additionnelle de l'interface utilisateur, et des améliorations de l'exactitude, de la fidélité, et de la vitesse des données lorsque le moment est venu d'écrire sur le disque.

Core Data vous donne la possibilité de créer une description de vos objets- données. Une fois définie, Core Data prend en charge la plus grande partie de la lourde tâche de gérer vos objets-données, dans la mémoire aussi bien que sur le disque. Cela vous permet de vous concentrer sur la logique du logiciel et d'éviter le travail d'infrastructure. En résumé, Core Data est un environnement de développement orienté modèles d'objets à architecture persistante.

core data diagram

Figure 6 : Core Data en action

Dans Tiger, Core Data supportera trois différents types de fichiers pour le stockage des données :

  • Un format de fichiers texte XML.
  • Un format de fichiers binaire plus performant.
  • Un format de fichiers de base de données SQLite hautement performant.

Chacun de ces formats de fichiers a ses avantages. Le format de fichiers XML est un bon choix durant le développement d'un logiciel car il vous permet de garder un œil sur l'intérieur du fichier pour voir ce qu'il s'y passe. Le format SQLite sera souvent le meilleur choix pour les logiciels de bureau du fait de ses performances.

Autres Technologies

Bien sûr, il y a bien d'autres technologies qui apparaîtront dans Tiger. Bien trop en fait pour toutes les lister ici, mais parmi toutes ces innovations remarquables vous trouverez :

Accès universel et VoiceOver

Les possibilités offertes par Accès universel de Mac OS X sont étendues dans Tiger pour inclure VoiceOver, une nouvelle interface vocale. Conçue pour les personnes souffrant d'un handicap visuel ou de difficultés d'apprentissage, elle lit le contenu de documents tels que des pages Web, des messages électroniques et des fichiers de traitement de texte. Cette technologie étant intégrée à Tiger, Apple fournit des recommandations de programmation pour vous permettre d'être sûr que vos applications apporteront la meilleure expérience d'utilisation de VoiceOver.

H.264/AVC

Connue également sous le nom de MPEG-4 Part 10, H.264/AVC est une technologie vidéo particulièrement efficace et évolutive qui offre une qualité vidéo supérieure à des débits beaucoup plus lents pour vos applications de télévision haute définition et de téléphonie mobile de troisième génération. Mieux encore, elle est intégrée à QuickTime dans Tiger. Cela signifie que toute application que vous développez et qui tire parti de QuickTime, peut prendre avantage de cette puissante nouvelle technologie vidéo.

Sync Services

Présenté pour la première fois dans Jaguar, iSync apportait le concept de la synchronisation des contacts, des agendas et des signets entre plusieurs ordinateurs et leurs iPods, téléphones cellulaires, organiseurs personnels et autres périphériques associés. Dans Tiger, l'idée de synchroniser vos données est généralisée à tout le système d'exploitation et est contrôlée via un panneau des Préférences Système. De même, la fonctionnalité permettant de comparer et de réconcilier les changements des données a été extraite dans une nouvelle architecture de développement, Sync Services.

PDFKit

Dès sa première version, Mac OS X a été en mesure de lire et de créer des fichiers PDF. Désormais, la possibilité de créer, de lire et de manipuler des fichiers PDF de manière programmatique vous est offerte via la nouvelle API PDFKit. Similaire au Web Kit, PDFKit est une suite de classes Cocoa qui vous permettent de créer et d'accéder à l'ensemble des composants d'un fichier PDF.

Ce que toutes ces fonctionnalités signifient pour vous

Il y a une thématique commune qui caractérise toutes ces nouvelles technologies dans Tiger : permettre aux développeurs de se concentrer sur l'écriture de code spécifique à leurs applications. Vous, en tant que développeur, ne devriez pas avoir à réinventer la roue pour implémenter les fonctionnalités que les utilisateurs Mac attendent. A la place, Apple fournit une riche gamme de "frameworks" qui prennent en charge de multiples facettes du développement d'applications pour que vous puissiez vous concentrer sur vos applications et sur ce que vous faites le mieux.

Mieux encore, comme Apple s'appuie sur ces technologies pour construire Mac OS X lui-même aussi bien que ses applications, vous pouvez ainsi être sûr que ces technologies sont parfaitement testées. Au lieu d'être conçues pour d'hypothétiques problèmes, elles sont le résultat d'une création fonctionnelle visant à résoudre de vrais problèmes.

Comment vous lancer

Tiger ne sera mis sur le marché que dans le courant du premier semestre 2005. Mais en tant que développeur, vous pouvez commencer à travailler dès à présent avec des versions préliminaires de Tiger pour être prêt à sortir vos applications dès la disponibilité de Tiger. Comment ? Bénéficiez des avantages offerts par le kit Tiger Early Start Kit, qui met à votre disposition tout ce dont vous avez besoin pour commencer à développer pour Tiger maintenant, y compris des versions préliminaires de Tiger et de Xcode 2.0, et la Tiger ADC Reference Library.

Pour plus d'informations

Publié le: 2004-11-02

Choose your language: