SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
La programmation
native sur iOS
Fred Brunel
CTO, WhereCloud.
fred@wherecloud.com
Programme de cet atelier
Pourquoi programmer en natif ?
Les outils autour de la plateforme iOS
Comprendre les concepts et les bases de
la programmation sur la plateforme iOS
Démos
Pourquoi programmer en
natif ?
Accès à toutes les fonctionnalités de
l’iPhone et du iPad
Avoir les meilleures performances
Contrôle du « workflow »
Accès aux dernières innovations d’Apple
Distribution sur l’App Store
Les enjeux du natif
Programmation plus bas-niveau
Pas d'équivalent au DOM ou de CSS
Un cycle de développement lourd
Plus proche d’une application « desktop »
que d’une application web
Android ou Windows Phone 7 ont le même
modèle
Par où commencer?
Le kit de développement pour iOS
- Une suite d’outils : Xcode
- Une bibliothèque : Cocoa Touch
- Un langage : Objective-C
Un compte développeur Apple ($99 par an)
Xcode
Un outil commun au développement Mac
OS X et iOS
Un éditeur de code
Un éditeur de modèle de données
Un compilateur, débogueur, profilage
Un simulateur iPhone & iPad
Interface Builder
Un assistant à la création d’interface
utilisateur
Permet d’organiser, de configurer les
éléments visuels et les lier a « une partie »
de la logique
Equivalent au XAML en .NET ou au Android
XML
DEMO
Objective-C
Créé dans les années 80 et popularisé par
la plateforme NeXTstep
Objective-C est un sur-ensemble de ANSI
C avec une syntaxe dérivée de Smalltalk
Orienté-objet et dynamique
Compilé par GNU C/C++, il est possible de
mélanger C/C++/Objective-C
Objective-C : Messages
En Objective-C on n’appelle pas une
méthode, on envoie un message
NSString *string = @"2010";
NSUInteger length = [string length];
NSMutableArray *array = [[NSMutableArray alloc] init];
[array insertObject:string atIndex:0];
id object = [array objectAtIndex:0];
Objective-C : Interfaces
Un fichier pour l’interface (.h) ; un fichier
pour l'implantation (.m)
@interface User : NSObject {
NSString *username;
NSString *password;
}
@property (nonatomic, retain) NSString *username;
@property (nonatomic, retain) NSString *password;
- (void)doSomething;
@end
@implementation User
@synthesize username, password;
- (void)doSomething {
return;
}
@end
Objective-C : Propriétés
Déclare les variables d’instance
Génère automatiquement les accesseurs
User *user = [[User alloc] init];
user.username = @"Fred";
NSLog(@"%@ %@", user.username, [user username]);
@property (nonatomic, retain) NSString *username;
...
Objective-C :
Gestion de la mémoire
Semi-automatique sous iOS
Gestion par compteur de référence ; tout
objet maintient un compteur !
Le compteur est manipulé par retain, copy
et release
Les propriétés facilitent la gestion
Uniformité dans les bibliothèques
Objective-C :
Gestion de la mémoire
User *user = [[User alloc] init]; // retainCount = 1
user.username = @"Fred";
[user release]; // retainCount = 0
User *user = [[[User alloc] init] autorelease];
user.username = @"Fred";
NSNumber *boolean = [NSNumber numberWithBool:YES];
Objective-C : Boucles
Boucles au standard ANSI C
Enumérations rapides
NSArray *array =
[NSArray arrayWithObjects:@"one", @"two", @"three", nil];
for (NSString *element in array) {
NSLog(@"%@", element);
}
La plateforme
Cocoa Touch
Cocoa est un ensemble de bibliothèques
orientés-objet ; la boite à outils du
développeur iOS.
- Foundation, UIKit, Core Data, Core
Animation, Core Location
Cocoa Touch = Foundation + UIKit
Certaines bibliothèques sont encore en C
Cocoa Touch : Design
Patterns
Cocoa Touch implante beaucoup de
« design patterns » connus
3 sont importants :
- Le modèle-vue-contrôleur (MVC)
- La délégation
- Le « target-action »
Cocoa Touch : MVC
Divise le code en fonctions indépendantes
Toutes les applications iOS sont basées
sur ce modèle
- Le modèle encapsule les données
- Les vues définissent les éléments de
l’interface utilisateur
- La contrôleur est le pont entre le
modèle et les vues ; implante la logique
Cocoa Touch : MVC
Contrôleur
Vue
Modèle
Action utilisateur Mise à jour
NotifieMise à jour
Cocoa Touch : MVC
La plupart des vues et contrôleurs sont
déjà disponibles dans Cocoa Touch
- UIButton, UITextField, UITableView
- UIViewController,
UINavigationController
Les modèles sont généralement des
NSArray ou des objets Core Data
Cocoa Touch: Délégation
et « target-action »
La délégation permet d’implanter du
comportement sans sous-classer; au
moyen de protocoles
- Core Location, UITableViewDelegate
Le « target-action » permet de notifier
d’une action (ex. : button touché) en
envoyant un message à un objet (target)
Créer une application
1. Créer un nouveau projet a partir d’un
patron déjà existant dans Xcode
2. Créer le modèle et contrôleurs
3. Créer les vues dans Interface Builder
4. Lier les vues et les contrôleurs
5. Compiler et débogger !
DEMO
Conseils
Bien penser son application avant de
passer à l’implantation
Ne pas sous-estimer le temps de
développement
- en moyenne ~300 heures
- 10 000 lignes de code
Ressources
Apple Developer Portal
- http://developer.apple.com/
- Cocoa Fundamental Guide
- The Objective-C Programming Guide
Ressources
Livres
- Learning iPhone Programming
Alasdair Allan, O’Reilly
- iPhone App Development: The Missing
Manual
Craig Hockenberry, O’Reilly
Questions.
Fred Brunel
CTO, WhereCloud.
fred@wherecloud.com

