Développer pour l'iPhone - Chapitre 1 - Partie 1 - Salut les Copains!

Nous allons aujourd'hui succomber à une coutume ancestrale qui veut que tout livre de programmation, toute découverte d'un nouveau langage ou d'une nouvelle plateforme commence par l'écriture d'un Hello World.

Hello World (Salut les Copains pour cette version toute en français) est une manière de découvrir l'environnement de travail et de commencer à développer sans être brusqué, tout doux. On va essayer d'y aller tout tout doux alors.

Lancer XCode

Commençons par lancer XCode.

Il est dans Developer/Applications. Vous aurez envie de le mettre dans votre Dock pour y avoir rapidement accès. Vous êtes accueillis par cet écran

et si vous cliquez sur iPhone, par celui ci:

Les informations présentées sur cet écran sont toutes disponibles sur le site web, dans la section iPhone, et dans la documentation. Vous pouvez lire quelques instants, et passer à autre chose en fermant la fenêtre.

Si vous ne vouslez plus voir cette fenêtre au démarrage, décochez la case en bas à gauche. XCode a une vue de document, contrairement à d'autres environnements que vous connaissez peut être comme Eclipse.

Cela signifie que si vous n'ouvrez aucun document (texte, projet, code etc) , vous n'avez rien à l'écran, comme dans la plupart des applications Mac. Par ailleurs, comme vous pouvez créer des documents de nature très différente, XCode ne vous propose pas un document par défaut. On va donc créer un nouveau projet.

Créer un nouveau projet

Allez dans File / New Project... ou pressez ⇧⌘N (pomme shift N - commande shift N). Apparaît l'assistant de création de projet qui vous propose tous les modèles disponibles par défaut sur votre XCode: Ne nous dispersons pas avec une Kernel extension ou un projet WebObjects (ah bah non, ceux ci n'existent plus) et choisissons la première ligne à gauche : iPhoneOS applications. Nous avons une série de 6 modèles préexistants que nous ne détaillerons pas ici. On va simplement choisir un des plus simples qui est View Based Application. Puis on clique sur Choose.... Le plus dur est fait... presque car il faut maintenant trouver un nom à ce projet. On choisit Salut et on on indique un emplacement où le déposer.

Par défaut, XCode propose Documents ce qui n'est pas plus mal qu'un autre endroit. Personnellement j'ai créé un répertoire iPhone à la racine de mon répertoire personnel et je ets mes projets dedans. Je lui ai même donné une petite icone d'iPhone pour m'en souvenir. Pour l'occasion du bouquin, je crée même un nouveau dossier iPhoneBook dans mon dossier maison. Cette fois le plus dur est fait! XCode ouvre en effet une fenêtre contenant tout un tas d'objets à gauche, un tas de nom de fichier en haut. Tous les fichiers sont là. Ne soyez pas intimidé.

Repérez le bouton "Build and Go " avec une grosse flèche verte et un marteau et cliquez dessus.

L'application se compile et en quelques secondes un iPhone apparaît sur votre écran et vous montre avec fierté.... un écran vide!

Vous êtes devenu développeur iPhone, et vous pouvez rivaliser avec les premières applications apparues sur l'AppStore. Si vous avez un peu plus d'ambition que cela, passons à l'étape suivante.

Faire connaissance avec XCode

Quittez le simulateur et votre première application iPhone. Retournons ensemble dans XCode. Première chose, la fenêtre est un peu chétive. J'ai tendance à l'agrandir pour qu'elle prenne 80% de l'écran. Elle est découpée en 4 portions : la barre d'outils, la liste de fichiers (réels et virtuels) à gauche, la fenêtre des détails en haut à droite, et la fenêtre de contenu ou éditeur, en bas à droite. Je déteste cette mise en page. Je commence par aller dans les préférences de XCode pour afficher le mode "tout en un" qui évite d'avoir des fenêtres différentes. Il faut fermer le projet courant pour le faire. Ensuite, au fur et à mesure que je développe je passe mon temps à cacher la fenêtre de détail en faisant ⇧⌘E . La fenêtre de gauche vous montre tous les fichiers, les réglages et les résultats de votre projet. En cliquant sur un triangle, vous ouvrez comme dans le Finder, et vous voyez le contenu du groupe. Cliquez d'abord sur le groupe de Salut, puis sur Classes,

Other Sources, Resources etc. Vous verrez tous les fichiers qui constituent votre projet. En cliquant sur un fichier, par exemple

SalutAppDelegate.h, vous le voyez s'ouvrir dans la fenêtre de l'éditeur, et prendre la place principale de la fenêtre de détail : fermez cette fenêtre inutile. Toujours dans les préférences, vous pouvez régler pour qu'elle reste fermée. On a alors une belle fenêtre et on peut se concentrer en ayant de l'espace.

