Vous avez peut-être envie de vous mettre à la programmation iPhone / iPad sans trop savoir par ou commencer ? Je vais par ce tutorial vous amener à un petit projet XCode permettant de compiler une application “from scratch”, qui n’utilise donc pas Interface Builder (aka IB).
Installer xCode
Dans un premier temps vous avez besoin d’installer la dernière version d’XCode. Dans notre exemple nous utilisons XCode 3.2(.2) mais la version 4 ne devrait plus tarder à montrer son nez.
Voici les quelques étapes pour la télécharger :

Sachez que l’archive vous installera en plus d’XCode le minimum pour programmer : compilateurs, programmes de débogage, … Par exemple si vous souhaitez compiler un programme C sous terminal, vous devrez d’abord installer XCode.
Vous pourrez ensuite trouver XCode dans le dossier suivant : “/Developer/Applications/”
Créer un projet iPhone / iPad “from scratch”
Comme dit plus haut, on n’aime pas tellement travailler avec IB (Interface Builder). Ce dernier est utile dans certains cas, mais il est vraiment important de savoir programmer sans. IB a tendance à créer des “boites noires” dans lesquelles vous ne savez pas “exactement” ce qu’il se passe. Sans compter que cela rajoute souvent du code “inutile” même si au final les “pertes” de temps et de mémoire sont minimes. On pourrait aussi partir dans le principe qu’IB peut parfois mieux coder certaines parties qu’un développeur lambda, ce n’est pas faux. Mais là encore cela serait pour des parties “minimes”. Donc au final cela reste une question de choix et de situation. Mais ici on va vous forcer à apprendre à gérer sans ! Ce n’est pas très compliqué, mais il existe quelques “subtilité” à connaître.
Créer le projet XCode
Nous allons faire au plus simple et commencer par créer un projet XCode et non pas le recréer de 0. Cela nous évitera d’aller configurer les préférences du projet ou autre chose obscure, cela serait un peu trop compliqué pour un tutorial “hello world”. Nous nommerons ce projet “ViewBasedAppFromScratch” :
- Ouvrez XCode puis allez dans le menu “File -> New Project”
- Choisissez la colonne “iPhone OS -> Application” et cliquez sur “View-Based Application“. Maintenant que l’iPad est sorti vous pouvez même choisir iPhone, iPad ou Universal. Ici nous prendrons iPad pour ne pas non plus compliquez les tâches avec la gestion du mode iPhone ou iPad via le mode Universal (qui permet de créer une application pour iPhone ET iPad).

En principe si vous appuyez sur le bouton “Build & Run” vous devriez obtenir dans votre simulateur une fenêtre blanche.
Se passer des .xib
Toutefois ce projet contient un “MainWindow.xib” et un “ViewBasedAppFromScratchViewController.xib” qui ont été créé par IB. Notre priorité est donc de les supprimer ! mais une fois ceci fait nous allons devoir procéder à quelques modifications dans le projet :-]
- Supprimez le fichier “MainWindow.xib” et le fichier “ViewBasedAppFromScratchViewController.xib” (clic droit, “Delete” et choisissez l’option “Move to Trash”)
- Allez dans le fichier de configuration du projet en .plist et supprimez la ligne “Main nib file base name – MainWindow”. Ceci permet de dire à XCode de ne pas lancer le fichier MainWindow.xib (qui n’existe plus vu qu’on vient de le supprimer) pour lancer le projet
- Allez dans le fichier “main.m” et remplacez la ligne
int retVal = UIApplicationMain(argc, argv, nil, nil);
par celle-ci :
int retVal = UIApplicationMain(argc, argv, nil, @"ViewBasedAppFromScratchAppDelegate");
ViewBasedAppFromScratchAppDelegate étant le nom du fichier de votre projet.
- Et enfin il suffit de se rendre dans l’AppDelegate (plus précisement ViewBasedAppFromScratchAppDelegate.m) pour procéder à une petite modification. Vu qu’on a supprimé le .xib de la fenêtre principale, il faut la créer en code. Actuellement vous devriez pouvoir trouver cette méthode :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after app launch [window addSubview:viewController.view]; [window makeKeyAndVisible]; return YES; }On commence par rajouter la création de la “window” en rajoutant ces quelques lignes :
self.window = [ [ [ UIWindow alloc ] initWithFrame:[ [ UIScreen mainScreen ] bounds ] ] autorelease ];
Et enfin on rajoute la création du ViewController qui ici se nomme “ViewBasedAppFromScratchViewController” :
viewController = [ [ ViewBasedAppFromScratchViewController alloc ] init ];
Au final la fonction donne ceci :
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Init Window
self.window = [ [ [ UIWindow alloc ] initWithFrame:[ [ UIScreen mainScreen ] bounds ] ]
autorelease
];
// Init View Controller
viewController = [ [ ViewBasedAppFromScratchViewController alloc ] init ];
// Override point for customization after app launch
[ window addSubview:viewController.view ];
[ window makeKeyAndVisible ];
return YES;
}
Maintenant vous devriez pouvoir compiler le projet sans erreur.
Modifier la UIView
Histoire d’être sur que le projet marche bien, nous allons modifier la petite UIView du controller. Rendez-vous dans le UIViewController qui ici se nomme “ViewBasedAppFromScratchViewController.m” et trouvez la méthode suivante :
- (void)viewDidLoad {
[super viewDidLoad];
}
En principe cette dernière devrait être commentée. Décommenter là si c’est le cas. Nous allons juste modifier la couleur de fond en rajoutant une petite ligne. Par défaut une UIView va être créée et vous n’avez donc qu’à y accéder et modifier ses propriétés :
[ self.view setBackgroundColor:[ UIColor purpleColor ] ];
Une fois la ligne rajoutée (en dessous de la méthode “super”), vous devriez obtenir une couleur violette lorsque vous compilez et exécutez le programme en simulateur.
Au final vous devriez donc avoir ceci dans la méthode :
- (void)viewDidLoad {
[ super viewDidLoad ];
[ self.view setBackgroundColor:[ UIColor purpleColor ] ];
}

Codes Sources
Et voici enfin le code source du projet pour vous donner une base dans vos applications sans devoir passer par IB ou utiliser des XIB.
https://geckogeek.fr/static/files/HelloWorldFromScratch-XCode.zip




