Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
1PrĂ©-requisAvant dâentrer dans le vif du sujet, parlons un peu de vous. Donc, vous souhaitez dĂ©velopper des applications pour iOS ou Mac OS X, mais votre expĂ©rience en programmation est faible, voire inexistante. Vos amis vous ont encouragĂ© Ă lire mes autres ouvrages, comme Programmation Cocoa sous Mac OS X, mais ils ont Ă©tĂ© rĂ©digĂ©s pour des programmeurs expĂ©rimentĂ©s. Voici mon conseil : lisez ce livre.Il existe dâautres ouvrages comparables, mais, si vous ne deviez en lire quâun, que ce soit celui-ci. En effet, jâenseigne depuis longtemps le dĂ©veloppement dâapplications pour iOS et le Mac. GrĂące Ă cette longue expĂ©rience, jâai pu dĂ©terminer quels Ă©taient vos besoins Ă ce stade de votre voyage dans le monde de la programmation. Un travail opiniĂątre mâa permis de retenir les connaissances indispensables et de mettre de cĂŽtĂ© tout le reste. Cet ouvrage est riche de bon sens et avare de superflu.Mon approche vous paraĂźtra peut-ĂȘtre un tantinet inhabituelle. Au lieu dâessayer de vous inculquer la syntaxe dâObjective-C, je vous montrerai comment fonctionne la programmation et comment les programmeurs expĂ©rimentĂ©s la considĂšrent.Câest pourquoi les grands concepts fondamentaux arrivent trĂšs tĂŽt dans cet ouvrage ; attendez-vous Ă quelques difficultĂ©s de comprĂ©hension initiales. Par ailleurs, tous les concepts, ou presque, sont accompagnĂ©s dâune mise en pratique immĂ©diate, ce qui constitue une excellente maniĂšre dâapprendre Ă programmer.
C et Objective-CLorsque vous exĂ©cutez un programme, un fichier est lu Ă partir du disque dur et copiĂ© en mĂ©moire vive. Les instructions contenues dans ce fichier sont exĂ©cutĂ©es par lâordinateur. Pour
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
4 Programmation Objective-C
lâĂȘtre humain, elles sont plutĂŽt Ă©nigmatiques et câest pourquoi les programmes sont Ă©crits Ă lâaide dâun langage de programmation. Le langage de programmation de plus bas niveau est le langage dâassemblage. Les diffĂ©rentes opĂ©rations que le processeur (le cerveau de lâordinateur) doit exĂ©cuter sont dĂ©crites dans ce langage. Le programme correspondant est ensuite converti en code machine (la langue native de lâordinateur) par un assembleur. LâĂ©criture dâun programme en langage dâassemblage est un travail long, pĂ©nible et dĂ©pendant du processeur (car le cerveau de votre dernier iMac est assez diffĂ©rent de celui de votre bien-aimĂ©, quoique Ă©culĂ©, PowerBook). Autrement dit, si vous souhaitez exĂ©cuter votre programme sur un ordinateur de type diffĂ©rent, vous devrez rĂ©crire le code dâassemblage.Pour quâun code puisse facilement passer dâun type dâordinateur Ă un autre, des langages de haut niveau ont Ă©tĂ© conçus. Avec de tels langages, lâĂ©criture du code ne dĂ©pend plus du processeur qui Ă©quipe lâordinateur cible et sâexprime sous forme dâinstructions gĂ©nĂ©rales. Ensuite, un programme spĂ©cial, appelĂ© compilateur, transforme ce code de haut niveau en un code machine optimisĂ© pour un processeur cible. Parmi ces langages de haut niveau, nous trouvons le langage C. Les programmeurs C Ă©crivent leur code dans ce langage et un compi-lateur C le convertit ensuite en code machine.Le langage C a Ă©tĂ© crĂ©Ă© au dĂ©but des annĂ©es 1970 chez AT&T. Le systĂšme dâexploitation Unix, sur lequel se fondent Mac OS X et Linux, a Ă©tĂ© Ă©crit en C et, pour les opĂ©rations de trĂšs bas niveau, en langage dâassemblage. Le systĂšme dâexploitation Windows est quasiment intĂ©gra-lement Ă©crit en C.Le langage de programmation Objective-C est basĂ© sur le langage C, auquel il ajoute une prise en charge de la programmation orientĂ©e objet. Objective-C est le langage de programmation employĂ© pour les applications destinĂ©es aux systĂšmes dâexploitation iOS et Mac OS X dâApple.
Configuration requiseObjective-C peut Ă©videmment ĂȘtre installĂ© sous Mac OSX, mais pas seulement.Pour dĂ©velopper des applications Ă interface graphique pour Mac OS ou iOS, un ordinateur Apple est obligatoire.En revanche, pour dĂ©couvrir le langage Objective-C, une machine sous Windows ou Linux peut convenir.
Mac OS ou iOSSous Mac OS, il vous faut une machine suffisamment rĂ©cente pour accepter la mise Ă jour vers la version du systĂšme minimale requise par la version de lâatelier Xcode que vous dĂ©sirez installer.Prenons comme exemple votre objectif de dĂ©velopper pour les plus rĂ©cents iPhone sous iOS6.
⹠Pour créer des projets iOS6, il faut au minimum Xcode 4.5.
âą Pour installer Xcode 4.5, il faut au minimum le systĂšme 10.7 Lion.
⹠Pour installer ou mettre à jour vers Lion, il vous faut une machine assez récente, bien sûr animée par un processeur Intel Core 2 Duo au minimum.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
Chapitre 1 Pré-requis 5
âą Selon la gamme Mac qui vous concerne (iMac, MacBook, etc.), lâĂąge maximal de la machine pouvant ĂȘtre mise Ă jour vers Lion ou Mountain Lion (10.8) diffĂšre. Ă lâheure oĂč nous Ă©crivons ces lignes, la pĂ©riode charniĂšre se situe entre 2008 et 2009.
Sous Linux ou WindowsObjective-C Ă©tant une extension du langage C, le compilateur Open Source GNU suffit pour compiler et exĂ©cuter des programmes sans interface graphique.Sous Windows, la solution consiste Ă installer les couches indispensables de lâoutil GNUStep. http://www.gnustep.org/experience/Windows.htmlVous pouvez ensuite ajouter une interface graphique nommĂ©e ProjectCenter. http://www.gnustep.org/experience/PierresDevTutorial/index.htmlSous Linux, servez-vous de lâoutil de gestion des paquetages fourni avec votre variante.
Structure de cet ouvrageGrĂące Ă cet ouvrage, vous allez acquĂ©rir toutes les connaissances sur les langages C et Objective-C qui vous permettront de dĂ©velopper des applications pour le Mac et les appareils iOS.Vous commencerez par apprendre le langage C, car tout programmeur Objective-C qui se veut efficace doit tout dâabord maĂźtriser C. Par ailleurs, de nombreux concepts Objective-C qui semblent complexes ont en rĂ©alitĂ© des origines simples en C. Câest pourquoi les diffĂ©rents concepts seront trĂšs souvent initialement prĂ©sentĂ©s en C puis dĂ©veloppĂ©s en Objective-C.Cet ouvrage a Ă©tĂ© conçu pour que vous le lisiez devant votre Mac. Vous consulterez les expli-cations des concepts et les mettrez en pratique au travers dâexpĂ©rimentations. Ces mises en application ne sont pas facultatives. Vous ne pourrez rĂ©ellement comprendre le contenu de cet ouvrage que si vous les rĂ©alisez. La meilleure façon dâapprendre Ă programmer consiste Ă saisir du code, Ă faire des erreurs, Ă les corriger et Ă se familiariser avec les schĂ©mas du langage. Les seules lecture du code et comprĂ©hension thĂ©orique des idĂ©es ne vous permettront pas de dĂ©velopper votre maĂźtrise de la programmation.Pour aller encore plus loin dans la pratique, chaque chapitre se termine par des dĂ©fis. Ces exercices proposent des expĂ©rimentations complĂ©mentaires et vous permettront de mieux assimiler les connaissances acquises. Nous vous conseillons fortement de relever autant de dĂ©fis que possible.Certains chapitres se terminent Ă©galement par des sections Pour les plus curieux. Elles reviennent plus en profondeur sur les sujets traitĂ©s dans ces chapitres. Vous pouvez parfaitement passer outre leur lecture, mais nous espĂ©rons que vous les trouverez intĂ©ressantes et utiles.Big Nerd Ranch hĂ©berge un forum dans lequel les lecteurs discutent de cet ouvrage et de ses exercices. Vous pouvez y accĂ©der Ă lâadresse http://forums.bignerdranch.com/.Cet ouvrage et la programmation de façon gĂ©nĂ©rale seront plus agrĂ©ables si vous savez comment taper sur un clavier sans regarder celui-ci. Outre le fait de saisir plus rapidement le code, cela vous permet Ă©galement de regarder lâĂ©cran et le livre Ă la place du clavier. Il est ainsi plus facile de dĂ©couvrir les erreurs lorsquâelles se produisent et cette capacitĂ© vous servira tout au long de votre carriĂšre.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
6 Programmation Objective-C
Le travail du programmeurEn commençant la lecture de cet ouvrage, vous avez dĂ©cidĂ© de devenir programmeur. Vous devez comprendre dans quoi vous vous engagez.La vie du programmeur sâapparente, en quelque sorte, Ă une lutte sans fin. Puisquâils doivent rĂ©soudre des problĂšmes dans des champs techniques toujours diffĂ©rents, les programmeurs doivent en permanence apprendre de nouvelles choses. Dans ce cas, "apprendre de nouvelles choses" est un euphĂ©misme pour "lutter contre sa propre ignorance". MĂȘme lorsquâun programmeur emploie une technologie familiĂšre, le logiciel dĂ©veloppĂ© peut ĂȘtre si complexe que la comprĂ©hension dâun dysfonctionnement prend parfois une journĂ©e entiĂšre.Si vous Ă©crivez du code, vous devrez vous dĂ©mener. La plupart des programmeurs professionnels apprennent Ă lutter heure aprĂšs heure, jour aprĂšs jour, sans ĂȘtre (trop) frustrĂ©s. Il sâagit dâune expĂ©rience qui vous servira Ă©galement. Si le travail des programmeurs et si les projets logiciels modernes vous intĂ©ressent, nous vous recommandons la lecture de lâouvrage Dreaming in Code, de Scott Rosenberg.Il est temps Ă prĂ©sent dâavancer et dâĂ©crire votre premier programme.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
2Votre premier programmeVous connaissez Ă prĂ©sent lâorganisation de cet ouvrage. Vous pouvez donc entrer dans le monde de la programmation pour le Mac, lâiPhone et lâiPad. Pour cela, vous devez procĂ©der aux opĂ©rations suivantes :
âą installer les outils de dĂ©veloppement dâApple ;
âą crĂ©er un projet simple Ă lâaide de ces outils ;
⹠utiliser ces outils pour vérifier que votre projet est opérationnel.Arrivé à la fin de ce chapitre, vous aurez écrit votre premier programme pour le Mac.
Installer les outils de dĂ©veloppement dâApplePour dĂ©velopper des applications destinĂ©es Ă Mac OS X (le Macintosh) ou Ă iOS (les iPhone et iPad), vous emploierez les outils de dĂ©veloppement dâApple. Ils sont disponibles en tĂ©lĂ©char-gement Ă partir du site http://developer.apple.com/ ou sur le Mac App Store.Dans cet ouvrage, nous allons employer presque exclusivement une seule application : Xcode, qui se trouve dans le dossier /Applications. NâhĂ©sitez pas Ă faire glisser son icĂŽne dans le Dock afin de faciliter son lancement.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
8 Programmation Objective-C
DĂ©buter avec XcodeXcode est lâenvironnement de dĂ©veloppement intĂ©grĂ© (IDE, Integrated Development Environment) dâApple. Autrement dit, tout ce dont vous avez besoin pour Ă©crire, compiler et exĂ©cuter de nouvelles applications est fourni par Xcode.Faisons un petit point sur la terminologie. Tout composant exĂ©cutable sur un ordinateur est appelĂ© programme. Certains programmes bĂ©nĂ©ficient dâune interface utilisateur graphique et sont des applications.Vous trouverez Ă©galement des programmes qui ne disposent dâaucune interface utilisateur graphique et qui sâexĂ©cutent en permanence en arriĂšre-plan : les dĂ©mons. Vous pourriez ĂȘtre effrayĂ© par la prĂ©sence de dĂ©mons sur votre ordinateur, mais nâayez crainte. Il est fort possible quâune soixantaine de dĂ©mons soient en cours dâexĂ©cution sur votre Mac. Ils sont dans un Ă©tat dâattente, dans lâespoir de se rendre utiles. Par exemple, lâun des dĂ©mons qui sâexĂ©cutent sur votre systĂšme se nomme pboard. Lorsque vous effectuez un copier-coller, les donnĂ©es copiĂ©es sont dĂ©tenues par ce dĂ©mon.Dâautres programmes nâont pas dâinterface utilisateur et sâexĂ©cutent dans Terminal pendant une courte durĂ©e. Il sâagit des outils en ligne de commande. Dans cet ouvrage, vous Ă©crirez principalement des outils en ligne de commande, car lâobjectif est dâapprendre Ă programmer et il est inutile de se laisser distraire par la crĂ©ation et la gestion dâune interface graphique.Vous allez Ă prĂ©sent crĂ©er un outil en ligne de commande simple Ă lâaide de Xcode, ce qui nous permettra dâen illustrer le fonctionnement.LâĂ©criture dâun programme implique de nombreux fichiers. Xcode les conserve dans un projet. Allez-y, lancez Xcode. Dans le menu File, choisissez New puis Project.Pour vous aider, Xcode propose les diffĂ©rents modĂšles de projets possibles. Choisissez celui qui correspond au type de programme que vous souhaitez dĂ©velopper. Dans la colonne de gauche, sous la rubrique oS X, sĂ©lectionnez APPlicAtioN. Dans la liste de choix qui apparaĂźt Ă droite, choisissez commANd liNe tool (voir Figure 2.1).Appuyez sur le bouton NeXt.Nommez le projet UnBonDebut. Pour les exercices de cet ouvrage, lâidentifiant de la sociĂ©tĂ© nâa pas dâimportance, mais vous devez nĂ©anmoins saisir cette information. Vous pouvez choisir BigNer-drANch ou nâimporte quel autre nom. Dans le menu tyPe, sĂ©lectionnez c, car ce programme sera Ă©crit en langage C. Enfin, vĂ©rifiez que la case USe AUtomAtic reFereNce coUNtiNg est cochĂ©e (voir Figure 2.2).Appuyez sur le bouton NeXt.Indiquez Ă prĂ©sent le dossier dans lequel le rĂ©pertoire du projet doit ĂȘtre crĂ©Ă©. Puisque vous nâaurez pas besoin dâun dĂ©pĂŽt pour le contrĂŽle de version, vous pouvez dĂ©cocher la case corres-pondante. Enfin, cliquez sur le bouton Create.Dans plusieurs autres chapitres de cet ouvrage, vous crĂ©erez des projets de mĂȘme type que celui-ci. Nous indiquerons simplement "CrĂ©ez un nouveau projet dâoutil C en ligne de commande nommĂ© nom-du-programme". Il vous suffira alors de suivre la sĂ©quence dâopĂ©rations dĂ©crite ici.Pourquoi choisir le langage C ? Nous avons dĂ©jĂ prĂ©cisĂ© quâObjective-C se fonde sur le langage de programmation C. Vous devez donc maĂźtriser les fondamentaux de C avant de dĂ©couvrir les spĂ©cificitĂ©s dâObjective-C.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
Chapitre 2 Votre premier programme 9
Figure 2.1Choisir le modĂšle du programme.
Figure 2.2Préciser les options du projet.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
10 Programmation Objective-C
Commencer Ă Ă©crire le codeAprĂšs que vous avez crĂ©Ă© le projet, vous ĂȘtes accueilli par une fenĂȘtre qui illustre la production du programme UnBonDebut (voir Figure 2.3).
Figure 2.3PremiĂšre vue du projet UnBonDebut.
Cette fenĂȘtre comprend de nombreux dĂ©tails, comme les versions de Mac OS X sur lesquelles lâapplication peut fonctionner, les configurations Ă utiliser lors de la compilation et les diffĂ©rentes localisations qui ont Ă©tĂ© appliquĂ©es au projet. Pour le moment, nous allons ignorer ces dĂ©tails et tĂącher de trouver un endroit oĂč commencer Ă Ă©crire le code.Dans le panneau de gauche, vous devez trouver le fichier nommĂ© main.c ; cliquez dessus. Si ce fichier nâapparaĂźt pas, cliquez sur la flĂšche placĂ©e Ă gauche du dossier UnBonDebut afin dâen rĂ©vĂ©ler le contenu (voir Figure 2.4).Le panneau de droite, qui affichait prĂ©cĂ©demment les dĂ©tails de production du programme, prĂ©sente maintenant le contenu du fichier main.c, notamment la fonction nommĂ©e main.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
Chapitre 2 Votre premier programme 11
Figure 2.4Trouver le fichier main.c dans le groupe UnBonDebut.
Une fonction est une liste dâinstructions que lâordinateur doit exĂ©cuter et chaque fonction possĂšde un nom. Dans un programme C ou Objective-C, main correspond Ă la fonction appelĂ©e au dĂ©marrage du programme.
#include <stdio.h>
int main (int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!\n");
return 0;
}
Dans cette fonction, vous trouvez les deux types dâinformations contenues dans un programme : du code et des commentaires.
âą Le code correspond Ă lâensemble des instructions qui demandent Ă lâordinateur dâeffectuer certaines actions.
âą Les commentaires sont ignorĂ©s par lâordinateur, mais les programmeurs ont lâhabitude de documenter le code quâils Ă©crivent. Plus le problĂšme de programmation est complexe, plus les commentaires aideront Ă expliquer sa rĂ©solution. Ce point est particuliĂšrement important si vous devez revenir sur votre travail aprĂšs plusieurs mois. Si vous examinez une partie du code que vous nâavez pas documentĂ©e, vous penserez probablement : "Je suis certain que jâavais trouvĂ© une solution trĂšs ingĂ©nieuse, mais jâai totalement oubliĂ© comment elle fonctionne."
En C et en Objective-C, il existe deux façons de différencier les commentaires et le code :
âą Lorsquâune ligne de code dĂ©bute par les caractĂšres //, tout ce qui vient ensuite, jusquâĂ la fin de la ligne, est traitĂ© comme un commentaire. Ce type de commentaires est utilisĂ© pour la ligne "insert code here..." gĂ©nĂ©rĂ©e par Xcode.
⹠Si les explications requises sont plus longues, vous pouvez utiliser les balises /* et */ pour marquer, respectivement, le début et la fin du commentaire et le rédiger sur plusieurs lignes.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
12 Programmation Objective-C
Ces rĂšgles dâajout de commentaires font partie de la syntaxe de C. La syntaxe correspond au jeu de rĂšgles qui rĂ©gissent lâĂ©criture du code dans un langage de programmation donnĂ©. Ces rĂšgles sont extrĂȘmement prĂ©cises et le programme ne fonctionnera pas si elles ne sont pas respectĂ©es.Alors que la syntaxe des commentaires est plutĂŽt simple, celle du code peut varier Ă©normĂ©ment en fonction des opĂ©rations effectuĂ©es et de la maniĂšre dont le code les rĂ©alise. Toutefois, un aspect reste cohĂ©rent : chaque instruction se termine par un point-virgule (nous verrons des exemples dâinstructions un peu plus loin). Un point-virgule oubliĂ© correspond Ă une erreur de syntaxe et le programme ne fonctionne pas.Heureusement, Xcode est en mesure de signaler les erreurs de ce type. En rĂ©alitĂ©, lâun des premiers dĂ©fis auxquels fait face le programmeur est lâinterprĂ©tation des messages gĂ©nĂ©rĂ©s par Xcode en cas de problĂšmes ; le second est de corriger ses erreurs. Tout au long de cet ouvrage, vous rencontrerez certaines des rĂ©ponses donnĂ©es par Xcode pour les erreurs de syntaxe rĂ©currentes.Apportons quelques modifications Ă main.c. Tout dâabord, nous avons besoin dâespace. Localisez les accolades ({ et }) qui marquent le dĂ©but et la fin de la fonction main, puis supprimez tout ce qui se trouve entre ces deux balises.Ensuite, saisissez le code ci-aprĂšs afin dâobtenir la nouvelle version de main.c. La fonction main comprend Ă prĂ©sent une ligne de commentaire, deux lignes de code et un autre commentaire. Pour le moment, ne vous inquiĂ©tez pas de comprendre ce contenu. LâidĂ©e est de dĂ©marrer. Vous avez tout un livre devant vous pour apprendre la signification de ces lignes.
#include <stdio.h>
int main (int argc, const char * argv[])
{
// Afficher le début du roman.
printf("CâĂ©tait la meilleure des Ă©poques.\n");
printf("CâĂ©tait la pire des Ă©poques.\n");
/* Est-ce vraiment un bon début ?
Il faudra peut-ĂȘtre le rĂ©crire. */
return 0;
}
(Le nouveau code que vous devez saisir est donnĂ© en gras. Le code en police normale est celui dĂ©jĂ en place. Nous suivrons cette convention tout au long de cet ouvrage.)Au fur et Ă mesure que vous saisissez le contenu, vous remarquerez que Xcode tente dâeffectuer des suggestions utiles. Cette fonctionnalitĂ©, nommĂ©e complĂ©tion de code, se rĂ©vĂ©lera trĂšs pratique. Vous pouvez lâignorer pour le moment et vous borner Ă la saisie intĂ©grale du code.Toutefois, au cours de votre progression dans ce livre, commencez Ă exploiter la complĂ©tion de code et voyez comment elle peut vous aider Ă Ă©crire du code de façon plus pratique et plus juste. Les diffĂ©rents rĂ©glages de la complĂ©tion de code sont disponibles dans le panneau de prĂ©fĂ©rence de Xcode, auquel vous accĂ©dez Ă partir du menu Xcode.Par ailleurs, gardez un Ćil sur la couleur de la police. Xcode emploie des couleurs diffĂ©rentes afin de faciliter lâidentification des commentaires et des diffĂ©rentes parties du code. Par exemple, les commentaires sont affichĂ©s en vert. Cette fonctionnalitĂ© se rĂ©vĂšle Ă©galement trĂšs pratique.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
Chapitre 2 Votre premier programme 13
AprĂšs que vous aurez travaillĂ© pendant quelque temps avec Xcode, vous commencerez Ă noter instinctivement des discordances dans les couleurs. En gĂ©nĂ©ral, cela signifie une erreur de syntaxe dans le code en cours dâĂ©criture (comme un point-virgule oubliĂ©). Plus une erreur de syntaxe est dĂ©tectĂ©e tĂŽt, plus elle est facile Ă corriger. Ces diffĂ©rences de couleur font partie des moyens mis en Ćuvre par Xcode pour signaler les erreurs Ă©ventuelles.
ExĂ©cuter un programmeAprĂšs que vous avez saisi le nouveau code dans main.c, vous pouvez exĂ©cuter le programme et voir ses actions. Cela se passe en deux Ă©tapes. Xcode compile votre programme puis lâexĂ©cute. Pendant la phase de compilation, Xcode prĂ©pare le code afin quâil puisse ĂȘtre ensuite exĂ©cutĂ©. Cela comprend un contrĂŽle de la syntaxe et la vĂ©rification de diffĂ©rentes sortes dâerreurs.Revenons Ă la partie gauche de la fenĂȘtre Xcode. Il sâagit de la zone de navigation, qui propose un ensemble de boutons en partie supĂ©rieure. Le mode dâaffichage courant correspond au navigateur de projet, dont lâicĂŽne dâactivation est . Dans ce mode, les fichiers du projet sont affichĂ©s. Cliquez Ă prĂ©sent sur le bouton de façon Ă rĂ©vĂ©ler le navigateur du journal. Câest au travers du journal (ou log) que Xcode communique avec vous pendant la compilation et lâexĂ©cution du programme.Vous pouvez Ă©galement employer le journal pour vos propres besoins. Par exemple, la ligne de code suivante est une instruction qui consigne la phrase "CâĂ©tait la meilleure des Ă©poques." dans le journal :
printf("CâĂ©tait la meilleure des Ă©poques.\n");
Puisque vous nâavez pas encore compilĂ© ni exĂ©cutĂ© le programme, le navigateur du journal est vide. RemĂ©dions Ă cela. Dans lâangle supĂ©rieur gauche de la fenĂȘtre du projet, repĂ©rez le bouton qui ressemble au bouton de lecture dans iTunes ou sur un lecteur de DVD. Si vous laissez le pointeur positionnĂ© au-dessus de ce bouton, une info-bulle affiche BUild ANd theN rUN the cUrreNt Scheme. Câest la façon Xcode de dire "Appuyez sur ce bouton et je compilerai et exĂ©cuterai votre programme".Si tout se passe bien, vous serez rĂ©compensĂ© par lâaffichage de lâimage suivante :
Dans le cas contraire, lâimage suivante apparaĂźt :
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
14 Programmation Objective-C
Dans ce cas, que devez-vous faire ? Comparez minutieusement votre code avec celui donnĂ© dans cet ouvrage. Recherchez les erreurs de saisie et les points-virgules manquants. Xcode met en exergue les lignes quâil pense source de problĂšmes. AprĂšs que vous avez corrigĂ© les erreurs, cliquez Ă nouveau sur le bouton Run. Recommencez cette sĂ©quence jusquâĂ ce que la compilation rĂ©ussisse.Ne soyez pas dĂ©couragĂ© par un Ă©chec de la compilation de ce code ou de celui que vous Ă©crirez ultĂ©rieurement. Par vos erreurs et par leur correction, vous aurez une meilleure comprĂ©hension de vos actions. En rĂ©alitĂ©, il est prĂ©fĂ©rable de subir quelques Ă©checs plutĂŽt que dâavoir de la chance et que tout fonctionne correctement du premier coup.Lorsque la compilation rĂ©ussit, recherchez, en partie supĂ©rieure du navigateur du journal, lâĂ©lĂ©ment libellĂ© deBUg UNBoNdeBUt. Cliquez dessus pour afficher les entrĂ©es du journal, Ă partir de lâexĂ©cution la plus rĂ©cente du programme.Selon sa version, Xcode utilise le dĂ©bogueur GDB ou le dĂ©bogueur LLDB (Ă partir de la version 4). Dans le cas de GDB, le journal peut ĂȘtre relativement verbeux, comme le montrent les lignes suivantes. La partie importante concerne la citation de Dickens qui se trouve Ă la fin. Elle indique que votre code sâest exĂ©cutĂ© !
GNU gdb 6.3.50-20050815 (Apple version gdb-1705) (Tue Jul 5 07:36:45 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".tty /dev/ttys001
[Switching to process 2723 thread 0x0]
CâĂ©tait la meilleure des Ă©poques.
CâĂ©tait la pire des Ă©poques.
Si vous utilisez le débogueur LLDB, seules les lignes de la citation sont affichées.
Quâest-ce quâun programme ?VoilĂ , vous avez compilĂ© et exĂ©cutĂ© votre programme. Examinons Ă prĂ©sent ce qui se trouve Ă lâintĂ©rieur. Un programme est un ensemble de fonctions. Une fonction est une suite dâopĂ©rations que le processeur doit exĂ©cuter. Chaque fonction possĂšde un nom, celle que vous avez Ă©crite se nomme main. Le programme employait Ă©galement la fonction printf. Vous ne lâavez pas Ă©crite, simplement utilisĂ©e (au Chapitre 5, nous verrons dâoĂč provient printf).Pour le programmeur, Ă©crire une fonction Ă©quivaut en quelque sorte Ă Ă©crire une recette : "Remuer doucement 25 cl dâeau et porter Ă Ă©bullition. Ajouter ensuite une tasse de farine. Servir pendant que le mĂ©lange est chaud."Au milieu des annĂ©es 1970, vous pouviez acheter des boĂźtes qui contenaient des fiches de recettes. Une fiche de recette est une bonne mĂ©taphore des fonctions. Ă lâinstar dâune fonction, chaque fiche possĂšde un nom et un ensemble dâinstructions (voir Figure 2.5). Si vous ĂȘtes chargĂ© dâexĂ©cuter une recette, câest en revanche votre ordinateur qui exĂ©cute une fonction.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
Chapitre 2 Votre premier programme 15
Figure 2.5Une fiche de recette intitulée Croustillants de poulet.
Dans un saladier, battez les Ćufspuis salez et poivrez.
Dans un autre récipient, préparez lachapelure épicée.
Trempez les laniĂšres de poulet danslâĆuf puis dans la chapelure Ă©picĂ©e.
Faites chauffer lâhuile dâolive dans une poĂȘle et laissez dorer les laniĂšres de poulet.
Servez-les accompagnĂ©s dâunesauce basilic et de quelques feuilles de roquette.
Les instructions des fiches de recettes sont rĂ©digĂ©es en français. Dans la premiĂšre partie de cet ouvrage, les fonctions seront rĂ©digĂ©es en langage C. Toutefois, le processeur dâun ordinateur attend ses instructions en code machine. Comment passe-t-on de lâun Ă lâautre ?Lorsque vous Ă©crivez un programme en langage C (ce qui vous convient), câest au compilateur que revient la tĂąche de convertir les fonctions en code machine (ce qui convient au processeur). Le compilateur est lui-mĂȘme un programme exĂ©cutĂ© par Xcode lorsque vous appuyez sur le bouton Run. De façon plus prĂ©cise, la compilation est une Ă©tape de la construction globale dâun programme, qui en comprend plusieurs autres, mais les termes compilation et construction sont employĂ©s de façon interchangeable.Lorsque vous exĂ©cutez un programme, les fonctions compilĂ©es sont prises sur le disque dur et copiĂ©es en mĂ©moire. La fonction nommĂ©e main est ensuite exĂ©cutĂ©e par le processeur. En gĂ©nĂ©ral, la fonction main appelle dâautres fonctions. Ainsi, dans lâexemple prĂ©cĂ©dent, la fonction printf Ă©tait appelĂ©e depuis main. (Au Chapitre 5, nous verrons les interactions entre les fonctions.)
PersĂ©vĂ©ranceĂ ce stade, vous avez probablement fait face Ă plusieurs difficultĂ©s : problĂšmes dâinstallation, erreurs de saisie et nombreux termes nouveaux. De plus, tout ce que vous avez rĂ©alisĂ© nâa peut-ĂȘtre pas beaucoup de sens. Tout cela est parfaitement normal.Au moment oĂč je rĂ©dige ces lignes, mon fils Otto a six ans. Les multiples dĂ©couvertes quâil peut faire chaque jour le laissent souvent perplexe. Il tente constamment dâabsorber des connaissances qui nâentrent pas dans son schĂ©ma mental actuel. Les causes de confusion sont si nombreuses quâelles ne lâennuient pas rĂ©ellement. Il nâarrĂȘte pas de se demander "Pourquoi est-ce si confus ? Dois-je laisser tomber ce livre ?"En grandissant, nous sommes de moins en moins souvent dĂ©concertĂ©s. Non que nous connais-sions tout, mais simplement parce que nous avons tendance Ă Ă©viter ce qui nous dĂ©route. Par exemple, la lecture dâun livre dâhistoire est assez plaisante car nous dĂ©couvrons des pĂ©pites de connaissances qui se raccrochent Ă notre structure mentale. Il sâagit dâun apprentissage facile.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass
16 Programmation Objective-C
En revanche, lâapprentissage dâune nouvelle langue pose des difficultĂ©s. Vous savez que des millions de personnes communiquent dans cette langue sans effort, mais elle sonne incroya-blement Ă©trange et fausse dans votre bouche. Lorsque ces personnes vous parlent, vous ĂȘtes souvent hĂ©bĂ©tĂ©.Apprendre Ă programmer un ordinateur est Ă©galement difficile. Vous serez de temps en temps perplexe, en particulier au dĂ©but. Ce nâest rien, câest mĂȘme presque agrĂ©able. Câest un peu comme avoir de nouveau six ans.Faites preuve de persĂ©vĂ©rance en lisant ce livre et je vous promets que votre perplexitĂ© aura disparu avant que vous nâarriviez Ă la derniĂšre page.
© 2013 Pearson France â Programmation Objective-C â Aaron Hillegass