Accueil > Programmation Cocoa > Dans les profondeurs de Mac OS X

Dans les profondeurs de Mac OS X

Par Mike Beam, le 6/04/2001

traduit par Thierry, le 22/01/2002

Introduction

Ça y est ! Vous venez tout juste d’installer votre copie toute fraîche de Mac OS X sur le matériel flambant neuf et musclé que vous avez acquis en prévision de cette version finale. L’exploration du nouveau système d’exploitation révolutionnaire d’APPLE commence alors à être sérieuse. Vous passez des heures à cliquer ça et là, essayant de découvrir tout ce que Mac OS X a à vous offrir. Lasse, votre compagne est déjà morte de fatigue à force de voir pour la centième fois ce satané « effet génie ». Mais vous, vous restez excité et satisfait de savoir que vous possédez la légendaire puissance d’Unix couplée à l’élégance du Mac.

Mais à présent, vous ressentez sûrement l’envie de comprendre Mac OS X de manière plus fondamentale, et d’en comprendre les rouages. Vous voulez mettre les mains dans le cambouis et réaliser un programme qui fera exactement ce que vous en attendrez. Par chance, Apple a pensé à vous en incluant, avec toutes les copies de Mac OS X, un CD contenant son outil de développement. L’outil qui a servi à créer Mac OS X et ses applications est maintenant entre vos mains. Apple a eu la bonne idée de donner aux utilisateurs de Mac OS X le pouvoir d’approfondir leur exploration et de créer leurs propres applications. Pas de doute, c’est vraiment le moment idéal pour posséder un Mac.

Dans cet article, je veux vous convaincre que même si vous n’avez aucune expérience en termes de développement d’applications vous pourrez apprendre comment créer une application Mac OS X fonctionnelle à part entière.

Nous sommes au début d’un long voyage. Toutes les deux semaines, un article sera publié afin de vous montrer comment maîtriser la programmation objet en relation avec les API Cocoa. Un peu intimidant ? En fait, non. Croyez moi ! En premier, je vous parlerai de ma propre expérience de l’apprentissage de Cocoa. Ensuite, je vous expliquerai comment Cocoa s’intègre dans le cadre général de Mac OS X. Après ça, dans les articles suivants, nous mettrons la main à la pâte.

Mais je m’avance un peu trop. Laissez moi vous parler d’abord de mon propre itinéraire avant que vous ne commenciez le vôtre.

Comment tout a commencé

A l’automne 2000 dernier, quand la Béta public de Mac OS X est sortie, j’ai eu cette idée folle d’apprendre à programmer sous Cocoa. Peut-être qu’au début étais-je présomptueux car je n’avais jamais dépassé le stade de la programmation en C. Je ne savais pas ce qu’était la programmation objet ni comment elle pouvait permettre de construire des logiciels modernes. Rien que de penser à la manière dont les gens programmaient des applications réelles avec des GUI (Interface utilisateur graphique), des fenêtres, des préférences et tout ce fourbis, me prenait déjà la tête. Comment allais-je apprendre à faire tout ça ?

Malgré tout, j’avais cette impression persistante que cela était possible. La curiosité suscitée par ce qui se cachait derrière l’éclat de l’interface de Mac OS X m’attirait, et je voulais essayer de découvrir comment tout cela fonctionnait. De ce que j’en avais entendu, Cocoa était le meilleur endroit pour commencer.

Cocoa est Mac OS X et Cocoa génère des applications natives pour Mac OS X. Je téléchargeais donc le CD contenant les outils de développement et ce ne fût pas long avant que je ne sois débordé par tout ce qui était présent. J’aperçu des bribes des possibilités d’Interface Builder de Cocoa et de la manière super-cool de créer des interfaces par glisser-déposer. Je vu aussi des reliques et des fantômes du mystérieux ordinateur NeXT cachés dans ma machine. C’était si cool, mais cependant si difficile à appréhender.

Au début, l’apprentissage de Cocoa fut une série d’essais hasrdeux. C’était comme essayer de faire démarrer une vieille tondeuse à gazon. La documentation sur Cocoa et sur l’Objective-C était dans un sale état. Apple avait focalisé toute son énergie sur Carbon, et à raison, tenté de rallier le maximum de développeurs à Mac OS X.

Je trouva des pages Web ici et là m’indiquant comment afficher un « Hello World ! » en Coca et autres foutaises. C’était un début, mais il n’y avait rien qui permettait de relier toutes les pièces entre elles de manière cohérente. Néanmoins, les choses commençaient à se mettre en place, et le chaos provoqué par toutes les données que j’avais en tête se cristallisait peu à peu. Le monde Cocoa s’ouvrait à moi peu à peu et je vu des possibilités incroyables et une technologie étonnante.

Sous peu, j’étais en train de construire des trucs qui fonctionnaient avec Cocoa. La première chose que je compris était qu’il n’y avait aucune raison tangible pour que Cocoa soit aussi difficile à apprendre qu’il n’avait été pour moi. Mon espoir est de vous montrer les choses étonnantes qu’Apple a mis en rayon avec Cocoa sans les efforts que j’ai fournis pour les apprendre. Quiconque et quel que soit son niveau peut apprendre à programmer avec Cocoa. Cocoa est un environnement avancé et puissant de programmation qui n’attend que d’être investi par la communauté des utilisateurs Mac.

