<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>La Fabrick &#187; apple</title>
	<atom:link href="http://www.lafabrick.com/blog/tag/apple/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lafabrick.com/blog</link>
	<description>Laboratoire d&#039;interfaces riches (Flex, Flash, Air ...)</description>
	<lastBuildDate>Mon, 28 Nov 2011 22:02:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Développer une application iPhone &#8211; XCode et Interface Builder passés au crible</title>
		<link>http://www.lafabrick.com/blog/2009/01/16/807-developper-une-application-iphone-xcode-et-interface-builder-passes-au-crible/</link>
		<comments>http://www.lafabrick.com/blog/2009/01/16/807-developper-une-application-iphone-xcode-et-interface-builder-passes-au-crible/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 22:00:38 +0000</pubDate>
		<dc:creator>Hervé</dc:creator>
				<category><![CDATA[Logiciels / extensions / plugins...]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Conseils]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=807</guid>
		<description><![CDATA[Cet article suit la <a href="http://www.lafabrick.com/blog/2009/01/12/753-developper-une-application-iphone-introduction-aux-concepts-de-base/">description des concepts de base permettant d'appréhender le développement d'une application pour iPhone</a>.
Il présente les outils de développement utilisés pour faire une application pour iPhone en analysant rapidement un projet de base proposé avec le SDK iPhone.
Il ne parle pas de la syntaxe de développement Objective-C.]]></description>
			<content:encoded><![CDATA[<p>Cet article suit la <a href="http://www.lafabrick.com/blog/2009/01/12/753-developper-une-application-iphone-introduction-aux-concepts-de-base/">description des concepts de base permettant d&#8217;appréhender le développement d&#8217;une application pour iPhone</a>.<br />
Il présente les outils de développement utilisés pour faire une application pour iPhone en analysant rapidement un projet de base proposé avec le SDK iPhone.<br />
Il ne parle pas de la syntaxe de développement Objective-C.</p>
<p>Je vous suggère vivement si vous n&#8217;avez pas lu l&#8217;article ou si vous ne connaissez pas encore grand chose au développement sous iPhone de vous y intéresser pour mieux aborder cette suite&#8230;</p>
<p><img class="aligncenter" title="XCode and Interface Builder" src="http://lafabrick.free.fr/blogImg/xbuilderInterface-20090121-010351.png" alt="" width="520" height="224" /></p>
<p>Une dernière chose avant de démarrer : massez-vous les tempes, faites-vous un petit café&#8230;<br />
Prêt ?<br />
<span id="more-807"></span></p>
<h3>Installer le SDK iPhone</h3>
<p>A l&#8217;heure ou j&#8217;écris ces lignes, Apple en est à la <a href="http://developer.apple.com/iPhone/program/download.html">version 2.2 du SDK iPhone</a>.<br />
L&#8217;installation vous mettra à disposition tous les outils dont je vais parler ici.</p>
<h3>Ouvrir un projet d&#8217;exemple pour se familiariser avec la structure d&#8217;un projet iPhone</h3>
<p>Je considère à présent que vous avez déjà un Mac (bah oui&#8230;), et le SDK iPhone installé dessus.</p>
<ol>
<li>Ouvrez XCode.<br />
<img class="alignnone size-medium wp-image-785" title="Xcode" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/welcome-to-xcode-300x206.jpg" alt="Xcode" width="300" height="206" /></li>
<li>Faites Fichier &gt; Nouveau projet&#8230;<br />
<img class="alignnone size-full wp-image-787" title="New project" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/new-project.jpg" alt="New project" width="503" height="477" /></li>
<li>Choisissez &laquo;&nbsp;View-Based Application&nbsp;&raquo;</li>
<li>Entrez le nom de projet &laquo;&nbsp;LaFabrick&nbsp;&raquo; puis choisissez un emplacement, vous arrivez alors sur l&#8217;interface principale d&#8217;Xcode.</li>
</ol>
<p>Voyons maintenant les fichiers que nous avons :<br />
<img class="alignnone size-full wp-image-792" title="Accueil Xcode View-Based application" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/lafabrick.jpg" alt="Accueil Xcode View-Based application" width="676" height="479" /><br />
Nous sommes en Objective-C, donc pour chaque classe, vous trouverez un fichier .h définissant l&#8217;interface et un fichier .m contenant l&#8217;implémentation (amis du C bonjour !).<br />
Ouvrons &laquo;&nbsp;LaFabrickAppDelegate.h&nbsp;&raquo;<br />
<img class="alignnone size-full wp-image-799" title="LaFabrickAppDelegate.h" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/lafabrickappdelegateh.png" alt="LaFabrickAppDelegate.h" width="554" height="331" /><br />
On constate dans cette interface les déclarations d&#8217;un objet fenêtre (objet de base utilisé pour l&#8217;affichage) et le contrôleur <strong>LaFabrickViewController</strong> que nous étudierons rapidement après.<br />
L&#8217;implémentation est simple :<br />
<img class="alignnone size-full wp-image-801" title="LaFabrickAppDelegate.m" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/lafabrickappdelegatem.png" alt="LaFabrickAppDelegate.m" width="530" height="386" /><br />
Lorsque l&#8217;application vient d&#8217;être démarrée <code>applicationDidFinishLaunching</code>, on demande l&#8217;affichage de la vue contrôlée par notre LaFabrickViewController dans la fenêtre <code>[window addSubview:viewController.view];</code>.<br />
Notez enfin la notation à crochet pour appeler une méthode d&#8217;un objet : oui oui, c&#8217;est relou.</p>
<p>Jetons maintenant un oeil à LaFabrickViewController (.h et .m) : il est quasiment vide ! C&#8217;est effectivement là qu&#8217;on doit travailler un peu&#8230;<br />
Quelques questions se posent :</p>
<ul>
<li>Où est la vue ?</li>
<li>Comment est-elle associée au contrôleur ?</li>
</ul>
<p>Nous allons voir cela avec l&#8217;interface builder.</p>
<h3>Utilisation de l&#8217;Interface Builder pour gérer la vue</h3>
<p>Première réponse : notre vue est ici créée à partir d&#8217;un fichier de description d&#8217;interface géré par l&#8217;interface builder : <strong>LaFabrickViewController.xib</strong>. Double-cliquez dessus, l&#8217;interface suivante s&#8217;affiche alors :<br />
<img class="alignnone size-full wp-image-846" title="Interface Builder" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/interface-builder.png" alt="Interface Builder" width="727" height="481" /><br />
On constate notamment dans la fenêtre centrale, les éléments suivants :</p>
<ul>
<li>File&#8217;s owner : LaFabrickViewController</li>
<li>View : UIView</li>
</ul>
<p>OK, donc le .xib permet de dire que la vue est associée au contrôleur LaFabrickViewController, voilà la deuxième réponse !</p>
<p>Sélectionnez à présent la ligne <strong>View : UIView</strong> puis sélectionnez le second onglet dans la fenêtre de droite.<br />
<strong>Note :</strong> si cette fenêtre n&#8217;est pas visible, faites <em>Tools &gt; Identity Inspector</em></p>
<p>Vous pouvez visualiser l&#8217;association entre la vue <strong>View</strong> et la propriété <strong>view</strong> du contrôleur LaFabrickViewController.<br />
<img class="alignright size-full wp-image-847" title="View connections" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/view-connections.png" alt="View connections" width="290" height="104" /></p>
<p>Cette partie est primordiale pour que l&#8217;affichage de la vue soit effectif : souvenez-vous que dans LaFabrickAppDelegate, on charge la propriété &laquo;&nbsp;view&nbsp;&raquo; de LaFabrickViewController, aussi sans l&#8217;association effectuée dans l&#8217;Interface Builder, il serait impossible d&#8217;afficher quoi que ce soit !</p>
<p><strong>D&#8217;une manière générale, chaque élément ajouté depuis l&#8217;Interface Builder devra être lié à une propriété du contrôleur (ou d&#8217;un délégué) via l&#8217;Interface Builder afin que vous puissez interagir avec depuis le code.<br />
La propriété en question est alors nommée &laquo;&nbsp;Outlet&nbsp;&raquo; côté Interface Builder, soit &laquo;&nbsp;Sortie&nbsp;&raquo; si l&#8217;on traduit litéralement : c&#8217;est effectivement un paramètre de sortie de votre interface.</strong></p>
<h3>Personnaliser un peu l&#8217;interface</h3>
<p>Depuis l&#8217;Interface Builder, ajoutez deux champs texte, deux labels et un bouton histoire d&#8217;obtenir à peu près ça :<br />
<img class="alignnone size-full wp-image-899" title="iPhone - View" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/view.png" alt="iPhone - View" width="321" height="308" /></p>
<p>Si vous faites <em>Tools &gt; Reveal in Document Window&#8230;</em> vous verrez l&#8217;arborescence de contrôles de la vue mise à jour.<br />
<img class="alignnone size-full wp-image-901" title="iPhone - Arborescence de contrôles" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/lafabrickviewcontrollerxib.png" alt="iPhone - Arborescence de contrôles" width="435" height="232" /></p>
<p>Il est maintenant temps de contrôler ces éléments depuis notre LaFabrickViewController.<br />
Pour cela deux méthodes :</p>
<ol>
<li>Directement depuis Interface Builder (cf. <a href="#videodemo">vidéo de démonstration</a>)
<ul>
<li>Sélectionnez LaFabrickViewController depuis le Document Window</li>
<li>Dans &laquo;&nbsp;l&#8217;Inspector&nbsp;&raquo; (fenêtre de droite) choisissez le dernier onglet (i) puis ajoutez les propriétés via la section &laquo;&nbsp;Class Outlets&nbsp;&raquo;<br />
<img class="alignnone size-full wp-image-905" title="Interface Builder - Propriétés de classe" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/la-fabrick-view-controller-identity.png" alt="Interface Builder - Propriétés de classe" width="277" height="421" /></li>
<li>Ceci fait vous devez enregistrer les modifications dans le fichier LaFabrickViewController.m. Pour cela, vous devez utiliser la fonction <em>File &gt; Write class files&#8230;</em></li>
<li>Faites alors &laquo;&nbsp;Save&nbsp;&raquo;</li>
<li>L&#8217;outil vous demande si vous souhaitez fusionner ou écraser : choisissez Merge (fusionner)</li>
<li>Le fichier .m n&#8217;est pas modifié, vous pouvez le fermer, en revanche vous constaterez que le .h peut être modifié comme suit :<br />
<img class="alignnone size-full wp-image-908" title="Merging de fichier sous Interface Builder" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/lafabrickviewcontrollerh.png" alt="Merging de fichier sous Interface Builder" width="785" height="101" /><br />
sous réserve que vous choisissiez l&#8217;action &laquo;&nbsp;Choose left&nbsp;&raquo; depuis le menu déroulant du bas</li>
<li>Sauvegardez (enfin) votre fichier fusionné</li>
</ul>
</li>
<li>Mix XCode et Interface Builder
<ul>
<li>Déclarez manuellement les propriétés correspondant aux contrôles que vous souhaitez manipuler dans l&#8217;interface (LaFabrickViewController.h) :<code><br />
IBOutlet UITextField *lastNameField;<br />
IBOutlet UITextField *nameField;<br />
IBOutlet UIButton *validateButton;<br />
</code></li>
<li>Compilez le projet</li>
<li>Rouvrez l&#8217;Interface Builder pour faire les liens</li>
</ul>
</li>
</ol>
<p><strong>Note :</strong> la première méthode a le mauvais goût d&#8217;ouvrir l&#8217;outil de fusion de fichiers pour que vous validiez que rien n&#8217;est écrasé ou ajouté sans votre accord.<br />
J&#8217;avoue que, malgré la nécessité de la fusion, je trouve ça très peu pratique voire franchement lourdingue, je m&#8217;attendais à mieux venant d&#8217;un monstre de l&#8217;ergonomie. Mais c&#8217;est le prix à payer pour avoir deux outils quasiment indépendants, et enfin, si vous connaissez une meilleure méthode, n&#8217;hésitez pas à poster !</p>
<p><em>&#8211; ca se voit tant que ça que je préfère la méthode à l&#8217;ancienne ? &#8211;</em></p>
<p>Ce n&#8217;est pas encore tout à fait terminé ! (si si je vous jure, c&#8217;est long)<br />
Il reste à faire les fameux liens entre les contrôles de la vue et les propriétés que nous avons créé dans LaFabrickViewController. Pour cela, rien ne vaut l&#8217;image (et en plein écran tant qu&#8217;à faire) :</p>
<div id="videodemo">
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_0" width="800" height="600" align="center">
      <param name="movie" value="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/Tuto-iPhone.swf" />
      <param name="align" value="center" />
      <param name="allowfullscreen" value="true" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/Tuto-iPhone.swf" width="800" height="600" align="center" allowfullscreen="true">
      <!--<![endif]-->
        
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
 </div>
<p>Voilà ! Vous avez lié les contrôles de votre vue à des propriétés de votre contrôleur.<br />
Nous utiliserons désormais la technique décrite ci-dessus pour gérer nos association vue-contrôleur.</p>
<p>Reprenons Interface Builder pour créer un handler gérant le clic sur le bouton. Pour cela :</p>
<ol>
<li>Sélectionnez <strong>LaFabrickViewController</strong> depuis la <em>Document Window</em></li>
<li>Dans le dernier onglet de <em>l&#8217;Inspector</em>, cliquez sur le bouton + de la section <em>Class Actions</em> en entrez <code>buttonClick:</code>. Laissez le <em>Type</em> sur <strong>id</strong></li>
<li>Sauvegardez, faites <em>Write class files&#8230;</em>, fusionnez les sources et enregistrez</li>
<li>Faites un lien entre l&#8217;événement <em>Touch up Inside</em> de votre bouton et <strong>LaFabrickViewController</strong>, l&#8217;éditeur vous propose alors votre fonction <code>buttonClick:</code></li>
</ol>
<p>Maintenant que votre événement est lié à votre contrôleur, ajoutons un bout de code bateau juste pour valider que l&#8217;ensemble fonctionne bien :</p>
<ol>
<li>Retournez sous XCode, et ouvrez LaFabrickViewController.m</li>
<li>Modifiez le code pour avoir la méthode <strong>buttonClick:</strong> sous la forme suivante :<br />
<code>- (IBAction)buttonClick:(id)sender {<br />
[firstNameField setText:[lastNameField text]];<br />
}</code> </p>
<p>Le principe étant simplement de modifier le texte du prénom avec le texte du nom (je vous avais prévenu, c&#8217;est un bout de code bateau)</li>
<li>Faites <strong>Build and Go</strong> et testez !</li>
</ol>
<p>Bien, il ne reste plus qu&#8217;à apprendre Objective-C. Pour cela, rien ne vaut quelques ressources dédiée au sujet :</p>
<ul>
<li><a href="http://pierre-chatelier.developpez.com/tutoriels/mac/objectivec/migration/">Passage de C++ à Objective-C</a></li>
<li><a href="http://sylvain-gamel.developpez.com/tutoriel/mac/cocoa/java/">Passage de Java à Objective-C</a></li>
</ul>
<p>Voilà, vous avez à présent les bases nécessaires pour démarrer le développement d&#8217;une application iPhone.<br />
A bientôt !Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/11/15/266-debuguer-un-projet-flex-distant-via-flex-builder/" rel="bookmark" title="15 novembre 2007">L&#8217;erreur est humaine&#8230; debuguer un projet Flex distant via Flex Builder</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/09/04/206-flex-3-beta-rsolution-de-bug-comment-placer-fichier-d-application/" rel="bookmark" title="4 septembre 2007">[Flex 3 Beta] bug : Application File doesn&#8217;t exist</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/01/12/753-developper-une-application-iphone-introduction-aux-concepts-de-base/" rel="bookmark" title="12 janvier 2009">Développer une application iPhone &#8211; Introduction aux concepts de base</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/01/13/786-reflex-1-une-micro-architecture-pour-flex-simple/" rel="bookmark" title="13 janvier 2009">Reflex #1: une micro-architecture pour Flex&#8230; simple !</a></li>
</ul>
<p><!-- Similar Posts took 15.220 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/01/16/807-developper-une-application-iphone-xcode-et-interface-builder-passes-au-crible/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Développer une application iPhone &#8211; Introduction aux concepts de base</title>
		<link>http://www.lafabrick.com/blog/2009/01/12/753-developper-une-application-iphone-introduction-aux-concepts-de-base/</link>
		<comments>http://www.lafabrick.com/blog/2009/01/12/753-developper-une-application-iphone-introduction-aux-concepts-de-base/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 23:33:28 +0000</pubDate>
		<dc:creator>Hervé</dc:creator>
				<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Conseils]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=753</guid>
		<description><![CDATA[<p>Il est des petits appareils qui font envie de nos jours : l'iPhone fait certainement partie des premiers de cette liste.</p>
<p>Voilà donc un tutoriel d'approche d'une technologie nouvelle pour des personnes n'ayant aucune notion de développement dans ce domaine.</p>]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>Il est des petits appareils qui font envie de nos jours : l&#8217;iPhone fait certainement partie des premiers de cette liste.</p>
<p>Voilà donc un tutoriel d&#8217;approche d&#8217;une technologie nouvelle pour des personnes n&#8217;ayant aucune notion de développement dans ce domaine.</p>
<p>Je parlerai donc ici :</p>
<ul>
<li>Des principaux concepts à maîtriser <strong>absolument</strong> pour bien démarrer un développement pour iPhone</li>
<li>De quelques exemples permettant d&#8217;illustrer les concepts</li>
</ul>
<p>Je ne parlerai pas :</p>
<ul>
<li>Des différences entre un développement pour Mac par rapport à un développement pour iPhone</li>
<li>De quelconques &laquo;&nbsp;best practices&nbsp;&raquo; de développement</li>
</ul>
<p>Il s&#8217;agit plutôt d&#8217;un retour d&#8217;expérience qui permettra peut-être à d&#8217;autres personnes d&#8217;appréhender un développement pour iPhone sans trop se casser les dents.</p>
<p>Pour la suite, la documentation fournie par Apple est très complète et peut vous donner de quoi satisfaire vos nuits blanches pour un bon moment !</p>
<p><span id="more-753"></span></p>
<h4>Pour bien démarrer</h4>
<ol>
<li>Comprendre l&#8217;environnement nécessaire au développement d&#8217;une application iPhone
<ol>
<li>Les principaux concepts</li>
<li>Les outils</li>
</ol>
</li>
<li>Ouvrir quelques projets d&#8217;exemple pour se familiariser avec la syntaxe Objective-C</li>
<li>Créer son premier projet</li>
</ol>
<p>Ce premier article présente les concepts et introduit la liste des outils nécessaires au développement.</p>
<h4>Note aux pressés (j&#8217;en fais généralement partie)</h4>
<p>Si vous grillez les deux premières étapes, vous risquez rapidement de vous rendre compte qu&#8217;elles vous manquent et perdrez certainement beaucoup plus de temps que si vous y consacrez une petite journée.</p>
<h3>Comprendre l&#8217;environnement nécessaire au développement d&#8217;une application iPhone</h3>
<h4>Les principaux concepts</h4>
<p>Pour commencer, il est indispensable de maîtriser quelques bases de fonctionnement d&#8217;un programme iPhone.</p>
<p><strong>Une application iPhone est une application MVC</strong> dans sa plus pure forme. Vous concevez des <strong>vues</strong>, manipulées par des <strong>contrôleurs</strong> en faisant transiter des données d&#8217;un <strong>modèle</strong>.</p>
<h5>Application delegate</h5>
<p>Il s&#8217;agit de la classe en charge du lancement de l&#8217;application et de l&#8217;affichage de la fenêtre principale.<br />
Vous pouvez vous en servir pour initialiser des éléments particuliers communs à l&#8217;ensemble des éléments de votre application :</p>
<ul>
<li>connexion à une base de données,</li>
<li>configuration générale,</li>
<li>&#8230;</li>
</ul>
<h5>View controller</h5>
<p>Classe gérant la vue et pouvant recevoir les événements propres aux composants de la vue gérée.</p>
<h5>View</h5>
<p>Une vue, chargée d&#8217;afficher des contrôles. </p>
<p>Il faut savoir qu&#8217;une vue peut être créée par programme ou en utilisant des fichiers de ressources définis à l&#8217;aide de l&#8217;interface builder.</p>
<p>Ce sont deux moyens différents qui présentent leurs avantages et inconvénients&#8230; A vous de voir lequel convient le mieux à telle ou telle situation.</p>
<h5>Delegate</h5>
<p>C&#8217;est un terme souvent employé dans un programme.</p>
<p>Un délégué est un objet prenant en charge un certain nombre de méthodes remplissant des fonctions propres à un émetteur.</p>
<p>En pratique, un view controller est, dans la plupart des cas, désigné comme délégué des composants de la vue et va implémenter les méthodes répondant aux événements que chacun d&#8217;entre eux déclenche.</p>
<p>Par exemple, un composant table view (tableau) va appeler différentes méthodes de son délégué pour pouvoir s&#8217;afficher convenablement :</p>
<p><code>- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView</code><br/>Doit renvoyer le nombre de sections dans le tableau</p>
<p><code>- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section</code><br/>Doit renvoyer le nombre de lignes du tableau à afficher pour la section dont le numéro est passé en paramètre</p>
<p><code>- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath</code><br/>Doit initialiser une cellule du tableau pour le numéro de section et de ligne passé en paramètre</p>
<p>Ce mode de fonctionnement permet notamment que n&#8217;importe que objet soit désigné comme délégué. On peut donc très bien imaginer avoir les deux possibilités suivantes :</p>
<p><img src="http://www.lafabrick.com/blog/wp-content/uploads/2009/01/iphone-delegates.png" alt="iPhone - Concept de delegate" title="iPhone - Concept de delegate" width="500" height="444" class="alignnone size-full wp-image-779" /></p>
<ul>
<li><strong>Le schéma A</strong> montre l&#8217;exemple le plus courant : une seule classe faisant office de ViewController et de Delegate pour l&#8217;ensemble des contrôles de la vue.</li>
<li><strong>Le schéma B</strong> montre une alternative intéressante lors de gestion de vues complexes : une classe Delegate par contrôle et un ViewController standard.</li>
</ul>
<p>La différence entre ces deux solutions, c&#8217;est que le premier ViewController contiendra l&#8217;ensemble du code de BoutonDelegate, Tableau1Delegate et Tableau2Delegate, le rendant peut-être plus complexe à lire et à comprendre.</p>
<p>Ceci étant dit passons aux outils.</p>
<h3>Les outils</h3>
<p>Vous avez trois outils à votre disposition :</p>
<ol>
<li><strong>XCode</strong> : l&#8217;environnement de développement en charge de coder, compiler et lancer la deuxième application</li>
<li><strong>Le simulateur iPhone</strong> : une application simulant à quelques restrictions près un iPhone et vous permettant de tester unitairement vos fonctionnalités</li>
<li><strong>Interface Builder</strong> : l&#8217;outil de création d&#8217;interfaces (écrans, vues&#8230;)</li>
</ol>
<p>XCode est un peu l&#8217;application maître et lance ses 2 gentils larbins pour faciliter le développement.</p>
<p>Dans le prochain article, passage aux choses sérieuses : nous ouvrirons XCode pour voir comment cette théorie se traduit en pratique, histoire d&#8217;illustrer un peu ces jolis concepts.</p>
<p>A la prochaine !<br />
Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2006/11/16/19-petit-cour-sur-lapi-de-dessin/" rel="bookmark" title="16 novembre 2006">Petit cours sur l’API de dessin</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/01/10/288-cairngorm-pour-les-fainants-tour-d-horizons-des-code-generator/" rel="bookmark" title="10 janvier 2008">Cairngorm pour les fainéants&#8230; Tour d&#8217;horizons des code generator</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/01/16/807-developper-une-application-iphone-xcode-et-interface-builder-passes-au-crible/" rel="bookmark" title="16 janvier 2009">Développer une application iPhone &#8211; XCode et Interface Builder passés au crible</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/01/31/1040-hello-cocomo-first-app/" rel="bookmark" title="31 janvier 2009">Hello AFCS ( bye Cocomo ) : première application multi-utilisateurs</a></li>
</ul>
<p><!-- Similar Posts took 14.641 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/01/12/753-developper-une-application-iphone-introduction-aux-concepts-de-base/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

