Top Promos Apple Test Apple Antivirus Mac Dock Thunderbolt Sunology Comparatif iPhone Nettoyeur Mac

Articles

Mac

Les Bases de l'ObjectiveC

Par Coco - Publié le

Pourquoi l' Objective C



L' Objective C est un language orienté objet et surtout, avec Java, le language pour la programmation Cocoa. De plus, il est très facile à apprendre, et on peut faire des trucs déjà pas mal après un aprentissage relativement court. En plus, avantage par rapport au C++, le programmeur n' a pas trop à se soucier des allocations mémoires (enfin, ça dépend des fois…)

Programmer en Objective C



L' Objective C permet de faire à peu près tout ce que vous voulez (Applications, PrefsPanes…). Tant que le template existe pour Project Builder, c'est très simple, le squelette du programme vous est donné. Sinon ça peut être plus compliqué… Dans la plupart des cas, vous aurez besoin de créer une interface avec Interface Builder, que vous coordonerez avec votre code proprement dit. Pour tout cela, je vous renvoie au tutoriel "Currency Converter", une petite application très simple mais qui va vous familiariser avec le mécanisme. D'ailleurs la documentation fournie avec les developer tools est assez consistante et si vous prenez le temps de la lire, vous maitriserez déjà bien le développement en Cocoa. Ensuite, on entre dans les choses sérieuses, le langage proprement dit.
Ici, tout est très orienté objet: on définit des classes qui contiennent des données et des méthodes. La déclaration de classe se fait, pour simplifier, en deux parties:
_l' "interface", contenue entre un "@interface" et un "@end" dans laquelle on déclare les données membres de la classe et les prototypes de ses fonctions membres. Les données membres sont soit des variables de type de base ou défini par le programmeur, soit des objets provenant de Frameworks ou d'autres classes définies par le programmeur. Elles doivent être déclarées entre accolades et selon la syntaxe suivante:
type nomdevariable;

Ensuite viennent les prototypes de fonctions. On déclare juste les fonctions, sans dire ce qu'elle font. Les fonctions précédées d'un tiret sont des fonctions d'objet, celles précédées d'un signe '+' sont des fonctions de classe.Voila quelques exemples:

- (typeretourné ) nomdelafonction;
- (typeretourné ) nomdelafonction: (typedearg1)arg1;
- (typeretourné ) nomdelafonction: (typedearg1)arg1 cequevousvoulez: (typedearg2)arg2;

En principe il n't a pas d'espaces entre les deux points et les parenthèses mais je suis obligé de les mettre parceque sinon ils sont interprétés comme des smileys…

Je me rends compte que je n'ai pas expliqué la différence entre objet et classe (je suis parti du principe que vous la connaissiez…). Pour faire simple, un objet est une instance de classe, c'est à dire que la classe est le modèle sur lequel on peut faire des objets ayant justes des valeurs de données membres différentes. La plupart des méthodes de classe servent en fait à créer un objet sur lequel on travaille.

L'interface est souvent déclarée dans le header (fichier [.h) de la classe mais on peut le mettre sans problème dans le fichier ].m

_passons à ce que l'on appelle l'"implémentation": on reprend les mêmes fonctions que dans l'interface sauf qu'on va dire ce qu'elles font vraiment, cette fois (entre un "@implementation" et un "@end"). On reprend le prototype de la fonction, on enlève le point-virgule en bout de ligne et on encadre le code entre des accolades:

- (typeretourné ) nomdelafonction: (typedearg1)arg1
{
code
}


La fonction doit obligatoirement se terminer par un return suivi d'une variable du type déclaré dans le prototype.

Le gros du code se compose en fait de ce qu'on appelle les "messages" en Objective C. En fait, il s'agit d'invoquer une méthode d'une classe avec la syntaxe suivante: [class method]
La méthode peut éventuellement recevoir des arguments. [class method:arg1 and:arg2]
Il faut alors que la méthode soit définie de manière à pouvoir recevoir ces arguments, comme vu précedemment.
Les messages peuvent renvoyer des valeurs (typeretourné de la méthode) ou pas (typeretourné de la méthode = void).

