
API Apple
I. Cocoa :
Cocoa est une API native d'Apple pour le développement orienté objet sur son système d'exploitation Mac OS X. C'est l'une des cinq API majeures disponibles pour Mac OS X, les autres étant : Carbon, la boîte à outils Macintosh (pour l'environnement obsolète Classic), POSIX (pour l'environnement BSD) et Java. Certains environnements, comme Perl et Ruby sont considérés comme mineurs, car ils n’ont pas accès à toutes les fonctionnalités et ne sont généralement pasutilisés pour le développement d'applications à part entière.
Les applications Cocoa sont typiquement construites en utilisant les outils de développement fournis par Apple, Xcode (anciennement Project Builder) et Interface Builder (utilisant le langage de programmation Objective-C). De plus, l'environnement de programmation Cocoa peut être accessible en utilisant d'autres outils, comme Pascal, Python, Perl etRuby, avec l'aide de mécanismes passerelles tel que PasCocoa, PyObjC (en), CamelBones (en) ou encore MacRuby (en). Il est aussi possible d'écrire un programme Objective-C Cocoa dans un simple éditeur de texte et de le compiler par la suite avec GCC ou en utilisant les scripts makefile de GNUstep.
Pour l'utilisateur final, les applications dites Cocoa sont considérées comme étant celles écrites en utilisant l'environnement de programmation Cocoa. Habituellement, ces applications ont un ressenti différent dû à l'automatisation d'une multituded'aspects de l'application par l'environnement Cocoa. Ceci est ainsi fait pour suivre la politique de développement d'Apple.Au fil des versions de Mac OS X, on assiste à un rapprochement progressif de Cocoa et de Carbon, construits de plus enplus à partir de la même base (Core Foundation (en)). Certaines applications Carbon, tirant parti des nouvelles fonctionnalités de Mac OS X, ne fonctionnent plus sous Mac OS 9 et la limite se fait de plus en plus floue. Il est rare detrouver des applications Cocoa qui ne font aucun appel à l’API Carbon.
Carbon :
Carbon consiste en un vaste ensemble de fonctions pour gérer les fichiers, la mémoire, les données, l 'interface ainsi que d'autres services du système. Il est implémenté comme les autres API, dans Mac OS X. Il est réparti dans différents frameworks (chacun étant une structure construite autour d'une bibliothèque partagée), principalement « Carbon.framework », « ApplicationServices.framework » et « CoreServices.framework ».
Dans les Mac OS plus anciens, il est présent dans une seule bibliothèque partagée nommée « CarbonLib ». Carbon n'est pas conçu comme un système discret, mais il ouvre toutes les fonctionnalités du Mac OS X aux développeurs qui neconnaissent pas l'objective-C nécessaire pour l'API Cocoa. Carbon est compatible avec les différents formats d’exécutables disponibles pour Mac OS PowerPC. La compatibilité binaire entre Mac OS X et les versions antérieures nécessite l'utilisation d'un fichier Preferred Executable Format, qu'Apple n'a jamais supporté dans son IDE Xcode.