Web-In 2010: Programmation Native iOS (French)

1,136 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,136
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

×