Ce site n'est pas l'endroit pour prodiguer un cours sur Cocoa. Non seulement, le sujet est trop étendu, mais aussi, la documentation existe déjà.
La doc d'Apple
Vous trouverez cette documentation sur le site developpeurs d'Apple, mais le plus pratique est de la consulter sous XCode via le menu Help > Documentation
.
Il s'agit d'une documentation de référence: elle contient beaucoup, en fait beaucoup trop d'informations; d'autant plus qu'on y trouve beaucoup de blabla. Il s'agit pourtant d'un outil quotidien, qui répondra à presque toutes vos questions, quand vous saurez où chercher.
Même si Apple a fait des efforts pour fournir quelques guides d'introduction, vous attaquer de front à la doc ne peut que vous impressionner, vous noyer et finalement vous dégoûter, ce qui nous amène à…
Cocoa Programming for Mac OS X
À sa sortie en 2002, ce livre fut accueilli avec un grand soulagement. Son auteur, Aaron Hillegass, était formateur pour NeXT avant de monter sa propre société de formation, et propose un livre simple d'accès, destiné à vous procurer le bagage minimum. À vrai dire, si vous posez des questions sur les forums, on s'attendra à ce que vous l'ayez lu, sinon on vous invitera souvent à le faire.
Les sujets couverts sont les suivants:
- utilisation de base de XCode et d'Interface Builder
- le langage Objective-C: syntaxe, gestion mémoire (y compris le ramasse-miettes), protocoles, catégories, propriété
- Foundation
- AppKit
- Principes courants de Cocoa: délégués, archivage, notifications
- Key-Value Coding, Bindings, Core Data
- Core Animation
La grande force de ce livre, c'est son approche TP. Point de chichi: l'auteur vous montrera par exemple une fenêtre en écrivant "débrouillez vous pour que ça ressemble à ça". Il s'agit d'un enseignement progressif: les objectifs sont fixés, quelques principes expliqués, puis vient le codage. En fin de chapitre, se trouve un encart "pour les plus curieux" où l'auteur fournit quelques informations sur le fonctionnement de Cocoa. Enfin, sont proposés des défis: il s'agit pour le lecteur de travailler tout seul cette fois-ci, et d'améliorer le programme. Et il est utile de le préciser: tous les défis sont faisables.
Il ne s'agit pas d'un livre de référence, on n'y découvre que quelques classes, mais ce sont des classes représentatives, et l'essentiel de chaque concept est expliqué pour pouvoir approfondir avec la doc d'Apple par la suite.
Le livre a été mis à jour à la sortie de Mac OS 10.5. Cette troisième édition, traduite en français, vient tout juste de paraître, sous le titre Programmation Cocoa sous Mac OS X.
En résumé: conseillé sans réserve aucune, pourvu que vous ayez les pré-requis: connaître le langage C et avoir des notions de programmation orientée objet.
Objective-Cocoa.org
Il s'agit d'un forum en français qui existe depuis deux ans. L'ambiance y est détendue, les débutants bienvenus même si des usagers de Cocoa qui ont de la bouteille y participent.
Le guide du débogage
Il arrive un moment où le débogage à base de NSLog() montre ses limites. Si n'explique pas l'utilisation du débogueur, le guide suivant fournit quantités d'astuces:
Technical Note TN2124.
La mailing-list d'Apple
Apple a mis en place des listes sur divers sujets. Celle qui nous intéresse est bien évidemment celle de Cocoa.
À vrai dire, utiliser cette liste est à faire en dernier recours. En effet, pour poser une question, il est nécessaire de s'y abonner — normal, me direz-vous — sauf que vous allez recevoir de l'ordre de 100 messages par jour, la plupart n'ayant pas d'intérêt pour vous. Je vous conseillerais donc d'activer le mode "digest" dés le départ !
Reste qu'on y trouve des gens qui ont une connaissance poussée de Cocoa, et même parfois des ingés d'Apple. À ce propos, ces employés le font bénévolement, un hot-dog à la main, ou entre 20 et 22h. Cela dit, vous pouvez considérer que si vous n'obtenez pas la réponse sur cette liste, c'est que personne ne l'a.
Les sites spécialisés sur Cocoa
StepWise
L'un des plus vieux sites. Contient beaucoup d'articles techniques et très intéressants.
Cocoa Dev Central
Quelques articles d'introduction, et des liens.