Créez votre première application iPhone
Créons maintenant une application à vue simple (une application vide) qui s'exécute sur le simulateur iOS.
Les étapes sont les suivantes :
1. Ouvrez Xcode et sélectionnez Créer un nouveau projet Xcode.

2. Sélectionnez ensuite Application à vue unique.

3. Ensuite, saisissez le nom du produit (le nom de l'application), le nom de l'organisation et l'identifiant de l'entreprise.

4. Assurez-vous que le comptage automatique de références est sélectionné pour libérer automatiquement les ressources qui sortent de la portée. Cliquez sur Suivant.
5. Sélectionnez le répertoire du projet et cliquez sur Créer.

6. Vous verrez une page comme indiqué ci-dessous.

En haut de l'écran, vous pouvez définir l'orientation, la compilation et la publication. Il y a une cible de déploiement ; l'appareil prend en charge une cible de déploiement de version 4.3 et supérieure. Ces éléments ne sont pas obligatoires. Pour l'instant, concentrez-vous simplement sur l'exécution de l'application.
7. Sélectionnez Simulateur iPhone dans le menu déroulant et exécutez.

8. Si la première application s'exécute avec succès, vous obtiendrez le résultat comme indiqué ci-dessous.

Modifiez la couleur d'arrière-plan pour commencer à utiliser Interface Builder. Sélectionnez ViewController.xib. Sélectionnez l'option Arrière-plan à droite, modifiez la couleur, puis exécutez.

Dans le projet ci-dessus, par défaut, la cible de déploiement est définie sur iOS 6.0 et Auto Layout est activé.
Pour garantir que l'application s'exécute correctement sur les appareils iOS 4.3, nous avons déjà modifié la cible de déploiement lorsque nous avons commencé à créer l'application, mais nous n'avons pas désactivé Auto Layout. Pour désactiver Auto Layout, nous devons décocher la case Auto Layout dans l'inspecteur de fichier pour chaque nib, c'est-à-dire le fichier xib.
Les différentes parties de l'IDE de projet Xcode sont présentées ci-dessous (Documentation utilisateur d'Apple Xcode 4).

Dans la barre de sélection des inspecteurs illustrée ci-dessus, vous pouvez trouver l'inspecteur de fichier et décocher Auto Layout. Vous pouvez utiliser Auto Layout lorsque votre cible de déploiement est uniquement constituée d'appareils iOS 6.0.
Bien sûr, vous pouvez également utiliser de nouvelles fonctionnalités, telles que Passbook, lorsque vous ciblez iOS 6. Pour l'instant, utilisez iOS 4.3 comme cible de déploiement.
Plongée en profondeur dans le code de votre première application iOS
L'application est générée à partir de 5 fichiers différents, comme indiqué ci-dessous.- AppDelegate.h
- AppDelegate.m
- ViewController.h
- ViewController.m
- ViewController.xib
Nous utilisons des commentaires sur une seule ligne (//) pour expliquer le code simple. Le code important du projet est expliqué sous le code.
AppDelegate.h
// Header File that provides all UI related items. #import <UIKit/UIKit.h> // Forward declaration (Used when class will be defined /imported in future) @class ViewController; // Interface for Appdelegate @interface AppDelegate : UIResponder <UIApplicationDelegate> // Property window @property (strong, nonatomic) UIWindow *window; // Property Viewcontroller @property (strong, nonatomic) ViewController *viewController; //this marks end of interface @end
Explication de code
- AppDelegate appelle UIResponder pour gérer les événements iOS.
- Implémente les commandes de UIApplication, fournissant des événements clés de l'application tels que lancement terminé, terminaison, etc.
- Sur l'écran de l'appareil iOS, les objets UIWindow sont utilisés pour gérer et coordonner diverses vues. C'est comme une vue de base pour les autres vues chargées. Généralement, une application n'a qu'une seule fenêtre.
- UIViewController gère le flux des écrans.
AppDelegate.m
// Imports the class Appdelegate's interface
import "AppDelegate.h"
// Imports the viewcontroller to be loaded
#import "ViewController.h"
// Class definition starts here
@implementation AppDelegate
// Following method intimates us the application launched successfully
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:
[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc]
initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
/* Sent when the application is about to move from active to inactive state.
This can occur for certain types of temporary interruptions
(such as an incoming phone call or SMS message)
or when the user quits the application and it begins the transition to the
background state. Use this method to pause ongoing tasks, disable timers,
and throttle down OpenGL ES frame rates. Games should use this method
to pause the game.*/
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
/* Use this method to release shared resources, save user data, invalidate
timers, and store enough application state information to restore your
application to its current state in case it is terminated later. If your
application supports background execution, this method is called instead
of applicationWillTerminate: when the user quits.*/
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
/* Called as part of the transition from the background to the inactive state;
here you can undo many of the changes made on entering the background.*/
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
/* Restart any tasks that were paused (or not yet started) while the
application was inactive. If the application was previously in the background,
optionally refresh the user interface.*/
}
- (void)applicationWillTerminate:(UIApplication *)application
{
/* Called when the application is about to terminate. Save data if appropriate.
See also applicationDidEnterBackground:. */
}
@end
Explication de code
- Ici, UIApplication est défini. Toutes les méthodes définies ci-dessus sont appelées par l'interface utilisateur de l'application et ne contiennent aucune méthode définie par l'utilisateur.
- Un objet UIWindow est alloué pour contenir les objets alloués de l'application.
- UIController sert de contrôleur de vue initial pour la fenêtre.
- L'appel de makeKeyAndVisible rend la fenêtre visible.
ViewController.h
#import // Interface for class ViewController @interface ViewController : UIViewController @end
Explication de code
- La classe ViewController hérite de UIViewController, fournissant le modèle de gestion de vue de base pour les applications iOS.
ViewController.m
#import "ViewController.h"
// Category, an extension of ViewController class
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Explication de code
- Ici, deux méthodes définies dans la classe de base de la classe UIViewController sont implémentées.
- Après le chargement de la vue initiale, viewDidLoad est appelé pour effectuer la configuration.
- En cas d’avertissement mémoire, didReceviveMemoryWarning est appelée.