Développer pour l

Développer pour l'iPhone et l'iPad

-

Livres
416 pages

Description

Ce livre s'adresse à tous les développeurs qui souhaitent se lancer ou se perfectionner dans la création d'applications pour les périphériques tactiles Apple et leur mise en ligne sur la plate-forme de téléchargement App Store.
Il est conçu pour couvrir, de manière unifiée et progressive, l'ensemble du cycle de développement et expliquer les notions qui sont spécifiques à cette plate-forme. Il permettra de construire avec rigueur et élégance des « applis » pour tous les terminaux de la famille iPhone/iPad. Les fonctions mises en valeur et les exemples abordés suivent les préconisations et les modèles de programmation des ingénieurs Apple.
Le lecteur dispose ainsi de bases solides pour répondre aux exigences de qualité et de distribution. Cet ouvrage couvre les API des versions 3.1 et 3.2 du SDK avec, en particulier, les nouvelles classes de reconnaissance gestuelle (UIGestureRecognizer), les contrôleurs de vue pour l'iPad (popover et splitview), le support de la réalité augmentée, et beaucoup d’autres nouveautés qui multiplient les possibilités de l’iPhone et de l’iPad. 
Étienne Vautherin a travaillé pendant douze années au support technique et au marketing technologique d'Apple auprès des développeurs. Il travaille aujourd'hui au sein des Orange Labs.

Sujets

Informations

Publié par
Date de parution 12 mai 2010
Nombre de lectures 40
EAN13 9782100552795
Licence : Tous droits réservés
Langue Français

Informations légales : prix de location à la page €. Cette information est donnée uniquement à titre indicatif conformément à la législation en vigueur.