Au travers de cet article, j’espère vous montrer tout ce que Cocoa a à offrir et comment le mettre au niveau de vos besoins. Dans la tradition de O’Reilly, la majorité des articles seront des tutoriels, avec lesquels vous pourrez vous faire la main. Avec Mac OS X et Cocoa, nous retournons à l’époque où il était possible de fouiner dans votre système comme les gens bricolent leur voiture. C’est l’esprit et la culture de la communauté du logiciel libre, et Apple embrasse cette culture. C’est la culture Unix et sa mentalité sur un Mac. Apprenez les. Servez vous en. Savourez les. Tout est en train de changer.

MAC OS X

Mac OS X est basé sur une architecture à plusieurs couches desquelles des ensembles de plus en plus complexes de services et de sous-systèmes dépendent, eux mêmes étant construits sur des systèmes plus fondamentaux. La couche la plus fondamentale de Mac OS X est l’environnement du noyau Mach, là où sont prodigués les contrôles basiques et les accès matériels au système d’exploitation.

Au sommet de l’édifice résident les cinq environnements applicatifs de Mac OS X : BSD, Classic, Java , Carbon et Cocoa. Chacun de ces environnements fournit un ensemble unique composé de programmes-cadres, de librairies, et de services essentiels pour l’exécution des applications et des programmes développés avec leurs API respectives. Chacun de ces environnements fournit une solution unique à un problème unique. Classic permet de faire tourner vos vieilles applications, BSD nous apporte Unix, Java c’est Java, Carbon c’est Carbon, et Cocoa est ce que nous allons apprendre dans ces lignes.

Programme-cadres et API

Cocoa est composé de deux cadres de travail orientés objet appelés Application Kit et Foundation. Ces cadres consistent en une collection de classes, de fonctions, de types de données personnalisés, et d’autres bizarreries utiles qui permettent au développeur de diriger pleinement les fonctionnalités avancées de Mac OS X. La puissance de Cocoa est contenue dans ces programmes-cadres et les lignes qui suivent se concentreront sur la manière d’utiliser l’Application Kit et le programme-cadre Foundation.

Les programmes-cadres sont aussi dotés d’API pour accéder aux classes et aux fonctions. Cocoa en a deux : Java et Objective-C. Cela veut dire que vous pouvez écrire des programmes Cocoa soit en Java soit en Objective-C. Ce dernier est la langue native de Cocoa et, en tant que tel, je me concentrerai sur celui-ci. Ne vous inquiétez pas, l’Objective-C est facile à apprendre. En fait, ce langage est une abstraction du langage C standard. Donc, si vous connaissez le C, vous connaissez 90% de l’Objective-C. L’Objective-C ajoute au C un ensemble d’extensions qui vous permettent d’implémenter des concepts et des techniques orientés objet. Ceux-ci seront couverts plus tard.

Malgré tout, l’Objective-C manque de fonctionnalités, outre les structures de contrôle primitifs et les types de données du C. Ces manques, requis pour la construction de logiciels modernes, sont comblés par les programmes-cadres de Cocoa. Le programme-cadre Foundation de Cocoa est composé d’un ensemble de classes utilitaires qui fournissent des fonctionnalités basiques pour les choses telles que les chaînes, les textes, les nombres et la gestion des tableaux. Il contient aussi des classes qui permettent l’accès aux services du système d’exploitation tels que le système d’entrées-sorties sur fichiers et la gestion des process. Le programme-cadre Foundation supporte beaucoup des fonctionnalités requises par les logiciels modernes telles que les chaînes Unicode et les objets distribués. La plupart de nos futures discussions porteront sur les classes avancées du programme-cadre Foundation.

L’architecture multi-couches de Mac OS X est aussi présente dans Cocoa. Ainsi, l’autre programme-cadre de Cocoa, l’Application Kit, est construit sur le programme-cadre Foundation. L’Application Kit comble le dernier vide majeure de Cocoa : la gestion et le contrôle de l’interface et de l’application.

L’Application Kit fournit un ensemble de classes qui définissent les composants d’interface les plus communs tels que les boutons, les fenêtres, les barres de défilement. Cependant, Application Kit est plus qu’une collection d’éléments d’interface. Il fournit aussi des mécanismes pour la gestion des applications et des documents, par le biais de classes qui intègrent les polices, les couleurs, les graphiques et les tâches d’impression, et qui supportent OpenGL. En plus, l’Application Kit comporte des outils intégrés pour la vérification orthographique, le glisser-poser et le copier-coller.

Tout ceci est librement utilisable pour vos applications. Apple a dépensé sans compter pour développer ces outils de façon à ce que vous puissiez construire les vôtres plus rapidement et plus facilement. C’est un des grands avantages de Cocoa.

A suivre…

Dans les prochaines articles, nous aborderons la programmation orientée objet et l’Objective-C. Nous exercerons nos esprits aux concepts de la programmation orientée objet et nous nous salirons les mains avec les entrailles de l’Objective-C. Après ça, nous passerons à l’écriture d’applications Cocoa pour vous montrer combien il est facile de démarrer. Par la suite, je vous parlerai des classes individuelles des programmes-cadres Foundation et Application Kit, et nous progresserons vers des concepts plus complexes et plus avancés. J’espère que chaque article vous laissera avec suffisamment de matière à explorer de manière à patienter jusqu’à l’arrivée du prochain. A bientôt pour en savoir plus !

http://www.macdevcenter.com/

http://www.macdevcenter.com/

Textes originaux en anglais sur O’Reilly : http://www.macdevcenter.com/pub/au/159

Thierry Programmation Cocoa , ,

  1. Pas encore de commentaire
  1. Pas encore de trackbacks
Vous devez être identifié pour poster un commentaire