J'ai volontairement laissé les variables de coté car c'est assez intuitif et je pense que pour peu que vous ayez déjà quelques notions de programmation, vous vous débrouillerez très bien avec.
D'ailleurs, je vous conseille, pour pouvoir mieux vous concentrer sur l'aspect objet du langage, de maitriser déjà les notions de programmation procédurale (si vous ne les connaissez pas, essayez Apple Script, c'est vraiment bien pour débuter).

En ce qui concerne les structures de controle, ce sont à peu près les mêmes qu'en C++ et beaucoup de langages. Je ne m'attarderai donc pas dessus.

Après, pour construire un programme entier, il faut combiner classes et fonctions selon ce qu'on veut faire. Souvent, ce sera un clic sur un bouton qui déclenchera une action définie par une fonction membre de la classe contenant le bouton (grace au principe des outlets en Cocoa).
Mais dans tous les cas, votre programme comportera un fichier main.m, qui contient la définition de la fonction main, invoquée au lancement du programme. Vous n'avez pas souvent besoin de la modifier mais il faut savoir qu'à travers divers appels systèmes, elle lance la classe principale de votre programme.

Voila en vrac la base à connaitre mais je vous invite vivement à lire ci-dessous pour savoir où obtenir plus de renseignements

Plus de renseignements



Tout d'abord, lisez la doc fournie par Apple, elle est déjà assez complète.
Vous pouvez toujours acheter des livres de programmation (il y en a pas des masses pour ObjC mais de toute façon, un bon programmeur doit connaitre plusieurs langages et c'est plus facile de pouvoir se concentrer sur le moins de choses possibles pour apprendre un nouveau langage)
Dans le même genre, je vous conseille de bien approfondir vos connaissances sur le système lui-même et sur l'informatique en général, vous en aurez toujours besoin.
Il y a, comme toujours, des tas d'informations sur Internet. Essayez par example www.stepwise.com et www.cocoadev.com (des références). Vous pouvez aussi vous inscrire à des mailing-lists mais là, j' espère que vous parlez anglais couramment parceque c'est sur les listes américaines qu'on trouve le meilleur soutien. Je vous conseille particulièrement Omnidev (voir www.omnigroup.com) et Cocoadev (www.lists.apple.com), vous m'y croiserez peut-être et il y a même des développeurs d' Omnigroup ou d' Apple, qui sont surement les plus à même de répondre à vos questions.
Enfin et dernier conseil, soyez patient, ne vous laissez pas décourager par un échec (c'est rare qu'un logiciel marche du premier coup) et surtout, prévoyez des provisions de cafe !

Pour conclure



Bon, je sais pas si j'ai été très clair mais c'est la première fois que j'entreprends d'expliquer le fonctionnement d'un langage et en si peu de mots, c'est assez difficile. Si vous avez des questions, n'hésitez pas à me mailer. j'essaierais de faire d'autres articles mais ce serait plus simple si je savais sur quels points précis ça coince, parceque parler du langage en entier comme ça, c'est pas facile…
Ah, j'allais oublier, dernier conseil, soyez prêts à affronter les foudres de votre chere et tendre et à essuyer les "J'en ai marre, tu passes plus de temps devant ce satané ordinateur qu'avec moi". Et je parle en connaissance de cause… ;)

Canva ne veut pas perdre les utilisateurs d'Affinity !

Canva ne veut pas perdre les utilisateurs d'Affinity !

Il y a deux jours, on apprenait l'acquisition de la plate-forme Affinity par Canva, une opération qui n'est pas du goût de tous les utilisateurs.

La licence à vie d'Office Mac pour 29€ : GoDeal24 lance sa promo de Pâques !

La licence à vie d'Office Mac pour 29€ : GoDeal24 lance sa promo de Pâques !

Godeal24 est un distributeur mondial de logiciels informatiques. Pour les fêtes de Pâques, Godeal24 propose la suite Office pour Mac à un...

Un nouveau clavier chez Logitech avec le Signature Slim K950

Un nouveau clavier chez Logitech avec le Signature Slim K950

Le célèbre accessoiriste suisse lance aujourd'hui un nouveau clavier avec le Signature Slim K950, qui pourra également être...

Le MacBook Pro M3 Pro 1To à son prix le plus bas (-300€) ! M3 Max dès 3599€ !

Le MacBook Pro M3 Pro 1To à son prix le plus bas (-300€) ! M3 Max dès 3599€ !

Si vous désirez vous offrir un MacBook Pro avec une configuration performante et équilibrée, la version M3 Pro dotée de 18 Go de...

Besoin de place sur le bureau ? Un bras articulé pour 1 ou 2 moniteurs dès 54€ !

Besoin de place sur le bureau ? Un bras articulé pour 1 ou 2 moniteurs dès 54€ !

S'offrir un support de moniteur avec un bras articulé peut permettre non seulement de faire un peu de place sur le bureau, mais également de...

Canva s'offre Affinity et entend bien concurrencer Adobe !

Canva s'offre Affinity et entend bien concurrencer Adobe !

Dans les acquisitions du jour, Canva vient d'officialiser l'acquisition de la plate-forme Affinity sur son site web, tendant à rassurer au passage les...

Le clavier Logitech MX Keys Mini pour Mac bradé à -47% ! Son meilleur prix !

Le clavier Logitech MX Keys Mini pour Mac bradé à -47% ! Son meilleur prix !

Si vous n'appréciez pas la version courte du Magic Keyboard d'Apple, une des meilleures alternatives est le MX Keys Mini de Logitech, actuellement...

macOS Sonoma 14.4.1 est disponible, avec de nombreux correctifs (USB, plug-ins audio, Java) !

macOS Sonoma 14.4.1 est disponible, avec de nombreux correctifs (USB, plug-ins audio, Java) !

La mise à jour 14.4 de macOS Sonoma présente de nombreux bugs et n'a pas fait que des heureux. Apple déploie ce soir la mise à jour...

Commentaires

0 commentaire
Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.