Más contenido relacionado

La actualidad más candente

Xcode Server - Jeffrey Macko
Xcode Server - Jeffrey MackoXcode Server - Jeffrey Macko
Xcode Server - Jeffrey MackoCocoaHeads France
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPJean-Marc Fontaine
 
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partieCours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partiekadzaki
 
CocoaHeads Rennes #6
CocoaHeads Rennes #6CocoaHeads Rennes #6
CocoaHeads Rennes #6CocoaHeadsRNS
 
Php mysql cours
Php mysql coursPhp mysql cours
Php mysql courszan
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
 
CocoaHeads Rennes #13 : Magical Record
CocoaHeads Rennes #13 : Magical RecordCocoaHeads Rennes #13 : Magical Record
CocoaHeads Rennes #13 : Magical RecordCocoaHeadsRNS
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à AngularjsRossi Oddet
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partiekadzaki
 
BlaBlaCar - Going Native !
BlaBlaCar - Going Native ! BlaBlaCar - Going Native !
BlaBlaCar - Going Native ! Erwann Robin
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 

La actualidad más candente (17)

Xcode Server - Jeffrey Macko
Xcode Server - Jeffrey MackoXcode Server - Jeffrey Macko
Xcode Server - Jeffrey Macko
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
 
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partieCours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partie
 
CocoaHeads Rennes #6
CocoaHeads Rennes #6CocoaHeads Rennes #6
CocoaHeads Rennes #6
 
Php mysql cours
Php mysql coursPhp mysql cours
Php mysql cours
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
CocoaHeads Rennes #13 : Magical Record
CocoaHeads Rennes #13 : Magical RecordCocoaHeads Rennes #13 : Magical Record
CocoaHeads Rennes #13 : Magical Record
 
Javascript
JavascriptJavascript
Javascript
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
BlaBlaCar - Going Native !
BlaBlaCar - Going Native ! BlaBlaCar - Going Native !
BlaBlaCar - Going Native !
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
mini projet
mini projetmini projet
mini projet
 

Destacado

Abcd storyboard for-apps
Abcd storyboard for-appsAbcd storyboard for-apps
Abcd storyboard for-appsPrashant Gupta
 
iOS App Development with Storyboard
iOS App Development with StoryboardiOS App Development with Storyboard
iOS App Development with StoryboardBabul Mirdha
 
