Avant d'aborder Cocoa il faut deux choses :
- Une connaissance de l'orienté objet (même sommaire)
- La connaissance du langage C.
La programmation sous cocoa s'effectue suivant le concept (on parle de paradigme) MVC pour Model, View, Controller.
Le Model defini l'ensemble des objets de ton application.
La View défini l'interface graphique de ton application.
Le Controller est l'objet qui fait le lien entre le model et la View.
c'est justement le controller et la View qui sont les objets spécifiques à une application.
Je donne un exemple.
Supposons que tu veuilles développer pour une banque, une application de gestion de chèques.
Ton Model sera essentiellement composé des objets Chèque.
un objet chèque ayant des attributs et des méthodes décrivant toutes les fonctions possibles que l'on peut appliquer à un chèque (créditer,debiter,etc).
Ensuite, suivant ce que fait ton application, tu dessines l'interface principale de ton application.
Pour chaque bouton de ton interface, tu definis la fonction exécutée.
Pour chaque zone de saisie de ton interface, tu définis une variable qui mémorisera le contenu. on appelle cette variable une outlet.
Et Voilà.
Pour ton interface tu te sers de l'outil Interface Builder pour la 'dessiner'.
Si ton interface s'appelle GestionCheque, toujours Par Interface Builder tu définis un objet GestionChequeController. Cet objet est une instance de NSObject.
par interface Builder tu définis également les outlets et les méthodes ou actions qui ne sont rien d'autre que les fonctions définies plus haut.
Ensuite après instantiation de ton controller, tu obtiens dans la Nib, un objet matérialisé par une brique.
Ensuite sous Interface Buileder tu fais des connections entre les boutons et les méthodes et entre les outlets et les zones de saisie.
Ensuite tu génères le code de ton Contoller.
Sous Project builder tu obtiens 2 fichiers GestionChequeController.h et GestionChequeController.m
En principe le Controller contient 2 parties. La première que l'on appelle modele-controller permet de faire le lien entre le Controller et le Model (récupération de données). La seconde partie appelée Controller-View gère les interactions avec la View (l'interface graphique).
Tout cela pour te dire que Cocoa introduit de nouveaux concepts dans le développement d'applications.
La puissance de Cocoa provient de son runtime, et surtout de ses frameworks ApplicationKit (Classes d'objets pour l'interface graphique) et FoundationKit classe des objets de base (strings,etc..) qui datent depuis 1987 et ont été débugués à fond. ils sont donc très matures. Aucun autre Framework n'atteint leur maturité.
D'autre part Cocoa introduit des concepts uniques qu'il faut assimiler telles que la Notification et la Delegation et certains autres.
Une chose essentielle à savoir :
Quand tu utilises les éléments graphiques d'Interface Builder (Boutons, etc..), il n'y a pas comme dans d'autres outils de développement (que je ne cite pas) de GENERATION DE CODE. Le code de ces objets réside dans les frameworks. En effet le boutons que tu manipules est le MEME que celui de l'interface graphique du Mac sur lequel tu bosses. La seule chose qui les différencie c'est l'aspect (la taille, la couleur,etc..) et ce sont ces éléments qui sont générés dans la NIB.
C'est pourquoi, lorsque tu démarres ton appli, le runtime cocoa execute d'abord la méthode awakeFromNib de ton controller même si tu ne l'implémentes pas. C'est pouquoi lorsque tu veux préparer certaines choses avant l"affichage de ton interface, tu le fais dans cette methode.
C'est également à ce moment que le runtime se sert des variables générées dans la nib pour créer des instances des objets de ton interface.
C'est la magie due au fait que Objective-C est très dynamique. Et le runtime s'en sert énormément.
C'est l'orienté objet poussé à son extrème. Et c'est d'une élégance sans pareille. Et c'est une joie de l'utiliser.
En tout cas je t'y encourage vivement.
Les bases de Cocoa sont ici :
http://developer.apple.com/techpubs/macosx/Cocoa/TasksAndConcepts/ProgrammingTopics/Misc/TopicList.html
J'espère que ces explications te donnent une idée de cocoa.
Salut