Amazon Prime Day by Mac4Ever

iPhone 16

Test Apple

Antivirus Mac

Dock Thunderbolt

Chargeur iPhone

Nettoyeur Mac

Comparatif iPhone

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… ;)
Mac4Ever recrute sur Paris et Nîmes

Mac4Ever recrute sur Paris et Nîmes

Mac4ever renforce ses équipes et recherche plusieurs personnes pour participer à la rédaction de son fil d'actualité, à la création de contenu vidéo, ainsi qu'à l'amélioration du référencement des contenus. Si tu es intéressé, n'hésite pas à postuler !

Le MacBook Air M2 à 999€ pour le Prime Day ! Du jamais vu !

Le MacBook Air M2 à 999€ pour le Prime Day ! Du jamais vu !

Si vous avez besoin d'un MacBook Air M2 le moins cher possible, c'est le moment de craquer grâce aux promotions du Prime Day.

Les iMac M3 reconditionnés par Apple sont disponibles en France : jusqu'à -410€ !

Les iMac M3 reconditionnés par Apple sont disponibles en France : jusqu'à -410€ !

Lancé en octobre dernier, le nouvel iMac doté de la puce M3 est désormais proposé en France à des tarifs plus raisonnables...

Cloud à vie : jusqu'à 70% de réduction sur les offres pCloud 1, 2 ou 10To ! (+ pCloud Encryption)

Cloud à vie : jusqu'à 70% de réduction sur les offres pCloud 1, 2 ou 10To ! (+ pCloud Encryption)

La société suisse pCloud vous propose à l'occasion de la Journée des familles 2024, une belle promotion sur le plan à vie...

Problèmes de fiabilité des écrans LG UltraFine 5k : écran noir, port Thunderbolt dessoudé

Problèmes de fiabilité des écrans LG UltraFine 5k : écran noir, port Thunderbolt dessoudé

A la sortie des MacBook Pro 2016, Apple avait présenté des moniteurs 4k et 5k produits par LG mais vendus exclusivement par le constructeur, et...

Le malware Poseidon cible les Mac afin de subtiliser des données confidentielles

Le malware Poseidon cible les Mac afin de subtiliser des données confidentielles

Une nouvelle itération du malware Atomic Stealer intitulée Poseidon cible actuellement les utilisateurs de Mac, notamment en Suisse.

Quel Mac choisir en 2024 ? Le guide de Mac4Ever

Quel Mac choisir en 2024 ? Le guide de Mac4Ever

Avec une gamme qui compte de nombreuses machines, il devient compliqué de savoir quel Mac choisir. Mac4Ever vous explique les différences et vous...

Une mise à jour majeure pour le comparateur de fichiers Kaléidoscope sur Mac !

Une mise à jour majeure pour le comparateur de fichiers Kaléidoscope sur Mac !

Le logiciel permettant de mettre en évidence les différences entre deux fichiers s'offre une mise à jour majeure et améliore la...

Apple déploie la troisième bêta de macOS Sequoia

Apple déploie la troisième bêta de macOS Sequoia

Avec deux petits jours de retard sur iOS 18, iPadOS 18, watchOS 11, visionOS 2 et tvOS 18, Apple propose ce soir la troisième bêta de macOS 15...

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.