Première astuce, pour passer du fichier .h (le header) au fichier .m (l'implémentation), les touches ⇧⌘ et flèches haut sont judicieusement passées. Vous allez passer de l'un à l'autre souvent, voilà une astuce qui vous simplifiera la vie. En fonction du type de fichier choisi dans la gauche, XCode vous propose un éditeur différent. Par exemple si vous cliquez sur info.plist (dans le groupe Resources), vous aurez un éditeur de property list. Certains fichiers doivent être édités à l'extérieur, c'est le cas des .xib (ou .nib). Reprenons la liste de la fenêtre de gauche. Le groupe Classes représente le cœur de votre programme. C'est là que vous mettrez toutes vos classes Objective-C qui feront fonctionner votre application. Vous pouvez créer des groupes à l'intérieur de ce groupe, pour vous simplifier et mieux organiser vos fichiers. J'ai des groupes habituels comme Business (classes de définition d'objets persistants dans une base de données), Controllers (le plus gros) pour tous les View Controllers, des classes utilitaires dans Utilities etc etc. Le groupe suivant, je n'y vais pratiquement pas.

Il contient le fichier .pch de header qui s'applique à toutes vos classes, et le fichier main.m : car pour ceux qui ne le savent pas, l'Objective-C, c'est du C. C'est donc la fonction main qui lance l'application. Dans des cas extrêmes, vous pouvez mettre du code là dedans pour effectuer des tâches en un seul coup. On verra si on en a besoin, mais c'est rare. Le groupe Resources contient les 'media' de votre application : images, interface, fichiers de configuration etc.

Dans notre cas présent, il contient deux définitions d'interface, et une liste de propriétés (une plist, ou property list).

Le groupe Frameworks commence à etre un peu bizzare, car il contient la liste des librairies qui seront liées à votre application. Les frameworks sont des librairies avec des ressources, et le moyen développé par Next et Apple de faire des librairies réutilisables par tous avec du code et des ressources (interface, boutons etc). Ici, les fichiers ne sont pas vraiment dans le projet : si vous allez voir dans le répertoire Salut, vous ne trouverez pas ces frameworks. Ces frameworks sont toujours fournis par Apple, aussi bien sur l'iPhone que sur le simulateur : pas besoin de les copier. Le dernier groupe Products contient le résultat de vos compilations réussies : l'application lancée tout à l'heure s'y trouve. Si vous doublez cliquez dessus, vous aurez une erreur, car elle ne peut fonctionner que sur le simulateur ou l'iPhone. Si vous allez dans Build / Clean et que vous acceptez les valeurs par défaut, vous allez effacer la version compilée.

Le "produit" n'est plus là, et il apparaît alors en rouge. Le fait de déplacer des fichiers dans l'arborescence ne change pas leur emplacement sur le disque avec les groupes que l'on a vu. Si vous voulez ranger les vrais fichiers, vous pouvez le faire dans le Finder, puis revenir dans XCode pour lui indiquer les bons chemins.

La structure du dossier salut : pas de dossier resources, ni frameworks....

XCode est aussi le principal lieu de lecture de la documentation, là où on en a besoin. Pour accéder à la documentation d'une classe, il suffit de double cliquer dessus en appuyant sur ⌥ en même temps. Normalement la première fois que vous accéderez à la documentation, elle ne sera pas téléchargée. Maintenant est un bon moment de le faire, alors sélectionnez Help / Documentation, puis à gauche la bibliothèque qui correspond à votre version d'iPhone (2.2 ou 2.2.1). Le logiciel vous propose alors d'y souscrire. Bon téléchargement! Une fois que la doc est chargée, choisissez d'ouvrir SalutAppDelegate.h et double cliquez sur UIWindow en maintenant ⌥ appuyé. La documentation de cette classe apparaît. Vous pouvez naviguer dedans comme dans toute bonne page html.

Appuyez sur commande ⌘ en cliquant sur un lien pour l'ouvrir dans une autre fenêtre, ⌘ et backspace pour revenir dans l'historique etc etc.

Dans la vue "all in one", la fenêtre principale est alternativement en mode edition et en mode debug. Commencez par poser un point d'arrêt dans le fichier SalutAppDelegate.m en cliquant dans la gouttière à gauche de [window addSubView].

Relancez votre application : dès qu'elle rencontre ce point d'arrêt dans son exécution, elle s'arrête. XCode revient au premier plan (devant votre simulateur iPhone). Cliquez alors sur le debugger symbolisé par la bombe insecticide pour changer de vue.

On a une vue avec quatre fenêtres : la pile des instructions exécutées, la vue des variables et des différents objets, le code et le log. C'est ma vue préférée, celle où je passe des heures à m'arracher les cheveux pour des broutilles... La barre d'outil change aussi : continue, step into etc.

Ces outils vous permettent d'avance pars à pas dans vos méthodes, les unes dans les autres pour savoir ce qui cloche. Arrêtons là pour la découverte de XCode, et passons à l'éditeur d'interface, Interface

Builder.

Publié le 15 Mar 2009
Écrit par Cyril