C Plus Plus demo
C Plus Plus demoC Plus Plus demo
C Plus Plus demopadnot
 
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSSoftware architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSJinkyu Kim
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 

Destacado (7)

Abcd storyboard for-apps
Abcd storyboard for-appsAbcd storyboard for-apps
Abcd storyboard for-apps
 
iOS App Development with Storyboard
iOS App Development with StoryboardiOS App Development with Storyboard
iOS App Development with Storyboard
 
C Plus Plus demo
C Plus Plus demoC Plus Plus demo
C Plus Plus demo
 
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSSoftware architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
 
TP C++ : enoncé
TP C++ : enoncéTP C++ : enoncé
TP C++ : enoncé
 
Cours c++
Cours c++Cours c++
Cours c++
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 

Similar a Web-In 2010: Programmation Native iOS (French)

CocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeadsRNS
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Farouk Mezghich
 
L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8Microsoft
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Formation Efficy CRM - Technical training
Formation Efficy CRM - Technical trainingFormation Efficy CRM - Technical training
Formation Efficy CRM - Technical trainingEfficy CRM
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...
Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...
Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...Idean France
 
Introduction au développement Android
Introduction au développement AndroidIntroduction au développement Android
Introduction au développement AndroidSteve Tremblay
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
AOP.pptx
AOP.pptxAOP.pptx
AOP.pptxManalAg
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
react-slides.ppx (2) (1).pptx react presentation basic
react-slides.ppx (2) (1).pptx react presentation basicreact-slides.ppx (2) (1).pptx react presentation basic
react-slides.ppx (2) (1).pptx react presentation basiczineblahib2
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous AndroidAbdelkader Rhouati
 

Similar a Web-In 2010: Programmation Native iOS (French) (20)

Apple : iOS
Apple : iOSApple : iOS
Apple : iOS
 
CocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par Celedev
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)
 
L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8
 
Native script
Native scriptNative script
Native script
 
Introduction à node.js
Introduction à node.js Introduction à node.js
Introduction à node.js
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Formation Efficy CRM - Technical training
Formation Efficy CRM - Technical trainingFormation Efficy CRM - Technical training
Formation Efficy CRM - Technical training
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...
Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...
Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...
 
Introduction au développement Android
Introduction au développement AndroidIntroduction au développement Android
Introduction au développement Android
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
AOP.pptx
AOP.pptxAOP.pptx
AOP.pptx
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
react-slides.ppx (2) (1).pptx react presentation basic
react-slides.ppx (2) (1).pptx react presentation basicreact-slides.ppx (2) (1).pptx react presentation basic
react-slides.ppx (2) (1).pptx react presentation basic
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 

