Michel Mongkhoy’s Blog

Justin(me), so かわいい

Cocoa, Objective-C, gné ? (Part 2)

avec 4 commentaires

Continuons le livre d’Aaron Hillegass. Après les premiers chapitres consacrés aux bases et au langage Objective-C en général, on s’attaque aux bases des frameworks de Cocoa. Place au chapitre “Cible et action”. 

Alors qu’en début du livre, on écrit notre première application Cocoa sans vraiment savoir ce que l’on fait (copiage bête de code, mais au résultat oh merveilleux), ici on va vraiment comprendre le mécanisme des messages.

Ma super première application Cocoa

Ma super première application Cocoa

Le mécanisme des messages est très simple. Dans Objective-C, tout est objet, et chaque objet peut communiquer avec un autre. Un objet peut envoyer un message à une autre objet cible, et cet autre objet pourra réagir au message et effectuer alors des actions. C’est comme si VOUS, vous demandiez à votre frère “Hey ! Passes moi le sel !”. Votre frère pourra alors vous donner le sel, ou bien vous le balancer en pleine figure, ou tout simplement vous dire “Non !”. Vous avez compris l’image : on envoie un message à une cible pour qu’elle effectue une action. 

Mais avec XCode et Interface Builder, le développement Cocoa est (pour l’instant) d’une convivialité déconcertante. Par exemple, il suffit de sélectionner votre bouton dans Interface Builder, on appuie sur la touche Contrôle+Clic et paff une jolie ligne bleu apparaît pour relier notre objet et notre bouton. On sélectionne l’action (implémenté par nous même) qu’on veut affecter au bouton et PAF : 

Quand on appuie sur le bouton, le nombre de caractères s'affiche !

Quand on appuie sur le bouton, le nombre de caractères s'affiche !

Ce petit programme était est en fait l’exercice de fin du Chapitre.

Mais l’on peut faire encore plus fort….

Mon compteur de caractères.... sur iPhone !

Mon compteur de caractères.... sur iPhone !

Si j’ai commencé le développement Cocoa, c’est que développer sur Mac, ça a l’air c’est fun ! Et puis malgré moi, j’aime bien Apple. Non pas que j’ai un iPod, un MacBook, une iCarte iMagineR (aujourd’hui j’ai séché les cours profité du soleil, juste parce que je n’avais pas mis la main sur ma carte perdue entre mon étagère et mon lit)… J’ai aussi un iPhone depuis peu… iPhone, le smartphone “en vogue” (prononcé à l’anglaise s’il vous plaît). Et aux possibilités de développement éNORmes. Si les gens (comme moi depuis que j’ai mon petit iPhone) ont envie d’apprendre Cocoa, c’est uniquement pour ça. 

Revenons à nos moutons. En Objective-C, tout est objet. Ma classe compteur, qui à partir d’une fenêtre, avec une texte box, d’un bouton et d’un label, permet d’afficher le nombre de caractères contenus. Je me dit bêtement : “ben je dois pouvoir exporter ma classe compteur pour une appli iPhone” ^^

Hop, File > New Project > Window-Bases iPhone Application I don’t even remember the name of the type of the projet, j’ajoute mes fichiers compteur.h/m, et non, non, ça veut pas Build & Go, vu que déjà ça veut pas Build ! Et moi qui pensait que ça allait être aussi simple que de développer sur un Mac. 

Et bien je n’avais pas tout à fait tort. Mon esprit d’informaticien se mets en mode “Debugage”. Bizarrement les NSTextField il n’aime pas. En fait, le nom des objets (un bouton, un label, etc.) ne sont pas exactement les même pour le développement iPhone, vu que déjà ce n’est pas les mêmes frameworks. Mais ouf, ils ressemblent à peu près à ceux de Cocoa. En moins d’une minute j’ai remplacé mon NSTextField par un UITextField et remplacé toutes les autres choses à changer. Pomme+S, Build & Go, et… Et voilà ! 

Comme dirait quelqu’un dont je ne me souviens plus du nom : c’est PUISSANT !

P.S. J’essayerai de mettre les fichiers sources au plus vite ^^

Rédigé par Michel

31 mars 2009 à 21:18

Publié dans Cocoa, iPhone

Tagged with , , ,

4 réponses

Souscrire aux commentaires via RSS.

  1. c vraiment un blog de geek! :D

    Jenny

    31 mars 2009 à 21:38

  2. eBay girl va !

    Michel

    1 avril 2009 à 13:38

    • Salut Michel, je vien d’acheter le livre et j’en suis au même niveau que toi là. Je voudrais que tu m’aides car décidement j’arrive pas.
      En plus nous pourrions discuter de nos problèmes…. puis avec le temps sait on jamais devloppé des app ensembles :d

      mon msn : myki-94@live.fr

      Michaël

      7 avril 2009 à 16:28

      • Hey Michaël ! Merci de visiter mon blog ^^ Je t’ajoute de suite, qu’on voit ton petit problème !

        Michel

        7 avril 2009 à 17:03


Laisser un commentaire