Signaler un problème
Table
des
matières
Avantpropos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Première partie – Pour commencer...
. . . . . . . . . . . . .
Chapitre 1 – Ce qu’il faut savoir sur le SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
1.2
1.3
1.4
1.5
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Création d’un certificat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Profils de provisionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accompagnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Architecture d’iPhone OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 2 – Les outils de développement sur iPhone OS. . . . . . . . . . . . . . . . . . . . . . .
2.1
2.2
2.3
2.4
2.5
Installation des outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Xcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le simulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interface Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Par où commencer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XI
3
3
5
8
9
10
13
13
15
33
35
47
94
93
79
3.16 Autolibération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 4 – Cocoa Foundation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 3 – ObjectiveC et NSObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5
3.6
3.9
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10 Plus loin avec ObjectiveC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7
3.8
3.2 3.3
3.4
3.1
NSRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entête et implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
67
53
Développer pour l’iPhone et l’iPad
72
3.12 Comptage de références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3
Les objets de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NSInteger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.17 Fabrique d’instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.14 Libération d’un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.15 Initialiseur désigné . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13 Initialisation d’un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.18 Accesseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.19 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
77
74
76
VI
93
66
61
Classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
94
94
NSUInteger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55 56
53
Mutabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Deuxième partie – Les fondations
ObjectiveC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Types de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objets et hiérarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
70
3.11 NSObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
Catégorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1
4.2
96
NSValue, NSNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
95
83
80
4.6
4.5
Collection, énumération rapide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7
4.4
Les fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
145
Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
NSMutableSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9
MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1
Les exécutions parallèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5
5.4
5.3
Bonjour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5
6.3
6.4
6.2
100
VII
167
149
156
164
145
Troisième partie – Les rouages
98
Le réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8
5.7
4.15 NSDictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.10 NSArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13 NSMutableString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102
109
112
118
5.6
131
Exemple autour des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
128
Délégation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
Singleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
126
129
123
La mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 6 – Le système d’exploitation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Source de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Key Value Observing (KVO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Key Value Coding (KVC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8
4.14 NSAttributedString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table des matières
104
103
4.11 NSMutableArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NSSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
115
Chapitre 5 – Modèles de programmation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
115
111
109
109
4.12 NSString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.16 NSMutableDictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.17 NSData, NSMutableData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1
240
UITouch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hiérarchie de localisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NSBundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le cycle de vie d’une application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Archivage des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un peu de géométrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.9
Chapitre 9 – L’alphabet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3
9.1
Des images dans les vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2
9.4
198
198
202
197
Fichier .plist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
192
Manipulation du XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
175
192
189
175
Quatrième partie – Le langage des signes
9.5
197
Chapitre 8 – À l’intérieur d’une application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
176
UIResponder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8
9.6
10.1 UIGestureRecognizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7
UIViewController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UIView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
228
222
Internationalisation de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Localisation des ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2
203
8.4
244
24 3
226
227
Core Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 10 – Le vocabulaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déplacement avec le doigt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
219
. . .
219
UIWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 7 – Le stockage des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2
8.3
8.1
Fichier .nib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Développer pour l’iPhone et l’iPad
Core Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
237
240
8.6
234
8.7
205
Bundle applicatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.5
7.4
7.5
212
7.3
VIII
7.1
Table des matières
10.2 Saisie de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3 UIControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4 Boutons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5 UISwitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.6 UISegmentedControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.7 UIPageControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.8 UISlider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.9 UIDatePicker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.10 UITextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.11 Barre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.12 Vues spécialisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.13 Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.14 UISearchBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.15 Annuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
Chapitre 11 – La grammaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1 Règles de navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Défilement du contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3 Superposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.4 Enchainement modal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.5 Segmentation parallèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.6 Navigation hiérarchique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.7 Juxtaposition de vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cinquième partie – Les possibilités
Chapitre 12 – Quel est cet appareil ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1 Informations sur le système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Gestion de la batterie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.3 Je suis un iPod ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4 Je suis un iPod vidéo ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.5 Ajouter des photos ou des vidéos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IX
244
247
248
249
250
251
252
252
253
254
256
259
268
268
2 71
271
272
276
278
283
287
293
297 297 300 301 307 308
X
Développer pour l’iPhone et l’iPad
Chapitre 13 – Solution à la carte. . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . .
13.1 L’approche d’assemblage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2 Les préférences de l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3 Copier/coller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.4 Communications interapplications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.5 Interactions avec les documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 14 – Garder le contact. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . .
14.1 Carnet d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2 Composeur de courrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3 GameKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.4 Push Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 15 – Un petit geste sur la planète Terre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.1 L’accéléromètre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2 Core Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.3 MapKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.4 Réalité augmentée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 16 – De Vinci, champion de l’App Store. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.1 Les règles de l’App Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2 iTunes Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3 Quel prix pour La Joconde ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4 Think different . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AN N E X E S
Annexe A – Notions essentielles de programmation objet. . . . . . . . . . . . . . . . . . . . . .
Annexe B – Mettre au point une application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
311
311
312
317
324
326
329
329
331 333
339
347
347 354
359
364
367 367
369
373
376
381
389
397
Avant-propos
L’ouvrage que vous tenez entre les mains représente un instantané de l’évol ution du SDK que propose Apple pour développer des applications pour iPh one et iPad. Afin de suivre les nouveautés qui apparaissent depuis la parution, le conte nu de l’ouvrage est complété par le site :
http://alltouches.com
Ce site contient : des mises à jour ou des précisions pour les informations décrites dans cet ouvrage ; des projets correspondant aux quelques exemples qui ne proviennent pas du SDK d’Apple ; un accès direct aux éléments référencés par une séquence de la forme [i j]. La référence à ces éléments est actualisée régulièrement.
D’autre part, les quelques centaines de pages qui suivent sont bien insuffisant es pour traiter un sujet aussi vaste et passionnant que la création d’application s pour iPhone OS ! Il a fallu faire des choix parfois douloureux : laisser de côté des i dées, des plans, des schémas, des lignes déjà écrites, n’est jamai s facile. Cette sélection est pourtant indispensable. Au cours d’un entretien avec un jour naliste qui lui demandait de quel produit il était le plus fier, Steve Jobs a eu cette réponse inattendue mai s tellement juste : « En fait, je suis surtout fier d’avoir pu éviter de sortir ce rtains produits ! ». Les thèmes développés essaient donc de donner l’essentiel et sur tout les bonnes bases pour pouvoir aborder ensuite n’importe quel autre do maine.
L’ouvrage est ainsi organisé en cinq grandes parties : La première décrit l’installation du SDK et les outils disponibles. entaux.La deuxième détaille les briques de base et les assemblages fondam La troisième explore les rouages du fonctionnement d’iPhone OS. La quatrième définit les éléments de l’interface utilisateur. La cinquième parcourt les différentes possibilités access ibles par un périphérique tactile.
XII
Développer pour l’iPhone et l’iPad
La lecture séquentielle de ces parties est conseillée pour a cquérir progressivement les connaissances nécessaires. Cependant, certains éléments peuvent être survolés en première lecture et approfondis, si besoin, dans un second temps. Enfin, deux annexes avec des contenus transversaux complètent le parcours général : L’annexe A explique les notions essentielles de la programmation ob jet. L’annexe B donne des conseils pour la mise au point des applicati ons.
Nous souhaitons qu’en explorant tous ces chapitres, le lecte ur rencontre autant de plaisir que nous à pouvoir donner vie à ses idées sur les écrans tacti les d’Apple !
Remerciements
Mes tous premiers remerciements vont bien évidemment à mes a mis JeanLuc Deleage et Laurent Ricard dont les noms mériteraient de figurer en couverture. JeanLuc, dont les compétences s’étendent des technologies Apple en pass ant par Java et XML, avait envisagé que nous collaborions un jour aut our d’un livre abordant XSLT... L’opportunité de faire appel à ses grands talents de rédacteur d idactique pour présenter des fonctions de l’iPhone et de l’iPad s’est prése ntée avant ! JeanLuc nous explique notamment comment mettre en œuvre Bonjour, l’internationalisa tion des textes, l’annulation, les fonctions audio et vidéo, le copier/coller, la fonctionopenUrl et le chapitre 14. Il y a maintenant un certain nombre d’années que j’avais pu apprécier les gr andes qualités de Laurent en tant que développeur mettant en œuvre les technologies Apple. Ce travail commun sur le présent ouvrage m’a révélé d’autres t raits de sa personnalité tout aussi appréciables, au travers de sa plume et de son humour. Laurent nous fait partager, entre autres choses, sa vision des Préférences Utilisateur et la qu asitotalité du chapitre 15 avec l’accéléromètre, la géolocalisation et le Map Ki t. Je remercie également Dominique Bultez dont les nombreux encouragements , les précieux conseils et la relecture attentive m’ont permis de mener à bien cette entreprise un peu folle... Je dois aussi une grande reconnaissance à l’équipe de Dunod : JeanLuc, Lae titia et Florian. Grâce à leur admirable patience, ils ont su brillamment sur monter mes nombreux retards au cours de ce projet ! Enfin, comment ne pas décerner la palme spéciale du mérite à mo n épouse et à nos enfants : ils m’ont vu disparaître de si longues heures derriè re mon écran ! J’espère que la parution de cet ouvrage permettra maintenant de vivre de p assionnantes aventures pour toute la famille...