358
Revendez vos créations sur iTunes App Store iPhone et iPod Touch Développez des applications originales pour z io s e re ons s e Jean-Marc Delprato

Développez des applications originales pour iPhone et iPod Touch

Embed Size (px)

Citation preview

  • Revendez vos crations sur iTunes App Store

    iPhone et iPod Touch

    Dveloppez des applications originales pour

    z iose

    re

    ons s e

    Jean-Marc Delprato

  • L E P R O G R A M M E U R

    Dveloppez desapplications originalespour iPhone et iPod Touch

    Revendez vos crations sur iTunes App StoreJean-Marc Delprato

  • Pearson Education France a apport le plus grand soin la ralisation de ce livre afin de vous fournir une information complte et fiable. Cependant, Pearson Education France nassume de responsa-bilits, ni pour son utilisation, ni pour les contrefaons de brevets ou atteintes aux droits de tierces personnes qui pourraient rsulter de cette utilisation.

    Les exemples ou les programmes prsents dans cet ouvrage sont fournis pour illustrer les descrip-tions thoriques. Ils ne sont en aucun cas destins une utilisation commerciale ou professionnelle.

    Pearson Education France ne pourra en aucun cas tre tenu pour responsable des prjudices ou dom-mages de quelque nature que ce soit pouvant rsulter de lutilisation de ces exemples ou programmes.

    Tous les noms de produits ou marques cits dans ce livre sont des marques dposes par leurs pro-pritaires respectifs.

    All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or me-chanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.

    Aucune reprsentation ou reproduction, mme partielle, autre que celles prvues larticle L. 122-5 2 et 3 a) du code de la proprit intellectuelle ne peut tre faite sans lautorisation expresse de Pearson Education France ou, le cas chant, sans le respect des modalits prvues larticle L. 122-10 dudit code.

    Publi par Pearson Education France47 bis, rue des Vinaigriers75010 PARISTl. : 01 72 74 90 00www.pearson.fr

    Avec la contribution de Fabien Schwob

    Collaboration ditoriale et mise en pages : Digit Books (Dominique Buraud)

    ISBN : 978-2-7440-4127-3Copyright 2010 Pearson Education FranceTous droits rservs

  • Sommaire

    Prface 11. Le SDK de liPhone et de liPod Touch 72. Vue densemble du dveloppement pour iPhone 293. la dcouverte du SDK de liPhone 454. Interactions avec vos applications 75

    5. Les vues de votre application 1076. Les contrles spcifiques 1537. Lire et crire des donnes 2078. Le multimdia 2459. Ragir aux gestes de lutilisateur 28710. Publication et marketing 317Index 343

  • Table des matires

    Prface 1Organisation de cet ouvrage 2Prrequis 4Conventions typographiques 5Remerciements 5 propos de lauteur 6

    Chapitre 1. Le SDK de liPhone et de liPod Touch 7Les lments runir 8Installer le SDK 13Avant daller plus loin : prparer votre projet 17

    tablir un cahier des charges sommaire 18Les types dapplications de liPhone : faites jaillir toutes sortes dides ! 19Les bonnes ides dapplications et les projets viter 23Concevoir et designer son application sur papier 24

    Chapitre 2. Vue densemble du dveloppement pour iPhone 29Les outils votre disposition 30 la dcouverte de Cocoa Touch et de lObjective-C 32

    La filiation entre liPhone et Mac OS X 32Une premire approche de Cocoa 34Le langage de programmation Objective-C 35Les couches technologiques de liPhone OS et lintgration de Cocoa Touch 37Les spcificits et les limites de liPhone 39

    En route vers Xcode 43

    Chapitre 3. la dcouverte du SDK de liPhone 45Crer votre premier projet pour iPhone 46

    Matriser Xcode 46Structure gnrale de tous les projets pour iPhone 49Matriser Interface Builder 52Ajouter des objets avec Interface Builder 54Les objets de la bibliothque dInterface Builder 58

    Tester et dboguer votre premier projet 62Compiler votre projet 63Ajouter licne de votre application 66Pour aller plus loin : importer des projets officiels dApple 68

    En route vers le dialogue avec lutilisateur 72

  • VI Dveloppez des applications originales pour iPhone et iPod Touch

    Chapitre 4. Interactions avec vos applications 75Le schma Modle-Vue-Contrleur 78Dvelopper la vue et associer des actions aux contrles 80

    Le concept doutlets et dactions 81Associer les outlets et les actions au projet 84Dessiner linterface et associer des mthodes aux objets 91Les vnements associs liPhone 96

    Les accesseurs et les mutateurs 98La logique interne de lObjective-C 98Les proprits en Objective-C 98

    Le dlgu de lapplication 99Finaliser notre projet de quiz 101Pour aller plus loin 106

    Chapitre 5. Les vues de votre application 107Hirarchiser les vues de votre application 109

    Choisir un systme de navigation 111Organiser une application multivues 116

    La navigation par onglets 116La navigation par boutons 121

    Modifier lanimation de transition 127MultiConvertisseur, une application multivues compose dactions et doutlets 131Le design des vues de votre application 143

    Les tendances du design dapplications 144Du papier Photoshop : la refonte de MultiConvertisseur 147

    Pour aller plus loin 150

    Chapitre 6. Les contrles spcifiques 153Interagir avec des contrles spcifiques : la cration dun utilitaire 154

    Le modle Utility Application 154Le cahier des charges et lbauche prliminaire 158La logique interne des contrleurs 160Lhabillage de linterface et la liaison des outlets et actions 169

    Interagir avec des rglettes, des alertes, des contrles segments et des sous-vues 173

    Ajouter une rglette 173Afficher une alerte lutilisateur 177Ajouter un contrle segment et une sous-vue 179

    Intgrer une roulette lapplication 184Les roulettes de temps 185Intgrer une roulette personnalise 190Dfinir des lments dpendants dans une liste de proprits 199

    Pour aller plus loin 206

    Chapitre 7. Lire et crire des donnes 207Lire des donnes 209

    Crer une liste simple partir de contenu externe 209Mettre en forme les cellules 215Ragir au contact de lutilisateur 221Crer un lecteur de flux RSS 223

    Enregistrer des donnes 231Sauvegarder les Prfrences Systme 232crire un fichier 237

    Pour aller plus loin 244

    Chapitre 8. Le multimdia 245Les images et les photographies 248

    Afficher des images 248Adapter les dimensions de la vue dimage 253Charger une image depuis une source externe 258Charger des images et des PDF avec la classe UIWebView 261Charger la photothque de lutilisateur 264

    Laudio et la vido 275Dclencher un son 275Lire une vido 280

    Le dessin et les animations 282Pour aller plus loin 286

  • VII Table des matires

    Chapitre 9. Ragir aux gestes de lutilisateur 287Grer la rotation de laffichage 289Contrler la manipulation de lcran 297

    Dplacer un lment du bout des doigts 300Grer la navigation partir de gestes 304Interagir avec lacclromtre de liPhone 311

    Pour aller plus loin 316

    Chapitre 10. Publication et marketing 317Adhrer au programme de dveloppeur iPhone 318Dployer une application iPhone 322

    Crer un certificat de dveloppeur 322Associer des iPhones enregistrs 324Crer un identifiant dapplication 325Crer un profil de provisionnement 326Tester une application sur votre iPhone 327

    Soumettre votre application Apple 328Populariser votre application 335Pour aller plus loin 341

    Index 343

  • Prface

    "Design is not just what it looks like and feels like. Design is how it works."Steve Jobs, 30 novembre 2003, New York Times

    San Francisco, janvier 2007. Devant un parterre de journalistes largement acquis sa cause, Steve Jobs a la voix empreinte dun ton plus solennel qu laccoutume. En coulisses, lquipe technique dApple pressent que la grand-messe de cette anne marquera coup sr un virage spectaculaire dans lindustrie de linformatique et des loisirs numriques, bien au-del du simple sort rserv la marque la pomme. Une pointe dexcitation gagne les premiers rangs de la salle du MacWorld, alors que Steve Jobs entame son discours inaugu-ral. "De temps autre, un produit rvolutionnaire apparat sur le march et change toute la donne. On peut sestimer vraiment chanceux de travailler sur un seul produit de cette trempe au cours de sa carrire. Aujourdhui, Apple sapprte lever le voile sur trois produits limportance aussi capitale. Trois produits en un : liPhone".

    Vous connaissez la suite : la fivre iPhone a gagn lensemble de la plante, en dpassant allgrement les prvisions les plus folles et en faisant exploser tous les compteurs. Par son ergonomie si intuitive, sa facilit daccs, ses fonctionnalits riches et ltendue des services quil offre, le mobile dApple a redfini lusage du tlphone. Cest un appareil de com-munication au sens large, qui vous permet dinterroger les services les plus modernes tout en profitant des fonctions tlphoniques de base. Mais cest aussi un formidable terrain de jeu pour tout type de loisirs numriques, du visionnage de squences vidos la lecture de votre audiothque personnelle. Et un outil de productivit sans commune mesure avec les tlphones antrieurs. Inutile de poursuivre linventaire des services quil rend : liPhone

  • 2 Dveloppez des applications originales pour iPhone et iPod Touch

    rvolutionne lusage du mobile et saffirme comme la plateforme par excellence de lutili-sateur nomade.

    Figure de proue de ces nouveaux usages aux innombrables aspects, lApp Store diTunes introduit un mode de distribution original. Sacralisant lapplication comme la brique es-sentielle de tout usage mobile, la boutique en ligne diffuse directement les crations de ses propres utilisateurs. Modeste utilitaire rendant de fiers services au quotidien, jeu vido spec-taculaire ou lecteur multimdia spcialis dans un domaine : vous adaptez librement votre tlphone vos usages, en lui greffant toutes les applications dont vous avez besoin. Une fonction manque lappel ? Dveloppez-la vous-mme et venez enrichir le catalogue com-mun ! Au-del du plaisir de simpliquer dans cet effort global, vous dcouvrez un nouveau moyen de rtribuer votre passion et vous pouvez ainsi prtendre des revenus rguliers.

    LiPhone est bien cette hydre aux cent mille ttes. Cent mille applications qui exploitent chacune de ses possibilits dans leurs derniers retranchements. Cent mille ides originales, qui se compltent mutuellement et offrent un panorama dune richesse incroyable. Et cent mille dveloppeurs, la passion et linventivit contagieuses, qui regorgent de crativit.

    Cent mille dveloppeurs dont vous ! Grce cet ouvrage, vous pntrez dans les coulisses de liPhone et vous dcouvrez toute la richesse de ses rouages. Dcryptez son systme, pro-fitez de ses contrles originaux et modernes et rinventez votre tour lusage mobile. De lcran multi-touch lacclromtre en passant par laccs aux services web ou lutilisa-tion du capteur photo/vido, vous disposez dun arsenal trs riche de fonctions qui laissent libre cours tous vos projets. Apple vous offre un kit de dveloppement complet qui, une fois matris, donne naissance dinnombrables applications aux multiples talents.

    Si le dveloppement web a profondment marqu le monde de linformatique depuis les annes 90, la programmation pour plateformes mobiles en prend naturellement la succes-sion et complte son approche. Prenez part votre tour cette rvolution et figurez parmi ces pionniers qui redfinissent nos usages quotidiens. Ludique et intuitif, le dveloppement pour iPhone est accessible tous et vous mnera vers des terres encore inexplores.

    Et si vous commenciez ds aujourdhui ?

    Organisation de cet ouvrageCet ouvrage se compose de 10 chapitres, qui vous offrent un panorama complet du dvelop-pement pour iPhone et iPod Touch. De la cration de vos premiers projets leur publication sur iTunes, en passant par laccs des mdias externes ou lintgration de vidos et de fichiers audios vos applications, vous avez toutes les cls en main pour devenir un dve-loppeur professionnel et briller sur lApp Store.

  • 3 Prface

    vv Le Chapitre 1, Le SDK de liPhone et de liPod Touch, prsente ltendue de vos pos-sibilits. Vous y apprendrez installer tous les lments ncessaires pour amorcer la programmation. Vous travaillerez sur papier en amont, afin de poser toutes vos ides initiales et dentamer le cycle de dveloppement dans les meilleures conditions, en rfl-chissant au cadre et lintrt de vos applications.

    vv Le Chapitre 2, Vue densemble du dveloppement pour iPhone, pose les bases de votre environnement de programmation. Vous dcouvrirez par le dtail lensemble des outils qui constituent larsenal du dveloppeur, en particulier Xcode et Interface Builder. Les principales rgles et syntaxes de lObjective-C nauront plus de secrets pour vous !

    vv Le Chapitre 3, la dcouverte du SDK de liPhone, vous accompagne dans vos pre-miers pas sous Xcode et Interface Builder. Vous y apprendrez crer votre premier projet, utiliser le Simulateur diPhone et profiter des modles prdfinis pour offrir un cadre idal lensemble de vos ides dapplications.

    vv Le Chapitre 4, Interactions avec vos applications, expose lensemble des solutions votre disposition pour interagir avec lutilisateur de votre application. Cration de bou-tons dclenchant des fonctions, modifications de linterface de votre application, gestion des vnements Cet examen en profondeur du dialogue qui stablit entre votre appli-cation et ses utilisateurs sachve par un exemple concret : un quiz auquel on rpond par de simples pressions du bout des doigts.

    vv Le Chapitre 5, Les vues de votre application, vous prsente tous les outils permettant de dfinir les interfaces de vos applications. Vous y apprendrez crer des applications riches sarticulant autour de systmes de navigation complets qui donnent accs de multiples crans. Onglets, barres doutils et sries de boutons : hirarchisez le contenu de votre application et soignez les transitions entre chaque cran laide deffets dani-mation. Vous y apprendrez galement tout lart du design dinterfaces pour iPhone, en travaillant minutieusement les crans de votre application du papier Photoshop.

    vv Le Chapitre 6, Les contrles spcifiques, sattarde sur tous les lments dinterface plus complexes, comme les rglettes, les interrupteurs ou les roulettes manipuler du bout des doigts. Vous y apprendrez btir des projets plus complexes, du cahier des charges limplmentation de tous les contrleurs et des lments dinterface, en tirant partie de lensemble des composants exclusifs du mobile dApple. Vos applications gagneront ainsi en ergonomie et en ractivit.

    vv Le Chapitre 7, Lire et crire des donnes, passe en revue lensemble des solutions per-mettant dinteragir avec du contenu externe. Vous prparerez ainsi le contenu de votre application dans un fichier annexe, facile mettre jour, ou vous le rcuprerez directe-ment travers la connexion WiFi ou 3G de liPhone. Cration dun lecteur de flux RSS, sauvegarde des paramtres spcifiques une application dans les rglages de liPhone,

  • 4 Dveloppez des applications originales pour iPhone et iPod Touch

    enregistrement de champs saisis par lutilisateur Enrichissez votre application et lais-sez lutilisateur ladapter ses besoins ! Les tableaux et listes dlments, manipuler au doigt, constituent un socle idal pour hberger les informations lies votre application.

    vv Le Chapitre 8, Le multimdia, voque toutes les possibilits les plus avances de liPhone et de liPod Touch. Affichage et retouche de photos personnelles, utilisation du capteur photo/vido de liPhone, lecture de fichiers audio ou de squences vido : enrichissez vos applications dun contenu multimdia trs divers ! En marge de ces solutions, vous apprendrez galement dessiner sur lcran de liPhone laide de fonctions avances du kit de dveloppement.

    vv Le Chapitre 9, Ragir aux gestes de lutilisateur, vous livre tous les secrets des capteurs intgrs liPhone et liPod Touch. Dtection du mouvement, gestion de lcran multi-touch, raction aux gestes de lutilisateur, prise en compte de linclinaison et de laccl-romtre du mobile Composez des applications au comportement riche et intuitif, afin daccompagner lutilisateur dans tout type de situations.

    vv Le Chapitre 10, Publication et marketing, vous assiste dans lultime tape du dvelop-pement pour iPhone : la commercialisation de tous vos projets sur lApp Store diTunes. Vous y apprendrez investir dans un compte de dveloppeur professionnel grce auquel vous soumettrez vos applications finalises Apple. Soignez la demande de validation et mettez tous les atouts de votre ct afin de rencontrer ladhsion du public.

    PrrequisNous avons conu cet ouvrage afin de le rendre accessible au plus grand nombre. Vous ne devez pas ncessairement disposer dune exprience antrieure en programmation, ni connatre les rouages du dveloppement orient objet ou de linstanciation de classes. Tou-tefois, le kit de dveloppement de liPhone et le langage Objective-C sinscrivent dans une longue tradition doutils et puisent leurs racines dans un socle commun de nombreux langages. Les programmeurs Java, par exemple, reconnatront rapidement les principaux traits de leur langage de prdilection et pourront envisager des projets plus complexes. Les dveloppeurs web profiteront de leur exprience et de leur matrise des outils graphiques pour entamer le design dinterfaces ambitieuses et positionner au mieux les objets avec lesquels les utilisateurs interagissent. Il nest pas non plus inutile de disposer dune solide exprience en PHP si vous envisagez de lier votre application un service web ou lune des nombreuses API disponibles sur la Toile (YouTube, Flickr, Google Maps, etc.). linverse, vos connaissances en Objective-C vous seront dune grande aide pour envisager de vous recycler vers dautres langages ou plateformes. Le dveloppement pour iPhone et

  • 5 Prface

    Mac OS X sarticule autour dune mme base et de la mme panoplie doutils. Vous pour-rez ainsi naturellement poursuivre lexprience vers la cration de vos propres applications bureautiques.

    Conventions typographiquesCet ouvrage utilise des polices de caractres diffrentes pour distinguer certains lments :

    vv Police fixe. Cette police met en valeur les lments du langage ainsi que les noms de fichiers ou de rpertoires.

    vv Police fixe grasse. Dans les extraits de code, cette police permet de mettre en exergue les modifications apportes aux programmes.

    vv Les noms dapplications ou les termes mis en exergue sont en italique.

    Les encadrs

    Ils prcisent des lments destins attirer votre attention sur un cas particulier.

    RemerciementsCe livre naurait pas t possible sans le soutien indfectible, le savoir-faire et les multiples talents de Dominique Buraud. Son regard professionnel, son attention constante et sa pas-sion, de la premire bauche de cet ouvrage sa ralisation, auront clair lensemble de ce projet. Nombreux sont les auteurs franais lui devoir une fire chandelle pour avoir concrtis leurs souhaits, en uvrant pour la dfense dune littrature technique de grande qualit dans notre langue. Lauteur est fier de pouvoir aujourdhui rejoindre leurs rangs.Ce livre naurait pas non plus t possible sans laide prcieuse et fidle de Fabien Schwob, qui a consciencieusement relu chacune des pages et les a claires de son savoir-faire tech-nique. Si le dveloppement Cocoa vous intresse, nhsitez pas suivre son site web pas-sionnant ddi cet environnement, ladresse http://www.cocoa.fr/.

    Enfin, les remerciements de lauteur vont naturellement toute lquipe de Pearson France, en particulier Patricia Moncorg. Leur passion et leur talent ont rendu cet ouvrage possible !

  • 6 Dveloppez des applications originales pour iPhone et iPod Touch

    propos de lauteurJean-Marc Delprato est journaliste technique spcialis dans la presse informatique de-puis 1991. Aprs un DEA de Lettres Modernes la Sorbonne et des tudes dingnieur informatique, il collabore de nombreux magazines (Player One, Code(r), PC Team, Win-dows News, Computer Arts, Joystick) et a traduit ou rdig une vingtaine douvrages techniques. Passionn de webdesign et dinfographie, il sintresse notamment PHP et larchitecture de linformation. Avec lapparition de nouvelles plateformes de dveloppe-ment, il a conu des applications pour de multiples services web et API renommes. Vous trouverez notamment ses travaux travers ses ouvrages Intgrer Google Maps une appli-cation Ajax, Crer des scripts pour Second Life et Crer des applications pour Facebook. LiPhone lui est apparu comme une extension naturelle de chacune de ces plateformes et comme un terrain de jeu idal pour dployer des interfaces riches et interactives autour dun contenu original.

  • 1Le SDK de liPhone et de liPod TouchAu sommaire de ce chapitre

    vv Les lments runir vv Installer le SDKvv Avant daller plus loin : prparer votre projet

    Ce nest pas un hasard si le catalogue de liPhone comprend aujourdhui plus de 100 000 ap-plications diffrentes ; limage de son terminal mobile si intuitif et ergonomique, Apple a mis en place un kit de dveloppement (SDK, Software Development Kit) puissant et effi-cace qui offre un formidable cadre aux programmeurs du monde entier. Quel que soit votre

  • 8 Dveloppez des applications originales pour iPhone et iPod Touch

    niveau dexprience, vous disposez dun environnement riche et accessible, travers lequel vous mettrez en forme vos projets les plus ambitieux. Votre priple travers le dveloppe-ment dapplications pour iPhone commence donc irrmdiablement par son tlchargement et sa prise en main.

    Tout au long de cet ouvrage, nous utiliserons les trois outils principaux qui composent un tel kit de dveloppement : Xcode, linterface o vous programmerez vos applications, In-terface Builder, loutil de design et de conception et le Simulateur diPhone pour tester vos programmes. Retroussez-vous les manches : votre carrire de dveloppeur pour iPhone et iPod Touch commence ds aujourdhui !

    Les lments runirPour profiter du SDK distribu gratuitement par Apple, vous devez disposer dun Macintosh dot dun processeur Intel et de Mac OS X 10.5.3 ou ultrieur. Les rcents iMac 27 pouces ou les MacBook Pro excutant Snow Leopard sacquittent parfaitement de cette tche et offrent un espace de travail trs confortable pour tirer parti de tels outils. Si vous ntes pas encore quip et si votre budget est plus limit, vous pouvez galement envisager lachat dun Mac mini vous offrirez alors une seconde jeunesse un vieux moniteur.Ouvrez votre navigateur web et rendez-vous ladresse http://developer.apple.com/iphone. Vous dcouvrez le Centre de dveloppement pour iPhone dApple. Cet espace es-sentiel dcrit les principales techniques de dveloppement et illustre mme certaines proc-dures travers une srie de vidos. Nhsitez pas y revenir rgulirement pour dcouvrir les dernires nouveauts et pour vous entretenir avec dautres dveloppeurs aguerris. Sachez toutefois que lensemble des documents est en anglais.

    Figure 1.1La page daccueil du Centre de dveloppement pour iPhone.

  • 9Chapitre 1 Le SDK de liPhone et de liPod Touch

    Cliquez sur le bouton Log in, au centre de lcran, puis saisissez votre identifiant Apple ID. Vous lutilisez probablement dj pour vous connecter lApp Store diTunes afin dacheter de nouvelles applications. Si vous ne disposez pas encore de ce prcieux ssame, cliquez sur le lien Join now et remplissez le formulaire afin douvrir un compte. Ce nest dailleurs pas une mauvaise ide de crer un second identifiant Apple ID, rserv au SDK et votre compte de dveloppeur.

    Figure 1.2Authentifiez-vous laide de votre identifiant Apple ID ou crez-en un nouveau.

    Figure 1.3Vous vous apprtez tlcharger le kit de dveloppement, cliquez sur le bouton Continue.

    Figure 1.4Vous ne disposez pas encore de compte ? Crez-en un gratuitement en quelques secondes.

  • 10 Dveloppez des applications originales pour iPhone et iPod Touch

    Si vous envisagez de souscrire une licence payante afin de commercialiser vos propres applications, vous avez tout intrt prendre le temps de soigner les dtails qui vous concer-nent. Remplissez le formulaire complet, en indiquant votre nom, votre adresse e-mail et votre pays dorigine.

    Figure 1.5Remplissez le formulaire dinscription en dtaillant vos informations personnelles.

    Figure 1.6Apple vous demande demble le type dapplications que vous tes susceptible de programmer.

  • 11Chapitre 1 Le SDK de liPhone et de liPod Touch

    Figure 1.7Validez les conditions gnrales dutilisation en cliquant sur le bouton I Agree.

    Quelques secondes plus tard, vous recevez un e-mail : suivez le lien quil contient puis sai-sissez le code cinq chiffres dans le champ prvu cet effet. Votre compte est enfin prt et vous accdez nouveau au Centre de dveloppement dApple.

    Figure 1.8Surveillez vos e-mails : vous devez encore valider votre compte.

    Figure 1.9Saisissez le code de vrification pour finaliser votre compte.

  • 12 Dveloppez des applications originales pour iPhone et iPod Touch

    Figure 1.10De retour au Centre de dveloppement dApple, vous dcouvrez les diffrents lments qui composent le SDK.

    Sur la page qui apparat lcran, choisissez la version du SDK qui correspond votre systme dexploitation. Vous constatez en effet quil existe des dclinaisons spcifiques Leopard ou Snow Leopard. Armez-vous de patience : lheure o nous mettons ce livre sous presse, la dernire version en date avoisine les 2,73 Go.

    Figure 1.11Slectionnez la version du SDK qui correspond votre systme dexploitation, Leopard ou Snow Leopard.

    Signer un contrat de dveloppeur auprs dApple

    Si le tlchargement du kit de dveloppement est purement gratuit, vous dcouvrez deux formules dabonnement sur la colonne de droite du Centre dApple. Pour 99 dollars, vous pouvez en effet opter pour une vritable licence de dveloppeur. Celle-ci vous permettra de dposer vos projets sur votre propre iPhone et de les commercialiser travers lApp

  • 13Chapitre 1 Le SDK de liPhone et de liPod Touch

    Store diTunes. La licence dentreprise, propose 299 dollars, concerne essentiellement les socits disposant de plus de 500 employs qui envisagent de dvelopper des applications en interne, pour leurs propres besoins. Si lachat dune licence nest absolument pas imp-ratif pour suivre tous les exemples de cet ouvrage, vous devriez lenvisager malgr tout ; cest lunique moyen de rentabiliser votre apprentissage et de commercialiser vos propres applications. Nous reviendrons largement sur cette souscription et sur la vente dapplica-tions travers le Chapitre 10.

    Installer le SDKVous disposez dsormais dun fichier "iphone_sdk_3.x.x_with_xcode_3.1.x.dmg" sur votre disque dur. Effectuez un double-clic sur son icne afin de monter cette image. Dans la fe-ntre qui apparat lcran, cliquez sur licne "iPhone SDK".

    Figure 1.12Le tlchargement est termin, procdez linstallation du SDK.

    Figure 1.13Linstallation du SDK greffe tous les outils ncessaires Mac OS X.

    Validez linstallation du kit de dveloppement, puis cliquez sur le bouton Continuer lou-verture du programme (voir Figures 1.14 et 1.15).Acceptez ensuite les multiples conditions dutilisation, puis slectionnez les versions du SDK que vous souhaitez installer. Pour suivre les exemples de cet ouvrage, vous pouvez vous contenter des options par dfaut. Toutefois, si vous envisagez de dvelopper pour une version plus spcifique de liPhone OS, vrifiez que vous lavez bien slectionne dans la

  • 14 Dveloppez des applications originales pour iPhone et iPod Touch

    liste figurant lcran. Le Simulateur diPhone disposera ainsi de limage approprie du systme (voir Figures 1.16 et 1.17).

    Figure 1.14Cliquez une premire fois sur le bouton Continuer pour lancer linstallation du SDK.

    Figure 1.15Tout est prt, procdez linstallation de Xcode et de ses diffrents outils.

    Figure 1.16Acceptez les conditions dutilisation.

  • 15Chapitre 1 Le SDK de liPhone et de liPod Touch

    Figure 1.17Slectionnez la version du SDK approprie puis cliquez sur Continuer.

    Par dfaut, les outils du SDK sinstallent dans le dossier /Developer de votre disque dur. Vous devez disposer de 7,3 Go despace libre pour profiter de lensemble des outils. Modi-fiez ventuellement le rpertoire dinstallation, puis cliquez sur Choisir.

    Figure 1.18Choisissez le rpertoire dinstallation et validez.

  • 16 Dveloppez des applications originales pour iPhone et iPod Touch

    Figure 1.19Cliquez enfin sur le bouton Installer pour lancer la procdure.

    Figure 1.20Patientez : dans quelques secondes, tout sera prt !

    Figure 1.21Voil, vous disposez de lensemble des lments du SDK.

  • 17Chapitre 1 Le SDK de liPhone et de liPod Touch

    Quelques minutes plus tard, le SDK est install sur votre Mac. Dposez ventuellement Xcode dans votre Dock ; vous en ferez une utilisation constante travers tous les chapitres de cet ouvrage.

    Les autres solutions pour dvelopper

    Malgr le cadre ludique et convivial offert par le SDK, de nombreux dveloppeurs ont cherch sen affranchir et explorer dautres pistes pour programmer des applications pour iPhone. Parmi de telles solutions alternatives, les frameworks QuickConnect et PhoneGap prsentent un grand intrt. Ils sadressent en priorit aux dveloppeurs web et repo-sent essentiellement sur du code JavaScript, HTML et CSS pour designer les interfaces de vos applications et interagir avec lutilisateur. Vous pouvez ainsi exploiter la quasi-totalit des contrleurs spcifiques de liPhone sans apprendre lObjective-C pour autant. Nous naborderons pas ces techniques de programmation alternatives au cours de cet ouvrage et nous vous invitons vous reporter au livre Dveloppez des applications pour iPhone avec HTML, CSS et JavaScript de Lee S. Barney, paru aux ditions Pearson. Sachez toutefois que de telles pratiques commencent se rpandre et quelles constituent une solution de choix pour tous les dveloppeurs sous Windows.

    Avant daller plus loin : prparer votre projet Vous avez dsormais runi tous les lments ncessaires au dveloppement de votre pre-mire application pour liPhone. Vous avez galement pris le temps de personnaliser votre environnement de dveloppement afin dacqurir rapidement de nouveaux rflexes. Comme nous le verrons par la suite, vous basculerez sans cesse entre les diffrents outils du SDK : vous devez ainsi vous familiariser avec leur interface pour en exploiter toute la puissance. Mme si Apple a conduit un rel effort pour proposer des outils riches et clairs, vous devez imprativement les apprivoiser et ne pas vous laisser dborder par ces nouvelles possibili-ts !

    Pour lheure, nous vous recommandons ainsi de ne pas foncer tte baisse dans cet environ-nement nouveau ; linstar de nimporte quel projet de dveloppement, la programmation dune application pour iPhone requiert une solide phase de prparation. Noubliez jamais que, quelle que soit son chelle, votre application entretient des rapports privilgis avec ses utilisateurs non seulement tous ceux qui la jugeront utile lauront sans cesse porte de main ou dans le creux de leur poche, mais ils interagiront aussi directement au doigt sur les contrles que vous avez prvus. Peu de logiciels bnficient dune telle immersion dans lunivers immdiat de leurs adeptes ! Sans pour autant jeter sur le papier des extraits de codes sources ou de scripts, vous devez imprativement passer par une phase initiale de design. La conception de linterface et des interactions de votre application joue un grand

  • 18 Dveloppez des applications originales pour iPhone et iPod Touch

    rle sur le dveloppement proprement parler : sans le niveler par le bas et lenclaver de contraintes, cette premire approche va au contraire rvler ltendue de vos possibilits et prparer la phase de dveloppement. LiPhone requiert une approche trs naturelle et ins-tinctive : il est difficile de concevoir des interactions riches et ergonomiques en se lanant directement dans la programmation.

    Vous tes, par exemple, motiv lide de programmer une application de recettes de cui-sine ? Songez que les utilisateurs nauront peut-tre pas toujours les deux mains libres pour manipuler votre logiciel. Vous devez ainsi prvoir une solution pour naviguer rapidement et intuitivement travers vos menus et vos recettes, sans multiplier les gestes pour autant. Mettez-vous dans la peau de vos utilisateurs et revenez, lespace dun instant, vers deux outils qui valent tout fait le SDK dApple : le papier et le crayon !

    tablir un cahier des charges sommaireDu point de vue du dveloppeur, le mobile tactile dApple offre un formidable terrain de jeu au potentiel quasi infini. Pour vous en convaincre, prtez-vous une petite exprience. Runissez plusieurs amis qui utilisent un tlphone portable traditionnel. Prsentez-leur une premire srie dapplications que vous avez glanes sur lApp Store, dont une poigne dutilitaires et de jeux. Faites-leur ensuite part de votre projet de dvelopper votre tour des applications. Les ides les plus originales vont automatiquement fuser dans lassemble, des interfaces les plus loufoques et novatrices jusquaux ambitieux projets censs rendre de colossaux services au quotidien. Cest une source inestimable dides.

    LiPhone et liPod Touch sont deux terminaux trs intuitifs, qui deviennent rapidement des extensions naturelles du bon vieux carnet et de lagenda. Grce leur interface tactile, leurs possibilits de communication (WiFi et 3G) et lacclromtre quils embarquent, on envisage immdiatement des dclinaisons infinies de tous les logiciels auxquels nous sommes habitus. L encore, faites preuve de patience ! En revenant au papier et au crayon et en prparant votre projet en amont, vous ne devez pas partir dans tous les sens pour au-tant. Ne bridez pas votre imagination, mais concentrez-vous sur une ou deux ides princi-pales pour bien dbuter. Organisez une sance de brainstorming au cours de laquelle vous relverez une srie de pistes : imaginez avant tout les applications qui manquent encore lappel, ou celles que vous rvez de perfectionner. Lorsque la silhouette gnrale de votre projet vous apparat, passez la phase de design. Esquissez les diffrents crans que par-courront les utilisateurs et imaginez un systme de navigation. Clarifiez le contenu que vous souhaitez leur prsenter, puis dressez la liste complte de tous les lments qui constitueront votre application. Vous btissez ainsi rapidement un cahier des charges, dont vous pourrez ventuellement vous carter par la suite si une meilleure ide ou un systme de navigation plus ergonomique vous venaient durant la programmation proprement parler !

  • 19Chapitre 1 Le SDK de liPhone et de liPod Touch

    Quel que soit votre niveau en programmation, cette phase initiale est incontournable. Au fur et mesure de vos progrs, lexprience vous apprendra viser plus juste et ne retenir que les lments rellement impratifs pour mener bien le dveloppement. Mais gardez cet adage lesprit : si votre application tient la route sur le papier et se voit soutenue par de solides fondations, vous avez dj accompli la moiti du chemin.

    Les types dapplications de liPhone : faites jaillir toutes sortes dides !Vous rvez de rencontrer le succs sur lApp Store diTunes et de voir votre application intronise sur sa page daccueil ? Vous navez pas encore dide bien prcise et vous sou-haitez vous inspirer de projets aurols de prestige ? Commencez votre phase de conception initiale par une petite visite sur le centre de tlchargement dApple ! Vous y puiserez sys-tmatiquement de nouvelles ides et vous saurez rapidement o se situe votre projet vis--vis de la "concurrence". La communaut des utilisateurs a-t-elle rellement besoin dune millime version de la calculatrice, par exemple ? Ou bien votre projet est-il suffisamment innovant et ergonomique pour mriter de figurer parmi toutes ces dclinaisons dores et dj disponibles ? Vous serez rapidement en mesure destimer le succs potentiel de votre propre projet !Voici les diffrentes catgories dapplications pour iPhone et iPod Touch, tries par popula-rit. En les envisageant sous laspect de leur programmation et non de leur utilisation, leur parcours fera probablement jaillir dinnombrables ides !Divertissement / Jeux. Indniablement la catgorie la plus populaire de lApp Store, les jeux figurent aussi parmi les applications les plus onreuses. Elles prsentent donc un fort rendement potentiel ! On distingue essentiellement trois types de jeux : les adaptations de grands classiques, menes par de prestigieux studios (Resident Evil, Crash Bandicoot, Need for Speed, Myst), les jeux de physique qui tirent partie de lacclromtre de liPhone (Topple, Labyrinth) et les petits jeux indpendants, conus autour dun principe nou-veau et accrocheur (casse-ttes, nigmes, puzzles). moins de tomber dans la dernire catgorie, votre projet ne devra souffrir daucune faiblesse sur le plan visuel et sonore. Certains studios indpendants se sont mme constitus en vue de noffrir que des jeux pour liPhone : cest notamment le cas des franais dAgharta Studio (1112 Episode 01), qui reprennent les principes fondateurs du jeu vido avec ses corps de mtiers soigneusement cloisonns. Sil restera toujours de la place pour des projets de moindre ampleur mens par des programmeurs indpendants, le dveloppement dun jeu pour liPhone est une activit ambitieuse : comptez plusieurs semaines ou mois de programmation. Cest toutefois lun des secteurs les plus lucratifs et pour lequel le bouche--oreille fonctionne le mieux, comme en tmoigne laventure dEthan Nicholas le dveloppeur du jeu iShoot. Vendu 2,99 dollars

  • 20 Dveloppez des applications originales pour iPhone et iPod Touch

    et dclin dans une version gratuite, son titre sest rapidement arrach sur lApp Store au point de faire de son auteur lun des premiers millionnaires diTunes ! Sans prtendre une telle audience, votre application sera forcment sous les feux des projecteurs si vous lintroduisez dans cette catgorie, consulte quotidiennement par des centaines de milliers dutilisateurs.

    Utilitaires/Productivit. Deuxime catgorie la plus populaire, les utilitaires constituent lapproche la plus originale de liPhone et la plus salue par Apple. La plupart de ces ap-plications tirent parti des outils exclusifs au terminal dApple, en particulier son interface tactile et son acclromtre. Cest aussi une catgorie qui tolre les applications minima-listes et moins visuelles, si elles remplissent leur rle et offrent de vritables services au quotidien ! Cest dailleurs le seul critre lorigine de leur succs : si vous dveloppez un utilitaire pour iPhone, vous ne devez jamais formuler des promesses sans les tenir. Combien dapplications se targuent de remplacer votre dictaphone ou votre bote outils avant de se rvler de bien pitres compagnons ? Noubliez pas que si vous fixez un prix de dpart votre projet, les utilisateurs ne seront pas en mesure de lessayer sans saisir leur numro de carte bancaire : les attentes vis--vis de vos promesses nen sont que dcuples. Nous y reviendrons, mais il est trs intressant de dcliner votre projet en une version gratuite et une version payante si vous envisagez de dvelopper un utilitaire. Parmi les utilitaires les plus populaires, on distingue essentiellement les outils de type "couteau-suisse" (niveau bulle, altimtre, tlcommande universelle, lampe de poche), les calculatrices ou utili-taires spcialiss (conversion, finances, accordeur de guitare, etc.) et les adaptations doutils de bureautique traditionnels (transformation de lappareil photo de liPhone en webcam, dictaphone numrique, radio-rveil). Actualits. Gnralement constelle dapplications gratuites, cette catgorie constitue avant tout une "vitrine" pour de nombreux sites dinformations qui prtendent ainsi une plus large audience en sinvitant sur le tlphone de leurs utilisateurs rguliers ! Prenez lap-plication du Monde, par exemple. Elle noffre pas un contenu fondamentalement diffrent du portail de ce quotidien, mais elle prsente une ergonomie savamment tudie, qui en fait un meilleur outil de consultation que le navigateur intgr liPhone. Avec son "zapping" et ses images qui apparaissent en plein cran, on accde bien plus rapidement linformation qu travers le site web officiel du journal. De trs nombreux sites web ou mdias tradition-nels dclinent actuellement leur contenu liPhone. Si vous possdez un blog WordPress, vous avez probablement dj remarqu le plug-in permettant de transformer laffichage de votre site afin quil pouse les dimensions de liPhone. Il sagit ici doffrir une exprience plus riche encore vos lecteurs : votre source est clairement identifie travers sa propre icne et bnficie dune consultation autonome, au mme titre que le parcours des derniers e-mails ou SMS. Cest un moyen idal daccompagner votre propre blog et de renforcer sa visibilit et sa popularit ! Comme vous pouvez limaginer, ce type dapplications tire

  • 21Chapitre 1 Le SDK de liPhone et de liPod Touch

    essentiellement parti des fonctions de communication de liPhone : vous profitez de votre flux RSS pour rapatrier automatiquement vos derniers billets, que vous mettez en forme laide du SDK. Par ailleurs, cest galement lune des catgories que vous devez le mieux matriser si vous souhaitez devenir un dveloppeur iPhone professionnel : de nombreuses socits sont actuellement la recherche de programmeurs capables dadapter leur contenu ce terminal et vous pouvez envisager de rpondre ces missions.

    Photographie/Musique. Mme si lappareil photo intgr liPhone ne figure pas parmi les plus performants du march, de trs nombreuses applications permettent den amliorer le rendu et de retoucher rapidement ses photos. Succs garanti ! Cest notamment le cas de PhotoEffect, une application que lon doit au dveloppeur japonais Kyosuke Takahashi. travers une srie de plug-ins et de filtres inspirs de Photoshop, les utilisateurs modifient les clichs quils ont pris en flagrant dclic dans leur photothque. Lapplication Photo Collage emprunte le mme cheminement : elle runit vos plus belles photos autour de com-positions originales, calcules automatiquement. Attention toutefois : le dveloppement de filtres visant modifier des images nest pas ais et ne devrait pas constituer votre premire approche du SDK de liPhone. Retenez toutefois quil est possible dinteragir travers une application avec des fichiers stocks sur la mmoire Flash de votre mobile et de charger/enregistrer des donnes. Dans un premier temps, vous pouvez vous contenter de proposer une srie de cadres et de bordures que les utilisateurs apposeront sur leurs photos prfres. Si le principe vous parat minimaliste, sachez quil existe un rel public pour ce type dap-plications simples dont le seul but est dtendre les possibilits offertes par liPhone et de mettre en scne la vie de tous les jours.LiPhone et liPod Touch ne sont pas en reste du ct de la musique, baladeur numrique oblige ! L encore, il sagit dapplications trs ambitieuses qui se dclinent en des syn-thtiseurs ou des squenceurs. Plus prcisment, on distingue deux types dapplications musicales : les "initiations" un instrument, que lon manipule aux doigts (MiniPiano, PocketGuitar), et les applications de cration qui enregistrent de vritables fichiers. La premire sous-catgorie partage de nombreux titres avec les applications de jeux et de di-vertissement : les applications sont ludiques et ne prtendent pas vritablement la rigueur dun conservatoire de musique ! Lautre sous-catgorie ne contient que des applications trs ambitieuses, qui tirent avantage de toutes les fonctions les plus avances du SDK : char-gement de donnes, enregistrement de fichiers, interface ergonomique Nayez crainte : vous serez en mesure de dvelopper de tels utilitaires lissue de la lecture de cet ouvrage.

    Navigation. Dans sa dernire version en date, liPhone intgre un GPS performant. De nombreuses applications sappuient sur cet outil et sur une varit de services en ligne afin de cartographier vos dplacements ou de prparer vos trajets. Cest lun des domaines o le dveloppement web et la programmation pour iPhone pousent la mme direction : vous tirez gnralement partie dAPI trs bien rfrences sur Internet (Google Maps, analyse

  • 22 Dveloppez des applications originales pour iPhone et iPod Touch

    du trafic en temps rel, flux RSS contenant la liste de stations Vlib par exemple) et vous dclinez ainsi des services en ligne au terminal dApple. Prenez garde cependant : ce type dapplications ne tolre pas les inexactitudes et vous tes souvent tributaire de donnes dont la publication vous chappe vous devrez probablement surveiller la validit des liens et des informations intervalles rguliers.

    Rseaux sociaux. Facebook, Twitter et MySpace ont le vent en poupe et simposent comme les fers de lance du Web 2.0 : tous ces services se dclinent donc naturellement liPhone, qui se rvle un compagnon idal pour en profiter pendant tous vos dplacements ! Bien entendu, les maisons mres de chacun de ces services ont dores et dj dclin plusieurs outils pour se connecter et accder leurs rseaux sociaux. Mais limage des utilitaires de navigation, il vous reste une confortable marge de manuvre pour tendre leurs capacits et profiter dAPI disponibles sur le Web. Vous souhaitez afficher rapidement le statut de tous vos amis sur votre mobile, tel quil apparat sur Facebook ? Pas de problme ! Des fonc-tions spcialement ddies ce type dactivits existent. Votre vritable travail consiste ainsi imaginer une interface attractive, qui amliore considrablement lergonomie des outils dj existants. Inspirez-vous des applications disponibles sur lApp Store afin de dcouvrir les options qui manquent encore lappel. Il sagit toutefois dune catgorie trs largement balise sur le circuit de distribution dApple : il est difficile de proposer des applications payantes dans cette catgorie, moins de rvolutionner fondamentalement les possibilits dinteractions.

    Enseignement. Vous vous sentez lme dun pdagogue et vous pouvez vous prvaloir dtre le spcialiste dun domaine ? Envisagez de btir une application encyclopdique, qui se manipule la manire dun dictionnaire. Comme nous le verrons par la suite, ce type dapplications est soumis de nombreuses contraintes, en particulier au niveau de la ractivit et du stockage des informations. Si vous rpondez prcisment une demande, vous pouvez toutefois prtendre une forte adhsion de la part des utilisateurs auprs de qui vous deviendrez une rfrence incontournable. Cest aussi une catgorie dapplications qui exige des mises jour moins rgulires : sitt votre fonds encyclopdique organis, son actualisation ne vous accaparera pas durant de longs mois. Mais en vous spcialisant autour dun domaine trs prcis, vous rduisez dautant plus votre audience potentielle. Toutefois, le prix que vous fixez est gnralement suprieur aux simples utilitaires. Il vous revient de prparer soigneusement le terrain en compulsant demble une solide base de donnes, afin de rentabiliser au mieux votre investissement en temps !

    Forme et sant/Mdecine/Sports. On ne simprovise pas mdecin ou entraneur profes-sionnel, mais la demande concernant les applications de "surveillance" ou "dinitiation sportive" est trs forte. Si vous jouez la carte de la transparence, en prcisant que vous ntes pas un spcialiste, mais plutt un passionn, vous veillerez la curiosit de tous les utilisateurs partageant vos gots. Calculatrices de poids, conseils dittiques, outils visant

  • 23Chapitre 1 Le SDK de liPhone et de liPod Touch

    optimiser une pratique sportive : imaginez les utilitaires qui vous aident vivre au mieux votre passion ou qui amliorent votre propre hygine de vie ! L encore, le bouche--oreille fonctionne particulirement bien avec ce type dapplications, que lon chrit au mme titre quun compagnon.

    Les bonnes ides dapplications et les projets viterCe rapide tour dhorizon des applications disponibles sur lApp Store diTunes devrait vous donner de premires pistes pour laborer votre propre projet. Sachez distinguer les appli-cations voues lchec des projets les plus prometteurs : cest justement en travaillant sur papier que vous identifierez rapidement les cueils et les pertes de temps inutiles. Analysez galement votre niveau de comptences actuel : certes, le dveloppement dune application ambitieuse pourrait largement amliorer votre matrise du SDK et de la programmation pour iPhone, mais lampleur de la tche pourrait aussi vous rebuter au point dabandonner votre projet.Dans un premier temps, vous devez absolument bannir toute estimation de la rentabilit de votre application. Vous mettez bien en place un projet afin de vous adresser une large audience, mais celle-ci ne doit pas peser sur vos choix conceptuels. Par exemple, vous savez que les cadres et les bordures ajouter automatiquement des photos sont trs populaires mais si vous navez pas de comptences particulires pour les dessiner et proposer des modles originaux et si vous tentez malgr tout dimposer vos crations, vous risquez bien de dcevoir vos utilisateurs. Sur le papier, nenvisagez que les applications qui vous tiennent rellement cur et nessayez pas purement de copier des projets dj aurols de succs.En revanche, ne ngligez pas lestimation du temps ncessaire au dveloppement de votre application. Si vous tes encore dbutant et que vous ne matrisez pas les rouages du SDK de liPhone sur le bout des doigts, vous avez tout intrt entamer votre premire approche par un projet simple qui ne vous tiendra pas en haleine de longs mois. Par ailleurs, gardez lesprit que deux valeurs principales font et dfont le succs dune application : son ergo-nomie et son originalit. Reportez-vous la Figure 1.22 pour dcouvrir le parfait mlange de ces deux valeurs. En rgle gnrale, on retiendra quune application trs originale tolre certains dfauts dergonomie puisquelle prsente une forte valeur ajoute. linverse, une application peu originale (comme une nime calculatrice) ne pourra souffrir daucun souci ergonomique cest prcisment votre choix de systme de navigation et darborescence qui en fera tout le succs !

  • 24 Dveloppez des applications originales pour iPhone et iPod Touch

    Figure 1.22Le rapport entre lergonomie et loriginalit dans le succs dune application.

    Si votre projet appartient la catgorie des jeux vido, veillez clarifier trs prcisment son cadre et son interface, en reprenant votre sauce les grandes recettes de cette industrie. Scnario, ergonomie, interactions, intrt : ne ngligez aucun aspect. Dans la mesure du possible, constituez-vous en quipe et dclinez diffrentes responsabilits aux intervenants. Pour garantir un vritable plaisir de jeu, vous avez tout intrt demander lassistance dun graphiste ou dun illustrateur sonore moins que vous ne cumuliez dj tous les ta-lents ou que votre projet nappelle pas deffets visuels spcifiques ! Rflchissez deux fois avant dentamer le dveloppement dune telle application : on dcouvre gnralement de nombreuses contraintes en cours de route, comme le chargement dimages ou la ncessit dvoluer avec le matriel de liPhone ou de liPod Touch.

    Mises part ces quelques recommandations, il ny a pas rellement de projets viter. Tout du moins, toute ide mrite dtre tudie sur le papier. Cest prcisment cet exercice qui va rvler tous les dfauts de conception et les faiblesses de votre projet : vous identifierez rapidement les cueils et vous dresserez un solide plan de travail afin de vous consacrer pleinement au dveloppement de votre application.

    Concevoir et designer son application sur papierVous avez runi une srie dides et la silhouette gnrale de votre application sesquisse dj dans votre esprit. Sans plus attendre, jetez sur papier toutes vos pistes ! Nhsitez pas emprunter certains outils aux mthodes conceptuelles traditionnelles, comme Merise par exemple1. Dans un premier temps, relevez tous les objectifs de votre application. Vous d-finissez ainsi rapidement un premier cahier des charges, qui vous servira de main-courante tout au long du dveloppement. Triez tous ces buts par ordre dimportance, afin didentifier

    1. Pour plus de dtails concernant les mthodes conceptuelles, reportez-vous louvrage Processus dingnierie du logiciel de Claude Pinet, paru aux ditions Pearson.

  • 25Chapitre 1 Le SDK de liPhone et de liPod Touch

    des fonctions qui pourraient ventuellement tre corriges ou modifies par la suite. Lenjeu consiste tablir rapidement un plan de dveloppement, avec des tapes clairement identi-fies.

    Comme vous le verrez par la suite, notre premier exemple est un simple quiz autour du ci-nma. Une rapide analyse sur papier rvle les objectifs et aspects suivants :vv Enchaner une srie de questions prpares lavance. vv Offrir aux utilisateurs la possibilit de rpondre en pressant lune des propositions au doigt (type QCM).

    vv Vrifier les rponses soumises par les utilisateurs.vv Calculer un score total en fin de questionnaire.vv Sauvegarder ce score pour le comparer des essais ultrieurs ou aux rsultats des amis. vv Envisager des mises jour des questions.

    Cette premire liste dobjectifs est encore vague et ne fait limpasse sur aucun aspect du quiz. Procdez de mme en identifiant clairement les actions de votre application. Dans le cas de dveloppements plus complexes, vous pouvez mme faire appel dautres outils des mthodes de conceptualisation, comme le Modle Conceptuel de Traitement par exemple. Ce dernier vise dfinir les donnes qui rgissent votre application, tablir les relations qui sexercent entre les diffrents blocs de contenu et modliser les interactions des utili-sateurs. Vous dclinerez ensuite ce large schma en autant de scripts et de fonctions au sein de votre application.

    Le travail sur papier (voir Figure 1.23) vous encourage galement imaginer linterface de votre application. L encore, noubliez pas que liPhone introduit de nouveaux concepts que vous devez pleinement exploiter.

    Votre projet ne doit pas donner limpression dtre une modeste adaptation dun outil de Windows ou de Mac OS X : envisagez toutes les possibilits que vous offrent laccl-romtre et linterface tactile. Noubliez pas non plus que liPhone et liPod Touch ont la possibilit de basculer leur affichage en mode Paysage ou Portrait. Comme nous le verrons par la suite, il est possible de programmer deux interfaces distinctes, pour chacun de ces cas de figure. Dessinez galement sur papier toutes les interactions avec lutilisateur. quels moments est-il invit saisir une requte ? Sous quelle forme ? laide de quels contrles ? Comment va-t-il manipuler linterface ? Avez-vous prvu des boutons ou des onglets simples facilitant la navigation ? Multipliez les esquisses de votre application sans toutefois imaginer des effets visuels trop ambitieux. Pour lheure, rflchissez en termes de "blocs" et de "contrleurs", en dessinant des zones rectangulaires que vous remplacerez par le contenu et les boutons de votre application. Noubliez jamais quun utilisateur de

  • 26 Dveloppez des applications originales pour iPhone et iPod Touch

    tlphone portable dispose dun temps plus court pour manipuler une application que face un ordinateur, la souris en main : vitez de multiplier les niveaux darborescence et faites en sorte quil accde rapidement au contenu recherch !

    Figure 1.23Lbauche prliminaire dune application sur papier.

    Figure 1.24Travaillez en amont le dialogue homme-machine.

  • 27Chapitre 1 Le SDK de liPhone et de liPod Touch

    Figure 1.25Certaines applications de liPhone misent sur une interface rellement originale pour offrir un usage trs intuitif !

    Vous tes fin prt et vous estimez que votre application tient la route sur le papier ? Il est grand temps de dcouvrir le SDK de liPhone dans le dtail et de le confronter votre bauche !

  • 2Vue densemble du dveloppement pour iPhoneAu sommaire de ce chapitre

    vv Les outils votre disposition vv la dcouverte de Cocoa Touch et de lObjective-C vv En route vers Xcode

  • 30 Dveloppez des applications originales pour iPhone et iPod Touch

    Vous avez install le kit de dveloppement pour iPhone dApple et vous avez jet sur papier les bases de votre premire application. Vous voil bien parti pour entamer la programma-tion de votre projet ! Mais avant dentrer dans le vif du sujet, attardons-nous sur tous les as-pects gnraux du dveloppement pour iPhone. Si lergonomie et le design si particuliers du mobile dApple sont de prcieux atouts qui vont contribuer au succs de votre application, ils vous obligent conserver en mmoire un certain nombre de limites et de contraintes. Ny voyez pas un carcan qui bride votre imagination : adoptez plutt ces rgles afin doptimiser au maximum votre application !

    Les outils votre dispositionEn tlchargeant, puis en installant le SDK dApple, vous greffez une srie doutils nou-veaux Mac OS X. Parmi ceux-ci, deux pices matresses vont rapidement vous devenir indispensables : linterface de dveloppement Xcode et lmulateur diPhone. Le premier est un riche environnement de dveloppement (IDE, Integrated Development Environment), capable de supporter des scripts dans de nombreux langages. Lapplication runit un grand nombre doutils facilitant la cration, le dbogage et la compilation de votre code source, mais visant galement optimiser votre application afin damliorer ses performances et de respecter au mieux les contraintes matrielles du mobile dApple. Figure 2.1Xcode devient votre environnement de dveloppement privilgi.

    Sachez par ailleurs que Xcode figure aujourdhui parmi les rares applications optimises pour les processeurs multicurs. Certes, nous ne pousserons pas cet outil dans ses retran-chements en dveloppant des projets pour iPhone au point de mettre mal la plus grosse configuration de Mac Pro, mais sachez-le : si vous disposez dune machine puissante, Xcode saura lexploiter au mieux. Il soutient mme les curs "virtualiss" dont hritent les

  • 31Chapitre 1 Vue densemble du dveloppement pour iPhone

    processeurs de nouvelle gnration, comme les Xeon de srie 5500 ou plus gnralement larchitecture Nehalem dIntel, qui se dcline actuellement tous les modles de Mac Pro, MacBook et iMac.

    La plonge dans le dveloppement pour liPhone suscitera peut-tre des vocations pour d-couvrir plus largement lAPI Cocoa et le langage de programmation Objective-C : si vous aspirez par la suite des projets de plus grande envergure, vous disposez dores et dj de loutil idal afin de poursuivre votre carrire de dveloppeur !

    En installant le SDK de liPhone, vous hritez galement dun mulateur du mobile dApple (voir Figure 2.2). Trs pratique pour tester rapidement vos applications, il consti-tue dailleurs le seul moyen dexcuter vos projets si vous ne disposez que dun compte gratuit de dveloppeur. L encore, il vous faudra investir dans une vritable licence afin de transfrer vos programmes vers un vritable iPhone ou iPod Touch et dentamer la vente de vos applications travers liTunes App Store. mulation logicielle oblige, cet outil ne gre donc pas lacclromtre de liPhone et ne permet pas non plus de capturer des photos. Rassurez-vous : il vous sera tout fait possible dintgrer ces deux lments vos projets, comme nous le verrons par la suite. Cet mulateur nous sera essentiel lors de la compilation de nos projets et des phases de test ; il sintgre pleinement au cycle de dveloppement de vos applications et constitue un lment central pour valider vos codes sources.

    Figure 2.2Grce lmulateur intgr au SDK, Mac OS X embarque un iPhone.

    Au-del de cette premire panoplie indispensable, vous devez naturellement complter ces outils par quelques applications dont vous ferez un usage ponctuel. L encore, reportez-vous au plan que vous avez esquiss sur papier. Votre projet implique-t-il de nombreux ef-fets visuels et sonores ? Vous aurez besoin dun diteur graphique (comme Photoshop CS4 ou The Gimp) et dun synthtiseur/squenceur afin de produire les images, pictogrammes et enregistrements audios lis votre projet. Heureusement, la rputation de Mac OS X dans ce domaine nest plus faire et le systme dexploitation dApple est livr avec une batterie de logiciels qui uvrent dans ce sens, la suite iLife en tte.

  • 32 Dveloppez des applications originales pour iPhone et iPod Touch

    Compltez-les par vos propres rfrences : vous voil fin prt pour entamer le dveloppe-ment de votre premire application. Mis part la cration de licne de votre application et les lments graphiques lis nos exemples, nous naurons hlas pas le loisir de nous attar-der sur la prise en main de tous ces outils. Sils ne vous sont pas particulirement familiers, nhsitez pas vous reporter sur les innombrables sites dexperts, toujours de bon conseil pour se former en autodidacte ! Nous vous accompagnerons toutefois dans les principales dmarches lies liPhone, comme la cration dune icne associe votre application par exemple (voir Figure 2.3).

    Figure 2.3 Chaque application pour liPhone sidentifie par sa propre icne : prparez-la laide dun logiciel de retouche dimage.

    la dcouverte de Cocoa Touch et de lObjective-C

    La filiation entre liPhone et Mac OS X Lors de sa confrence inaugurale la convention MacWorld 2007, o liPhone a t pr-sent pour la premire fois, Steve Jobs sest fendu dune rplique qui a fait frmir denthou-siasme lassemble : "Les logiciels pour tlphones portables sont gnralement de simples ersatz lergonomie limite. Avec liPhone, nous proposons des logiciels qui ont dores et dj cinq annes davance sur nimporte quel autre terminal mobile. Comment avons-nous atteint un tel rsultat ? Tout simplement en articulant liPhone autour dune base solide : notre mobile excute Mac OS X".

    Cette architecture nest pas le fruit du hasard : aprs des annes de recherche et de dve-loppement, Mac OS X regorge de fonctions et de services dont la plupart correspondent trs prcisment aux besoins des utilisateurs diPhone. Connexions rseau, synchronisa-tion, options dconomie dnergie, scurit renforce, support de la vido, bibliothques

  • 33Chapitre 1 Vue densemble du dveloppement pour iPhone

    graphiques et sonores Le champ daction de liPhone sinscrit parfaitement dans tous ces domaines dapplication, ce qui vite aux ingnieurs dApple de "rinventer la roue". Sans cder au proslytisme pour autant ni se faire les dithyrambes dApple, on conviendra que ce lien de parent entre liPhone et Mac OS X se traduit pour lutilisateur final par une ergono-mie singulire et surtout une grande intgration entre le mobile et les systmes avec lesquels il se synchronise (voir Figure 2.4).

    Figure 2.4 Les paramtres systme de liPhone dcrivent le fonctionnement du systme dexploitation embarqu et sapparentent ceux de Mac OS X vous dfinissez notamment les fonctionnalits Bluetooth et WiFi.

    En tant que dveloppeur et designer, vous pouvez surfer sur cette tendance ds lbauche sur papier de votre application. Certes, comme nous le verrons par la suite, liPhone est dot dune srie de contrleurs qui voquent dj largement les outils intgrs Mac OS X (champs, boutons, fentres de rglages, clavier virtuel). Mais de manire fine et discrte, vous avez tout intrt concevoir votre application en songeant lergonomie des logiciels les plus populaires pour les machines dApple, afin de renforcer encore ce lien de parent. Mac OS X bnficie dune interface trs intuitive et nous pousse contracter des rflexes qui chappent encore au monde Windows : en dclinant ces concepts et ces systmes de navigation vos propres applications, vous avez toutes les chances de captiver un plus large public votre application sera loue pour son ergonomie et sa prise en main intuitive. Sans compter quApple voit dun bon il les dveloppeurs qui sinspirent de tous ces jalons poss au fil des annes ! ce titre, nous vous invitons consulter le guide officiel des inter-faces homme-machine de liPhone, ladresse http://tinyurl.com/iphoneIHM. Particuli-rement clair et complet, ce guide dcrit en dtails toutes les bonnes pratiques aboutissant une application intuitive et ergonomique. Vous dcouvrirez ainsi quel point lemplacement de vos boutons et contrleurs ne doit jamais tre le fruit du hasard.Plus intressant encore vis--vis de la tche qui nous occupe aujourdhui : la parent entre liPhone et Mac OS X se prolonge jusquau noyau du systme et son environne-

  • 34 Dveloppez des applications originales pour iPhone et iPod Touch

    ment de dveloppement. Si vous avez dj dvelopp des applications pour le systme dApple, vous tes familier de Cocoa et de son langage de programmation de prdilection, Objective-C. Sachez que tous ces lments se dclinent liPhone et que vous serez rapi-dement en mesure dadapter vos comptences au terminal dApple. Si vous navez encore jamais programm dapplications pour Mac OS X, pas de panique : ce nest absolument pas un passage oblig pour dvelopper vos projets pour liPhone ou liPod Touch et vous pour-rez facilement partir dun bon pied en dclinant les grands concepts que vous matrisez dj travers dautres langages de programmation. Si liPhone est la toute premire plate-forme pour laquelle vous allez dvelopper, nayez crainte. limage de son interface ergonomique et intuitive, les outils de dveloppement demeurent clairs et efficaces. Reportez-vous ven-tuellement la fin de ce chapitre pour dterminer votre profil de dveloppeur et estimer votre niveau de comptence.

    Une premire approche de CocoaSi le parallle entre Mac OS X et liPhone est vident, il faut tout de mme garder les-prit les spcificits du terminal dApple. Il sagit avant tout dun appareil nomade, que lon exploite lors de ses dplacements : les utilisateurs ne le manipulent pas la souris et liPhone introduit plusieurs fonctionnalits indites, comme le Multi-Touch et lacclro-mtre. Pour toutes ces raisons, Apple ne qualifie pas explicitement le systme de liPhone de "Mac OS X" mais plutt "diPhone OS". Mais le fort rapprochement entre les deux systmes persiste malgr tout : pour vous en convaincre, vous pouvez parcourir les longues conditions dutilisation (dans Rglages > Gnral > Informations > Mention lgale sur votre iPhone) o figure le nom de toutes les bibliothques et sources utilises.Les applications pour Mac OS X et pour iPhone partagent ainsi les mmes racines, au-tour de lenvironnement de dveloppement Cocoa. Cette pure plate-forme de dveloppe-ment pour Mac sinscrit dans lhritage du systme NeXTSTEP, cr en 1989 par la socit NeXT de Steve Jobs et rachet par Apple en dcembre 1996. Avant daller plus loin, retenez que cet environnement est trs largement orient objet et quil constitue lun des socles de Mac OS X, en tirant parti de la puissance des outils de dveloppement dApple comme Xcode. Sous Mac OS X, Cocoa est partie prenante du systme et constitue la fois un en-vironnement dexcution dapplications (comme Safari par exemple) et de dveloppement, autour dun ensemble de frameworks orients objets. La plupart des applications sexcu-tant sous Mac OS X sont ainsi des applications Cocoa ! Du ct de liPhone, il sagit mme du seul environnement disponible : des applications intgres au systme, comme Mail ou Safari par exemple, sont des applications Cocoa.

    En manipulant Xcode pour dvelopper vos applications pour iPhone, vous vous inscrivez donc pleinement dans cet environnement. Cocoa est un colossal ensemble de composants

  • 35Chapitre 1 Vue densemble du dveloppement pour iPhone

    orients objet (des classes), que vous pouvez directement exploiter ou adapter vos besoins afin de construire toutes les "briques" de votre application. La quasi-totalit des comporte-ments du systme, des interactions avec lutilisateur, de linterface graphique et de la lec-ture/criture de donnes sont couverts par cette large bibliothque de classes. Un environne-ment si riche est une vraie aubaine pour les programmeurs : la politique de dveloppement dApple est clairement norme et Cocoa automatise de nombreux aspects du dveloppe-ment dune application. Nous le verrons trs rapidement dans la suite de cet ouvrage : si un domaine prcis chappe sa juridiction, vous pouvez trs facilement crer une sous-classe afin dlargir son champ daction. Dans la mesure o liPhone introduit justement de nom-breux comportements indits, en particulier linterface tactile mais aussi le GPS et laccl-romtre, Cocoa a t revu et corrig afin de disposer demble des classes adquates. Dans le cadre du dveloppement pour iPhone et iPod Touch autour du SDK dlivr par Apple, on parle ainsi de lAPI "Cocoa Touch" afin de marquer cette diffrence.

    Ouvrages consulter

    Le dveloppement d'applications Cocoa vous intresse et vous souhaitez largir votre apprentissage de l'Objective-C l'ensemble de plate-forme Mac OS X ? N'hsitez pas vous reporter l'ouvrage Programmation Cocoa sous Mac OS X d'Aaron Hillegass, paru aux ditions Pearson (http://www.pearson.fr/livre/?GCOI=27440100726260). Pour une exploration en dtails du langage Objective-C, nous ne saurons que vous recom-mander la lecture de ObjectiveC 2.0, le langage de programmation iPhone et Cocoa sur Mac OS X, de Pejvan Beigui, galement paru aux ditions Pearson (http://www.pearson.fr/livre/?GCOI=27440100024070). Ces deux ouvrages compltent le prsent manuel et vous permettent de prolonger votre apprentissage au-del du seul cadre de l'iPhone.

    Le langage de programmation Objective-CDans la mesure o les environnements de dveloppement Cocoa et Cocoa Touch sont in-tgralement crits dans le langage Objective-C, celui-ci devient le langage de rfrence pour le dveloppement dapplications Cocoa. Vous lutiliserez constamment lorsque vous mettrez au point votre application pour iPhone ! Un bref rappel historique simpose avant daller plus loin. la fin des annes 1970, le langage C connat une immense popularit : Brian Kernighan et Denis Ritchie, du Laboratoire AT&T Bell, lont mis en place quelques annes plus tt et il est mme devenu la pierre angulaire des systmes dexploitation UNIX, totalement crits dans ce langage. Au dbut des annes 80, les pratiques de gnie logiciel voluent et donnent naissance la programmation structure : les larges programmes sont diviss en de plus petits sous-ensembles, plus faciles dboguer et excuter de manire autonome. Mais en conservant laspect traditionnel du C, une telle pratique noptimise pas lcriture du code pour autant ; les programmes gagnant en complexit, il est de plus en plus

  • 36 Dveloppez des applications originales pour iPhone et iPod Touch

    difficile de rutiliser du code et il faut prvoir de larges structures de contrle afin de lier les diffrentes "parties" dun programme.

    Cest cette poque que les premires extensions du C vers lorient objet apparaissent : Bjarne Stroustrup dveloppe le C++ en 1979. La notion de classes et dobjets rutilisables rsout les problmes voqus prcdemment et les dveloppeurs peuvent envisager des programmes effectuant des traitements trs complexes sans crire des millions de lignes de code pour autant. LObjective-C est une approche parallle, initie par Brad Cox la mme priode. L encore, il sagit dune couche supplmentaire au C visant lautoriser crer et manipuler des objets. Si vous navez encore jamais eu la moindre exprience avec un langage orient objet, sachez quObjective-C constitue une formidable approche pour sinitier aux concepts de classes, dobjets et dhritage. Grce un nombre de types rduit et sa grande intgration avec Cocoa, Objective-C savre relativement intuitif lusage tout en produisant des programmes rigoureux, btis autour de classes et sous-classes auto-matiquement hirarchises. Comme nous le verrons par la suite, il sapproche davantage de Java que de C++. En tant que surcouche du C, il respecte de manire trs stricte sa syntaxe. Toutefois, toutes les oprations lies lorient objet pousent une forme originale et in-tuitive : en Objective-C, on "nappelle" pas une mthode comme en C++, on "envoie un message" un objet. L encore, nous aurons tout le loisir de dtailler cette spcificit autour dexemples concrets, mais retenez ce concept gnral : le traitement de ces "messages" est trs largement automatis et vous autorise une grande souplesse dans la programmation de votre code. Lobjet destinataire a ainsi la possibilit de dcliner le message ou de le traiter et il nest donc pas ncessaire dimplmenter toutes les mthodes dfinies dans le code source. Une autre particularit dObjective-C que vous devez retenir tient au systme de "catgories de classes". Il est trs facile de runir et de trier les classes et sous-classes sous une mme bannire : travers linterface de dveloppement Xcode, vous "visualisez" trs prcisment vos morceaux de code et vous facilitez leur dbogage ou leur mise jour. Idal pour sinscrire parfaitement dans le systme des "mises jour" propos par liTunes App Store, qui permet aux utilisateurs dune application de profiter rapidement des derniers changements imagins par ses dveloppeurs !

    En 2007, Objective-C a connu une srieuse volution qui apporte son lot de nouveauts, en particulier lintroduction de proprits. Apple lvoque sous le nom "dObjective-C 2.0" et cest devenu le langage de programmation par excellence des applications Cocoa depuis Mac OS X 10.5. Lorsque vous dveloppez des programmes pour liPhone et liPod Touch, vous utilisez ainsi le langage de programmation Objective-C 2.0 sous lenvironnement de dveloppement Cocoa Touch.

  • 37Chapitre 1 Vue densemble du dveloppement pour iPhone

    Les couches technologiques de liPhone OS et lintgration de Cocoa TouchVous connaissez dsormais laspect thorique des deux pices centrales du dveloppement pour iPhone. Voyons prsent de manire schmatique comment ces deux composants simbriquent dans iPhone OS. Reportez-vous la Figure 2.5 qui prsente les diffrentes couches technologiques du systme de liPhone.

    Figure 2.5Les couches technologiques de liPhone OS.

    Quatre couches successives se superposent afin de runir toutes les fonctions de liPhone. Les couches infrieures, Core OS et Core Services, correspondent aux interfaces et l-ments fondamentaux, notamment le noyau du systme, la gestion des fichiers, les accs r-seau et les options dalimentation. Les couches suprieures sont largement crites en Objec-tive-C et runissent toutes les technologies propres liPhone. La couche Media comprend ainsi la gestion du dessin (OpenGL ES, Quartz, Core Animation), mais aussi le support de la vido et de laudio (Core Audio). La dernire couche contient lenvironnement de Cocoa Touch. Elle se divise en deux frameworks complmentaires, qui constituent le socle de toutes les applications pour iPhone : UIKit et Foundation. Comme son nom lindique, UIKit contient tous les objets apparaissant dans linterface utilisateur dune application et dlivre aux programmeurs de nombreux outils pour reprsenter des lments lcran. De nombreuses classes prdfinies vous permettent de grer les fentres, les vues et les contr-leurs de votre application. Le framework Foundation gre notamment le comportement des objets, lcriture et la lecture de fichiers et les oprations rseau. Cest aussi ce niveau que se trouvent toutes les classes permettant daccder aux contacts et aux informations de lutilisateur, ainsi quaux technologies exclusives de liPhone, comme lacclromtre ou le GPS par exemple.

    La couche Cocoa Touch et les deux frameworks UIKit et Foundation constituent ainsi le socle du dveloppement pour iPhone. En rgle gnrale, vous trouverez systmatiquement une mthode ou une fonction dans lun de ces deux frameworks capables de prendre en charge la plupart des oprations du terminal dApple ; vous avez dailleurs tout intrt les exploiter directement afin dviter de faire appel aux couches infrieures diPhone OS.

  • 38 Dveloppez des applications originales pour iPhone et iPod Touch

    Toutefois, nous aurons ponctuellement besoin dutiliser un framework situ un niveau sous-jacent afin dexercer un plus grand contrle sur le comportement dune application. Le framework UIKit vous permet dafficher simplement du texte lcran : comme vous le verrez travers certains exemples de cet ouvrage, il est parfois prfrable de le suppler par un framework de la couche Media afin de mieux personnaliser lintgration de tels objets. Reportez-vous la Figure 2.6 pour visualiser de manire plus dtaille limbrication des frameworks dans la couche Cocoa Touch.

    Figure 2.6Les frameworks de la couche Cocoa Touch.

    Cette vue densemble vous permet de dcouvrir tous les rouages internes de la couche Cocoa Touch. Ds le chapitre suivant, nous plongerons dans les bases dObjective-C 2.0 travers lutilisation de Xcode et nous mettrons ce canevas gnral en application !

    Tirer partie de ses connaissances dautres langages

    Dans la suite de cet ouvrage, nous partons du principe que vous navez pas encore dex-prience particulire dans le dveloppement dapplications pour iPhone et iPod Touch. Il nest pas non plus ncessaire de se familiariser avec Cocoa et le dveloppement sous Mac OS X pour partir dun bon pied : les outils du SDK sont clairs et intuitifs, de plus, liPhone prsente un certain nombre de spcificits par rapport aux applications Mac OS X. Toutefois, comme nous lavons vu, le dveloppement dapplications pour iPhone sarticule autour dun langage orient objet. Vous devez disposer de connaissances gnrales autour du concept dobjets et de classes pour mieux apprhender toutes les subtilits dObjective-C 2.0 et de Cocoa Touch. ce titre, sachez que des expriences comparables dans dautres langages de programmation peuvent tout fait se transposer et vous feront gagner un temps prcieux. Les frus de Java et de C++ sont choys et devraient rapidement trouver leurs marques, au-del dune priode dinitiation la nomenclature et la syntaxe particulires dObjective-C. La programmation na jamais couvert un champ aussi large quaujourdhui. Il existe des dizaines de langages, adapts des domaines trs spcifiques comme le dveloppement web par exemple. Tous les langages de programmation structure trouvent un cho tra-vers Objective-C. Ainsi, si vous avez dj dvelopp en ActionScript 3.0 ou en PHP 5, vous tes familier avec le concept des classes et de lhritage. Le dveloppement pour iPhone

  • 39Chapitre 1 Vue densemble du dveloppement pour iPhone

    est relativement spcifique, dans la mesure o le programmeur endosse bien souvent le rle de designer dinterface et quil doit travailler avec un cadre limit. L encore, une exprience en dveloppement web (o il faut bien souvent prendre en compte les feuilles de style et dautres lments de nature ergonomique, comme le placement de boutons ou dimages !) est un srieux atout : cest en multipliant les casquettes que vous parviendrez rapidement aux rsultats les plus aboutis, sans lsiner sur le moindre aspect comportemen-tal ou esthtique de votre application. Comme nous lavons vu au chapitre prcdent, il existe galement deux frameworks puisant leurs racines dans JavaScript : QuickConnect et PhoneGap. Ils permettent de dvelopper des applications ambitieuses sans ncessairement passer par du code en Objective-C. Dans la mesure o ces frameworks nexploitent pas le SDK de l'iPhone, nous ne les passons pas en revue au cours de cet ouvrage et nous vous invitons vous reporter au livre Dveloppez des applications pour iPhone avec HTML, CSS et JavaScript de Lee S. Barney, paru aux ditions Pearson.

    Les spcificits et les limites de liPhoneNous avons dj voqu au chapitre prcdent le caractre singulier de liPhone et les nom-breuses implications de cette ergonomie sur le design de votre application. Maintenant que vous disposez dune connaissance plus approfondie de larchitecture diPhone OS, vous devez retenir que votre application accapare totalement le systme lors de son excution. Tlcharge sur le terminal dun utilisateur, elle est reprsente par son icne individuelle, aux cts des applications livres en standard avec liPhone ; si lutilisateur clique sur cette icne, votre application sexcute et occupe totalement lcran. Lorsque lutilisateur presse le bouton principal, votre application se termine et le systme saffiche nouveau. Mis part quelques dmons et services de bas niveau (comme la possibilit de basculer automa-tiquement vers un appel tlphonique, lorsque vous excutez une application), votre appli-cation dispose dun contrle total des ressources logicielles et matrielles du systme, y compris les priphriques intgrs comme lappareil photo ou lacclromtre.

    Noubliez jamais que vous programmez une application pour un priphrique mobile. Aussi moderne soit-il, il sinscrit dans des limites matrielles trs strictes : mme si vous disposez dun environnement dexcution tout entier rserv votre application, vous devez vous borner respecter un certain cadre. Parcourons tous ces aspects ensemble.

    Une taille daffichage limite. Cest indniablement lun des atouts de liPhone et de liPod Touch : ils sont affubls dun superbe cran, clair et lumineux. Au moment de leur sortie res-pective, cet cran dpassait largement la qualit et la rsolution de la plupart des terminaux mobiles. Mais lheure o la vido en haute dfinition connat un fort engouement, vous devez toutefois inscrire votre application dans un cadre plus limit : la rsolution de lcran de liPhone est de 480 320 pixels. Plus prcisment, votre application dispose dun cadre

  • 40 Dveloppez des applications originales pour iPhone et iPod Touch

    de 460 320 pixels : 20 pixels de hauteur sont rservs au menu suprieur qui affiche le nom de loprateur, le niveau de batterie actuel et la porte du signal WiFi.

    Autant dire que vous devrez rivaliser dingniosit et profiter au mieux du framework UIKit pour mettre en place un systme de navigation ergonomique, qui sarticule autour donglets et de fentres successives ! LiPhone dispose toutefois dun mode "dauto-rotation" qui vous permet de profiter dun espace de 480 300 pixels en mode Paysage (l encore, les informations sur loprateur sont prservs dans une barre de 20 pixels de hauteur). Nous y reviendrons.

    Figure 2.7Lapplication du quotidien Le Monde dispose dun systme de navigation original, qui exploite au mieux lespace disponible sur lcran de liPhone.

    Une seule fentre la fois. Contrairement aux applications bureautiques, les applications pour iPhone ne disposent que dune seule "fentre" pour sexcuter. L encore, cette limite pse avant tout sur vos choix en matire de design et dinterface utilisateur.

    Une seule application la fois. Comme nous lavons vu, votre application dispose dun contrle quasi total des ressources de liPhone au moment de son excution. Si lutilisateur presse le bouton principal, celle-ci sarrte : vous ne pouvez donc pas envisager de prolon-ger ses traitements en "tche de fond", pendant que lutilisateur manipule dautres appli-cations ou services. Il sagit toutefois dune limite que les ingnieurs dApple cherchent remettre en cause et qui pourrait tre vince lors dune prochaine mise jour du systme, avec des terminaux disposant dune plus grande quantit de mmoire vive par exemple (vous avez dit iPhone 4 ?).Une ractivit limite. Dans le mme ordre desprit, sachez quApple a voulu prserver cote que cote la ractivit et la souplesse de liPhone : dans la mesure o il sagit avant tout dun tlphone portable, les utilisateurs doivent tre en mesure de basculer rapidement dune activit lautre. Lorsquils pressent licne de votre application, celle-ci doit se char-

  • 41Chapitre 1 Vue densemble du dveloppement pour iPhone

    ger immdiatement. linverse, lorsquon appuie sur le bouton principal, on revient instan-tanment lcran daccueil du systme. Si votre application est conue pour enregistrer et charger des paramtres personnaliss (profil de lutilisateur, donnes, etc.), sachez quelle ne dispose que de cinq secondes au maximum pour sacquitter de ces tches. Nous y revien-drons, mais vous devrez vous efforcer doptimiser au mieux les oprations de sauvegarde afin de vous assurer quaucune donne nest perdue lorsque lutilisateur quitte promptement votre application. La Figure 2.8 illustre ce type dapplications.

    Figure 2.8La sauvegarde automatique du circuit parcouru avec Crash Bandicoot Nitro Kart 3D.

    Des ressources systme limites. Lun des intrts de la programmation pour un terminal mobile comme liPhone est de connatre lavance le matriel exploit par les utilisateurs : vous savez quoi vous attendre et vous ntes pas en droit dexiger une "configuration mini-male" puisque vous la connaissez dj ! La principale limite rside dans la quantit de m-moire vive disponible pour votre application. Toutes les dclinaisons actuelles de liPhone embarquent 128 Mo de RAM : une quantit tout fait raisonnable pour envisager des ap-plications riches sur le plan visuel, comme le dmontrent les projets dditeurs traditionnels du jeu vido (Need For Speed, Episode 1112). Mme si les applications sexcutent de manire individuelle, sachez que le systme accapare environ la moiti de ces ressources pour fonctionner. Vous disposez ainsi dune marge confortable de 64 Mo de mmoire vive pour excuter votre application. Par ailleurs, liPhone nest pas en mesure dcrire un fichier dchange (swap) lheure actuelle. Vous ne disposez ainsi que de la mmoire physique du terminal et vous ne pouvez donc pas exploiter les 8, 16 ou 32 Go despace de stockage pour gonfler artificiellement cette valeur. Il sagit toutefois dune valeur qui risque dtre remise en cause lors de la sortie de la prochaine version de liPhone. Heureusement, Cocoa Touch et Objective-C 2.0 sont dots de nombreuses classes et de plusieurs mcanismes visant limiter les fuites de mmoire et grer au mieux les ressources du systme.

  • 42 Dveloppez des applications originales pour iPhone et iPod Touch

    Figure 2.9Malgr ses ressources plutt limites, liPhone est en mesure dafficher de vibrantes animations en 3D !

    Un accs limit aux donnes. Cest lun des chevaux de bataille dApple avec liPhone et liTunes App Store : la marque la pomme veille scrupuleusement prserver les donnes personnelles de ses utilisateurs. Votre application ne peut lire et crire des donnes que dans une portion de lespace de stockage qui lui est spcifiquement rserve (quon qualifie g-nralement de sandbox, ou bac sable). Vous ne pouvez donc pas envisager de rdiger des "virus" qui viendraient effacer le carnet dadresses des utilisateurs !

    Figure 2.10Lenregistrement des paramtres de lapplication Facebook dans sa zone ddie.

    Fort heureusement, toutes ces limites ont t soigneusement dfinies et anticipes par Apple et le SDK de liPhone. Sous Xcode et travers lmulateur, vous serez ainsi en mesure de tester prcisment le comportement de votre application et vous ne pourrez pas mettre en vente un projet qui viendrait faire planter liPhone. Par ailleurs, de nombreuses mthodes et procdures prdfinies vous permettent de grer automatiquement les ressources du sys-tme, en particulier la mmoire vive disponible, sans multiplier les lignes de code. Vous pouvez ainsi vous focaliser sur le comportement de votre application, sans vous arracher les cheveux sur toutes ces conditions !

  • 43Chapitre 1 Vue densemble du dveloppement pour iPhone

    En route vers Xcode Installez-vous confortablement face votre Mac et lancez Xcode : nous entrons de plain-pied dans le vif du sujet et nous allons dcouvrir Objective-C et le dveloppement pour iPhone par la pratique ! Avant daller plus loin, prtez-vous une petite exprience : lancez lune de vos applications ftiches sur votre iPhone et essayez de "deviner" do proviennent les comportements et classes utiliss. Le jeu trs populaire Labyrinth de Carl Loodberg constitue un bon exemple. Gratuit dans une version comprenant dix niveaux, ce jeu de plateau sappuie sur lacclromtre de liPhone pour envoyer une bille dun point A un point B, sur un parcours sem de trous.

    Figure 2.11Lcran de jeu de Labyrinth.

    Voici les diffrents lments qui le composent :

    vv Laspect visuel. Une icne de 57 57 pixels pour identifier lapplication, une srie darrire-plan de 320 480 pixels et des "sprites" leffigie de la bille, des trous et de la ligne darrive. Seul le mode Portrait est autoris et il ny a pas dauto-rotation de lcran.

    vv Laspect audio. Dans cette version gratuite, il ny a que quatre "bruitages" employs le rebond de la bille sur les parois, le bruit de sa chute, le son de la bille sur le "plancher" de bois et le signal sonore qui accompagne la victoire.

    vv Le comportement. Grce au framework Foundation, le jeu Labyrinth tire rapidement parti de lacclromtre de liPhone. Les coordonnes de la bille sont donc sans cesse rvalues en fonction de linclinaison du terminal. Lapplication prvoit en plus un rebond sur les parois du jeu. Dun point de vue fonctionnel, les coordonnes de la bille se rinitialisent si elle vient chuter dans un trou (qui correspond un rectangle dont les coordonnes sont fixes) et on charge le niveau suivant si la bille atteint lobjectif (dont les coordonnes sont galement fixes et connues).

  • 44 Dveloppez des applications originales pour iPhone et iPod Touch

    vv Linterface. Au lancement de lapplication, un premier cran vient faire patienter luti-lisateur pendant deux secondes le temps de charger ses paramtres (les niveaux dj russis apparaissent alors griss). Une barr