Web-In 2010: Programmation Native iOS (French)

  • 1. La programmation native sur iOS Fred Brunel CTO, WhereCloud. fred@wherecloud.com
  • 2. Programme de cet atelier Pourquoi programmer en natif ? Les outils autour de la plateforme iOS Comprendre les concepts et les bases de la programmation sur la plateforme iOS Démos
  • 3. Pourquoi programmer en natif ? Accès à toutes les fonctionnalités de l’iPhone et du iPad Avoir les meilleures performances Contrôle du « workflow » Accès aux dernières innovations d’Apple Distribution sur l’App Store
  • 4. Les enjeux du natif Programmation plus bas-niveau Pas d'équivalent au DOM ou de CSS Un cycle de développement lourd Plus proche d’une application « desktop » que d’une application web Android ou Windows Phone 7 ont le même modèle
  • 5. Par où commencer? Le kit de développement pour iOS - Une suite d’outils : Xcode - Une bibliothèque : Cocoa Touch - Un langage : Objective-C Un compte développeur Apple ($99 par an)
  • 6. Xcode Un outil commun au développement Mac OS X et iOS Un éditeur de code Un éditeur de modèle de données Un compilateur, débogueur, profilage Un simulateur iPhone & iPad
  • 7. Interface Builder Un assistant à la création d’interface utilisateur Permet d’organiser, de configurer les éléments visuels et les lier a « une partie » de la logique Equivalent au XAML en .NET ou au Android XML
  • 9. Objective-C Créé dans les années 80 et popularisé par la plateforme NeXTstep Objective-C est un sur-ensemble de ANSI C avec une syntaxe dérivée de Smalltalk Orienté-objet et dynamique Compilé par GNU C/C++, il est possible de mélanger C/C++/Objective-C
  • 10. Objective-C : Messages En Objective-C on n’appelle pas une méthode, on envoie un message NSString *string = @"2010"; NSUInteger length = [string length]; NSMutableArray *array = [[NSMutableArray alloc] init]; [array insertObject:string atIndex:0]; id object = [array objectAtIndex:0];
  • 11. Objective-C : Interfaces Un fichier pour l’interface (.h) ; un fichier pour l'implantation (.m) @interface User : NSObject { NSString *username; NSString *password; } @property (nonatomic, retain) NSString *username; @property (nonatomic, retain) NSString *password; - (void)doSomething; @end @implementation User @synthesize username, password; - (void)doSomething { return; } @end
  • 12. Objective-C : Propriétés Déclare les variables d’instance Génère automatiquement les accesseurs User *user = [[User alloc] init]; user.username = @"Fred"; NSLog(@"%@ %@", user.username, [user username]); @property (nonatomic, retain) NSString *username; ...
  • 13. Objective-C : Gestion de la mémoire Semi-automatique sous iOS Gestion par compteur de référence ; tout objet maintient un compteur ! Le compteur est manipulé par retain, copy et release Les propriétés facilitent la gestion Uniformité dans les bibliothèques
  • 14. Objective-C : Gestion de la mémoire User *user = [[User alloc] init]; // retainCount = 1 user.username = @"Fred"; [user release]; // retainCount = 0 User *user = [[[User alloc] init] autorelease]; user.username = @"Fred"; NSNumber *boolean = [NSNumber numberWithBool:YES];
  • 15. Objective-C : Boucles Boucles au standard ANSI C Enumérations rapides NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil]; for (NSString *element in array) { NSLog(@"%@", element); }
  • 17. Cocoa Touch Cocoa est un ensemble de bibliothèques orientés-objet ; la boite à outils du développeur iOS. - Foundation, UIKit, Core Data, Core Animation, Core Location Cocoa Touch = Foundation + UIKit Certaines bibliothèques sont encore en C
  • 18. Cocoa Touch : Design Patterns Cocoa Touch implante beaucoup de « design patterns » connus 3 sont importants : - Le modèle-vue-contrôleur (MVC) - La délégation - Le « target-action »
  • 19. Cocoa Touch : MVC Divise le code en fonctions indépendantes Toutes les applications iOS sont basées sur ce modèle - Le modèle encapsule les données - Les vues définissent les éléments de l’interface utilisateur - La contrôleur est le pont entre le modèle et les vues ; implante la logique
  • 20. Cocoa Touch : MVC Contrôleur Vue Modèle Action utilisateur Mise à jour NotifieMise à jour
  • 21. Cocoa Touch : MVC La plupart des vues et contrôleurs sont déjà disponibles dans Cocoa Touch - UIButton, UITextField, UITableView - UIViewController, UINavigationController Les modèles sont généralement des NSArray ou des objets Core Data
  • 22. Cocoa Touch: Délégation et « target-action » La délégation permet d’implanter du comportement sans sous-classer; au moyen de protocoles - Core Location, UITableViewDelegate Le « target-action » permet de notifier d’une action (ex. : button touché) en envoyant un message à un objet (target)
  • 23. Créer une application 1. Créer un nouveau projet a partir d’un patron déjà existant dans Xcode 2. Créer le modèle et contrôleurs 3. Créer les vues dans Interface Builder 4. Lier les vues et les contrôleurs 5. Compiler et débogger !
  • 24. DEMO
  • 25. Conseils Bien penser son application avant de passer à l’implantation Ne pas sous-estimer le temps de développement - en moyenne ~300 heures - 10 000 lignes de code
  • 26. Ressources Apple Developer Portal - http://developer.apple.com/ - Cocoa Fundamental Guide - The Objective-C Programming Guide
  • 27. Ressources Livres - Learning iPhone Programming Alasdair Allan, O’Reilly - iPhone App Development: The Missing Manual Craig Hockenberry, O’Reilly