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 ...
Pourquoi programmer en
natif ?
Accès à toutes les fonctionnalités de
l’iPhone et du iPad
Avoir les meilleures performances...
Les enjeux du natif
Programmation plus bas-niveau
Pas d'équivalent au DOM ou de CSS
Un cycle de développement lourd
Plus p...
Par où commencer?
Le kit de développement pour iOS
- Une suite d’outils : Xcode
- Une bibliothèque : Cocoa Touch
- Un lang...
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, ...
Interface Builder
Un assistant à la création d’interface
utilisateur
Permet d’organiser, de configurer les
éléments visuels...
DEMO
Objective-C
Créé dans les années 80 et popularisé par
la plateforme NeXTstep
Objective-C est un sur-ensemble de ANSI
C ave...
Objective-C : Messages
En Objective-C on n’appelle pas une
méthode, on envoie un message
NSString *string = @"2010";
NSUIn...
Objective-C : Interfaces
Un fichier pour l’interface (.h) ; un fichier
pour l'implantation (.m)
@interface User : NSObject {...
Objective-C : Propriétés
Déclare les variables d’instance
Génère automatiquement les accesseurs
User *user = [[User alloc]...
Objective-C :
Gestion de la mémoire
Semi-automatique sous iOS
Gestion par compteur de référence ; tout
objet maintient un ...
Objective-C :
Gestion de la mémoire
User *user = [[User alloc] init]; // retainCount = 1
user.username = @"Fred";
[user re...
Objective-C : Boucles
Boucles au standard ANSI C
Enumérations rapides
NSArray *array =
[NSArray arrayWithObjects:@"one", @...
La plateforme
Cocoa Touch
Cocoa est un ensemble de bibliothèques
orientés-objet ; la boite à outils du
développeur iOS.
- Foundation, UI...
Cocoa Touch : Design
Patterns
Cocoa Touch implante beaucoup de
« design patterns » connus
3 sont importants :
- Le modèle-...
Cocoa Touch : MVC
Divise le code en fonctions indépendantes
Toutes les applications iOS sont basées
sur ce modèle
- Le mod...
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, UITab...
Cocoa Touch: Délégation
et « target-action »
La délégation permet d’implanter du
comportement sans sous-classer; au
moyen ...
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...
DEMO
Conseils
Bien penser son application avant de
passer à l’implantation
Ne pas sous-estimer le temps de
développement
- en m...
Ressources
Apple Developer Portal
- http://developer.apple.com/
- Cocoa Fundamental Guide
- The Objective-C Programming Gu...
Ressources
Livres
- Learning iPhone Programming
Alasdair Allan, O’Reilly
- iPhone App Development: The Missing
Manual
Crai...
Questions.
Fred Brunel
CTO, WhereCloud.
fred@wherecloud.com
Prochain SlideShare
Chargement dans…5
×

Web-In 2010: Programmation Native iOS (French)

1 101 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 101
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Web-In 2010: Programmation Native iOS (French)

  1. 1. La programmation native sur iOS Fred Brunel CTO, WhereCloud. fred@wherecloud.com
  2. 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. 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. 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. 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. 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. 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
  8. 8. DEMO
  9. 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. 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. 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. 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. 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. 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. 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); }
  16. 16. La plateforme
  17. 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. 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. 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. 20. Cocoa Touch : MVC Contrôleur Vue Modèle Action utilisateur Mise à jour NotifieMise à jour
  21. 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. 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. 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. 24. DEMO
  25. 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. 26. Ressources Apple Developer Portal - http://developer.apple.com/ - Cocoa Fundamental Guide - The Objective-C Programming Guide
  27. 27. Ressources Livres - Learning iPhone Programming Alasdair Allan, O’Reilly - iPhone App Development: The Missing Manual Craig Hockenberry, O’Reilly
  28. 28. Questions. Fred Brunel CTO, WhereCloud. fred@wherecloud.com

×