2
Laurent Meurisse•Conception et la validation d’une application iPhonepour une grande entreprise•Dev d’une application traf...
ekito /offre mobilité★ Accompagnement dans toutes les phases des  projets  ➡ Définition de stratégie et spécifications  ➡ ...
ekito /Projets d’entreprise★ Application iPad pour un grand acteur de  l’aéronautique  ➡ Consultation de documents marketi...
ekito /Projets grand public★ « Smartsy » (iPhone, iPad & Android)  ➡ Applications réalité augmentée pour    consulter du c...
Partage de laconnaissance  Toulouse 8 mars 2012 – ARC et Storyboards                                              7
➡ introduction                 8
que me faut til pour                      démarrer ?➡ licence développeur➡ un iPhone ou iPad➡ un Mac➡ La dernière version ...
quest ce que je dois                     savoir faire ?➡ être habile en  design IHM➡ avoir des bonnes  idées➡ avoir quelqu...
partie 1succès d’iOS➡ iOS➡ excellence  ergonomique➡ App Store                11
partie 1➡iOS           12
13
★ Système d’exploitation de l’iPhone/iPod  Touch/iPad★ Basé sur Mac OS X★ Offre de nombreuses possibilités  d’applications...
★ Architecture iOS                          Cocoa Touch             appareil photo             localisation        Multi-t...
ça à lair trèscompliqué !!!                  16
partieergonomique            1➡excellence                    17
➡ le doigt est roi                     18
le doigt est roi★ iOS est déployé sur  des plateformes  tactiles.  ➡ De nombreuses   possibilités de gestes.  ➡ Une applic...
le doigt est roi★ L’iOS est une rupture  par rapport aux  modèles  ergonomiques  traditionnels                          20
➡ patterns utilisateur                         21
★ Qu’est ce qu’un pattern utilisateur ?  ➡ ex. : Possibilité de naviguer dans une    structure hiérarchique, en revenant a...
➡ les principaux éléments                            23
Navigation par onglet                        24
Les listes             25
La navigation entre vues                           26
...      h,p://p,rns.com/                     27
➡ La règle des 44 pixels                           28
La règle des 44 pixels                         29
➡ la gestuelle                 30
31
➡ Native ou WebApp ?                       32
★ Application native  ➡ Application conçue spécifiquement pour une    plateforme en utilisant le SDK propre à celle ci.★ W...
WebApp                   Quels sont les                    avantages ?➡ Indépendance à Apple.➡ Indépendance à la  platefor...
WebApp                      Quels sont les                     inconvéniants ?➡ Moins de visibilité.➡ Difficile à monnayer...
iOS Human interfaceGuidelinehttp://developer.apple.com/library/IOS/documentation/UserExperience/Conceptual/MobileHIG/Mobil...
Quelques principes debase  ➡ Minimiser la quantité d’information.  ➡ Respecter la fluidité de l’appareil.  ➡ Ne pas offrir...
➡ Respecter les gestes de bases.➡ utiliser des gestes compliqués comme  «raccourcis», mais en permettant  d’effectuer l’ac...
partie Certificat, Profile            1➡Programme,                             39
40
iOS Programmes★ iOS developer program (99$)    • 100 devices (dev, tests)  ➡ individuelle    • nom de la personne sur l’Ap...
iOS Programmes★ iOS enterprise program (299 $)  ➡ inHouse deployment  ➡ Mobile Device Management    • gestion de la flote ...
Certificats★ Certificats  ➡ Certificat développeur    • unique pour chaque développeur    • lié à une machine  ➡ Certifica...
Profiles★ Profile de développement  ➡ lié à l’appli (AppId)  ➡ lié à un certif de dev (pour chaque dév)  ➡ lié aux devices...
➡ publication                45
AppStore ➡ Il y a t’il de la place par rapport à mon   application? ➡ quel prix pour les applications   concurrentes ? ➡ V...
sur l’AppStore★ Pour publier son application, trois  étapes :  ➡ Rédaction des détails de l’application.  ➡ Upload de l’ex...
★ Attention, respecter les Guideline Apple★ De nombreuses règles sont à respecter pour qu’une  application soit validée pa...
➡ beta testing                 49
Tester★ Audience / Logging  ➡ Flurry  ➡ TestFlyApp    • Session    • Questions in-App    • Crash reports    • Checkpoints ...
pour tester★ Autre solution pour distribuer une application  iOS, la distribution Ad Hoc.  ➡ Échelle réduite (maximum 100 ...
➡ MDM        52
53
54
55
56
➡ iTunes Connect                   57
58
partie 2développer➡ Concevoir➡ L’environnement  de developpement➡ Bases de l’objective-C➡ Les nouveautes d’iOS 5          ...
partie 2➡concevoir             60
je vais devoir tailler mon         crayon !!                         h,p://iphonemockup.lkmc.ch                           ...
62
Quelques Mockup★ balsamiq★ omniGraffle★ Adobe Illustrator★ le post it iphone                      63
➡ développement agile                        64
Développements Agiles ➡ deux tendances à connaitre   • lean startup   • scrum                                65
lean startup               66
Développements Agiles ➡ ne pas surdimentioner la richesse de   l’application (priorisation par la valeur),   faire des use...
scrum          USE         STO R            RY  USE STO R    RY                 68
Je me connecte via le n° FlyingBlueJe consulte la liste de mes réservations        Je consulte le détail dune réservationJ...
13        quelle est        sa valeur         métier? USESTO R   RY        pour quel         effort à         fournir?    ...
144 89    Je consulte le détail dune réservation                89 144   Jenregistre une réservation (carte dembarquement)...
SPRINT 1                            SPRINT 2                         DEMO SPRINT 1                 TESTS                  ...
partie 2 C➡base de l’Objective                       73
➡ écrire une classe, une méthode, un protocol                                          74
écrire une classe    ➡ interface                      ➡ implémentation#import <Foundation/Foundation.h>   #import "Voiture...
écrire une classe                    76
écrire une méthode        -(int)multiply:(int)a to:(int)b        {            return a*b;        }        -(int)square:(in...
écrire un protocol    #import <Foundation/Foundation.h>    @protocol Vehicule <NSObject>    @optional    -(void)klaxonner;...
réaliser un protocol                                             #import "Voiture.h"                                      ...
➡ Cocoa Fondation                    80
Cocoa Fondation ➡ Framework de base pour le développement   Mac OS X et iOS. ➡ Importation dans un projet :            #im...
Cocoa Foundation★ Objets de base :  ➡ NSString : Chaîne de caractères.  ➡ NSArray : Tableau non modifiable.  ➡ NSDictionna...
➡ gestion de la mémoire                          83
★ Destruction d’un objet :  ➡ L’objet créé peut être détruit de deux    façons différentes.  ➡ Autolibération : La libérat...
Allocation, destruction,autolibération★ Par défaut, l’utilisateur doit s’occuper de la  libération des objets qu’il alloue...
Variable d’instance★ Prototypage des variables d’instance :  ➡ Ajoute une couche d’abstraction pour la   gestion de la mém...
retain, assign➡retain;➡assign :                 87
★ La règle du comptage par référence est la  suivante :  ➡ On incrémente le compteur lorsque l’on fait appel aux    méthod...
➡ UIKit          89
UIKit ➡ Framework supplémentaire pour le   développement iOS. Ajoute les fonctions   nécessaires pour l’interaction tactil...
UIButton           91
➡ Connections Synchrone et Asynchrone                                        92
★ Requête synchrone ➡ application en attente du résultat ➡ application non réactive, figée  urlString = [NSString stringWi...
★ Requête asynchrone   - (void)viewDidLoad {        [super viewDidLoad];     !  // Effectuer la requête dans un autre thre...
➡ notifications Push                       95
notification Push ➡ Il permet   d’afficher des   badges, alertes   et sons sans   que   l’application ne   tourne ➡ Il ne ...
➡ Cartographie et géolocalisation                                    97
★ Pouvoir localiser sa position et son  orientation sur une carte nécessite  l’utilisation de deux frameworks :  ➡ CoreLoc...
CoreLocation★ Framework pour gérer la localisation et l’orientation.  ➡ CLLocation  ➡ CLLocationManager★ Pas d’interface u...
CLLocationManagerDelegate★   // Répond aux changements de position      - (void)locationManager:(CLLocationManager *)manag...
➡ pattern delegate                     101
102
delegation             103
➡ développement serveur                          104
exemple de pland’architecture global        5    notification                      serveur BACKEND                         ...
partie 2 de➡L’environnement    développement XCode                          106
Paramètres	  de	  compilaBon    Projet                                 107
108
partie d’iOS 5            2➡Nouveautés                 109
Nouveautés iOS 5★ ARC★ Storyboards★ UIKit Customization★ iCloud★ Twitter Integration★ Nombreux changements dans les APIs  ...
ARC(Automatic Reference Counting) ➡ ARC soccupe des libérations mémoire à   la place du développeur, plus de gestion   man...
StoryBoards              112
UIKit Customization ➡ Pour sortir du lot, une application, en plus dêtre   fonctionnelle, doit avoir un design attrayant. ...
partie 3pratique➡ Hello World                114
code de l’appli                                                               h,p://db.,/pbEhiPro    basé sur le tutoriel ...
"Introduction aux Developements iOS" in Three hours
Prochain SlideShare
Chargement dans…5
×

"Introduction aux Developements iOS" in Three hours

1 389 vues

Publié le

Après le succès de la première séance, je présente avec Mélanie Bessagnet (@mbessagnet) pour la deuxième fois la session "Introduction au développement iOS" organisée par iConcept à Toulouse et ekito.

La présentation permettra en 3 heures d'aborder de nombreux thèmes, aussi bien pratiques que techniques sur le développement d'application iOS (iPhone et iPad). Elle est destinée à la fois aux néophytes, mais aussi aux développeurs (java, web, php) ... car une séance de 45 minutes sera du code pure (et donc du pure bonheur ;).

Voici le programme :

Succès d'IOS

iOS
l'excellence Ergonomique
App Store (en quoi consiste la publication sur l'app store ? nous expliquerons aussi en détail les différentes licences développeurs)
Développer

Concevoir (avec Story Boarding)
Profiles et Certificats
Beta Testing
MDM (nous expliquerons comment est géré une flotte de terminaux (iPhone, iPad) gràce au Mobile Device Management)
Coder

L'environnement de développement XCode
Objective-C en 15 minutes
Les nouveautés du SDK iOS 5 (ARC, iCloud, Apparearence, ...)
Coding (Pratique)

il s'agit de coder une première (petite) application. Le code de l'application sera disponible en début de séance.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

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

Aucune remarque pour cette diapositive

"Introduction aux Developements iOS" in Three hours

  1. 1. 2
  2. 2. Laurent Meurisse•Conception et la validation d’une application iPhonepour une grande entreprise•Dev d’une application trafficWave•Coaching agile (entreprise & mobile)twitter @laurentmeurisseMélanie BessagnetConception et développement d’applications iPhone ou iPad.Smartsy, FidelPass, L’Oréal.twitter @mbessagnet 3
  3. 3. ekito /offre mobilité★ Accompagnement dans toutes les phases des projets ➡ Définition de stratégie et spécifications ➡ Ergonomie & design ➡ Architecture & développement ➡ Distribution★ Multi plateforme ➡ iOS (iPhone & iPad), Android, Windows Phone, web mobile★ Intégration dans l’entreprise ➡ Sécurité, gestion de flotte, intégration SI 4
  4. 4. ekito /Projets d’entreprise★ Application iPad pour un grand acteur de l’aéronautique ➡ Consultation de documents marketing pour les visiteurs de salons ➡ Conseils, conception & développement★ Application iPad pour un opérateur téléphonique ➡ Le management avait besoin d’un « dashboard » pour consulter l’état du réseau avec +80.000 antennes ➡ Conseils, conception, ergonomie/design & développement 5
  5. 5. ekito /Projets grand public★ « Smartsy » (iPhone, iPad & Android) ➡ Applications réalité augmentée pour consulter du contenu multimédia en accompagnement de support physique ➡ Reconnaissance d’images, site web, API ➡ Distribution dans l’App Store d’Apple et le Market de Google★ « Fidelpass » (iPhone) ➡ Solution de carte de fidélité virtuelle pour smartphone ➡ Mode déconnecté, génération de codes 6
  6. 6. Partage de laconnaissance Toulouse 8 mars 2012 – ARC et Storyboards 7
  7. 7. ➡ introduction 8
  8. 8. que me faut til pour démarrer ?➡ licence développeur➡ un iPhone ou iPad➡ un Mac➡ La dernière version du SDK 9
  9. 9. quest ce que je dois savoir faire ?➡ être habile en design IHM➡ avoir des bonnes idées➡ avoir quelques soirées de disponibles➡ constituer une communauté d’early adopters 10
  10. 10. partie 1succès d’iOS➡ iOS➡ excellence ergonomique➡ App Store 11
  11. 11. partie 1➡iOS 12
  12. 12. 13
  13. 13. ★ Système d’exploitation de l’iPhone/iPod Touch/iPad★ Basé sur Mac OS X★ Offre de nombreuses possibilités d’applications★ Nécessite aucune notion préalable du développement Mac OS X 14
  14. 14. ★ Architecture iOS Cocoa Touch appareil photo localisation Multi-touch Webkit accéléomètre Media layer Video Quartz Core Audio JPEG/PNG... PDF Core Services SQLite threading file system preference Collection Core Location Carnet dadresse Core OS power OSX kernel réseau management baseBand bootLoader firmware 15
  15. 15. ça à lair trèscompliqué !!! 16
  16. 16. partieergonomique 1➡excellence 17
  17. 17. ➡ le doigt est roi 18
  18. 18. le doigt est roi★ iOS est déployé sur des plateformes tactiles. ➡ De nombreuses possibilités de gestes. ➡ Une application trop complexe n’est pas utilisable ➡ L’ergonomie doit être l’une des préoccupations principales. 19
  19. 19. le doigt est roi★ L’iOS est une rupture par rapport aux modèles ergonomiques traditionnels 20
  20. 20. ➡ patterns utilisateur 21
  21. 21. ★ Qu’est ce qu’un pattern utilisateur ? ➡ ex. : Possibilité de naviguer dans une structure hiérarchique, en revenant au départ facilement ➡ ex. : possibilité de naviguer entre différentes partie sans perdre le focus 22
  22. 22. ➡ les principaux éléments 23
  23. 23. Navigation par onglet 24
  24. 24. Les listes 25
  25. 25. La navigation entre vues 26
  26. 26. ... h,p://p,rns.com/ 27
  27. 27. ➡ La règle des 44 pixels 28
  28. 28. La règle des 44 pixels 29
  29. 29. ➡ la gestuelle 30
  30. 30. 31
  31. 31. ➡ Native ou WebApp ? 32
  32. 32. ★ Application native ➡ Application conçue spécifiquement pour une plateforme en utilisant le SDK propre à celle ci.★ Web app ➡ Application réalisée via un site Web optimisé pour mobile 33
  33. 33. WebApp Quels sont les avantages ?➡ Indépendance à Apple.➡ Indépendance à la plateforme.➡ Mise à jour facilitée.➡ Coût de développement.➡ Transaction e- commerce 34
  34. 34. WebApp Quels sont les inconvéniants ?➡ Moins de visibilité.➡ Difficile à monnayer.➡ Dépendance à la connectivité.➡ Expérience utilisateur.➡ Consommation des ressources. 35
  35. 35. iOS Human interfaceGuidelinehttp://developer.apple.com/library/IOS/documentation/UserExperience/Conceptual/MobileHIG/MobileHIG.pdf 36
  36. 36. Quelques principes debase ➡ Minimiser la quantité d’information. ➡ Respecter la fluidité de l’appareil. ➡ Ne pas offrir trop de réglages à l’utilisateur. ➡ Demander de sauvegarder seulement quand c’est nécessaire ➡ Eviter les écrans «modals». ➡ Démarrer rapidement★ Toujours faire au plus simple ! 37
  37. 37. ➡ Respecter les gestes de bases.➡ utiliser des gestes compliqués comme «raccourcis», mais en permettant d’effectuer l’action autrement.➡ sur iPad, possibilité d’utiliser plusieurs doigts➡ en général éviter de définir des nouveaux gestes 38
  38. 38. partie Certificat, Profile 1➡Programme, 39
  39. 39. 40
  40. 40. iOS Programmes★ iOS developer program (99$) • 100 devices (dev, tests) ➡ individuelle • nom de la personne sur l’AppStore • un seul développeur ➡ Company • nom de l’entreprise (justification nécessaire) • nombre illimité de développeurs • 3 rôles (agent, admin, member) ➡ attention on ne peut pas basculer d’une option à l’autre 41
  41. 41. iOS Programmes★ iOS enterprise program (299 $) ➡ inHouse deployment ➡ Mobile Device Management • gestion de la flote des devices iOS ➡ impossibilité de déployer sur l’AppStore 42
  42. 42. Certificats★ Certificats ➡ Certificat développeur • unique pour chaque développeur • lié à une machine ➡ Certificat de distribution • un seul par programme 43
  43. 43. Profiles★ Profile de développement ➡ lié à l’appli (AppId) ➡ lié à un certif de dev (pour chaque dév) ➡ lié aux devices ➡ un seul par développeur★ Profile de distribution ➡ lié à l’appli ➡ lié à un certif de distribution ➡ deux modes de distribution • app store • adhoc • entreprise 44
  44. 44. ➡ publication 45
  45. 45. AppStore ➡ Il y a t’il de la place par rapport à mon application? ➡ quel prix pour les applications concurrentes ? ➡ Version gratuite / Version Payante ➡ Baisse de prix d’application (ou gratuite) .. 2h à 4h ➡ le nombre de téléchargement influes sur le classement 46
  46. 46. sur l’AppStore★ Pour publier son application, trois étapes : ➡ Rédaction des détails de l’application. ➡ Upload de l’exécutable. ➡ Validation par Apple. ➡ La période de validation passe par un certain nombre d’états, variables suivant les cas.★ Si l’application n’est pas validée, le développeur reçoit automatiquement un e-mail d’explications. 47
  47. 47. ★ Attention, respecter les Guideline Apple★ De nombreuses règles sont à respecter pour qu’une application soit validée par Apple. En voici les plus courantes : ➡ Aucun crash. ➡ Pas de fuite mémoire. ➡ Description conforme à l’application. ➡ Révéler toute fonctionnalité cachée à la validation. ➡ Respecter les droits d’auteur. ➡ Uniquement utiliser les classes documentées d’Apple. ➡ Notifier les changements d’état du réseau. ➡ Apple Human Interface Guidelines. 48
  48. 48. ➡ beta testing 49
  49. 49. Tester★ Audience / Logging ➡ Flurry ➡ TestFlyApp • Session • Questions in-App • Crash reports • Checkpoints • Remote logging • in-App updates 50
  50. 50. pour tester★ Autre solution pour distribuer une application iOS, la distribution Ad Hoc. ➡ Échelle réduite (maximum 100 appareils). ➡ Aucune validation par Apple. ➡ Inscription à l’iOS Developer Program également obligatoire. 51
  51. 51. ➡ MDM 52
  52. 52. 53
  53. 53. 54
  54. 54. 55
  55. 55. 56
  56. 56. ➡ iTunes Connect 57
  57. 57. 58
  58. 58. partie 2développer➡ Concevoir➡ L’environnement de developpement➡ Bases de l’objective-C➡ Les nouveautes d’iOS 5 59
  59. 59. partie 2➡concevoir 60
  60. 60. je vais devoir tailler mon crayon !! h,p://iphonemockup.lkmc.ch 61
  61. 61. 62
  62. 62. Quelques Mockup★ balsamiq★ omniGraffle★ Adobe Illustrator★ le post it iphone 63
  63. 63. ➡ développement agile 64
  64. 64. Développements Agiles ➡ deux tendances à connaitre • lean startup • scrum 65
  65. 65. lean startup 66
  66. 66. Développements Agiles ➡ ne pas surdimentioner la richesse de l’application (priorisation par la valeur), faire des user stories ➡ faire des livraisons et des tests souvent ➡ si on doit s’interfacer : bien définir ! (prévoir un niveau d’information minimal) 67
  67. 67. scrum USE STO R RY USE STO R RY 68
  68. 68. Je me connecte via le n° FlyingBlueJe consulte la liste de mes réservations Je consulte le détail dune réservationJe consulte les passagers dune réservation Je consulte lactualité dun vol AFJenregistre une réservation (carte dembarquement) 69
  69. 69. 13 quelle est sa valeur métier? USESTO R RY pour quel effort à fournir? 89 70
  70. 70. 144 89 Je consulte le détail dune réservation 89 144 Jenregistre une réservation (carte dembarquement)ordre de dev 55 55 Je consulte la liste de mes réservations 34 233 Je me connecte via le n° FlyingBlue 8 233 Je consulte les passagers dune réservation 13 144 Je consulte lactualité dun vol AF 71
  71. 71. SPRINT 1 SPRINT 2 DEMO SPRINT 1 TESTS RELEASE 1 SPRINT 3 DEMO SPRINT 2 TESTS PROD SPRINT 4 DEMO SPRINT 3 TESTS SPRINT 5 DEMO SPRINT 4 TESTS RELEASE 2 SPRINT 6 DEMO SPRINT 5 TESTS72 PROD
  72. 72. partie 2 C➡base de l’Objective 73
  73. 73. ➡ écrire une classe, une méthode, un protocol 74
  74. 74. écrire une classe ➡ interface ➡ implémentation#import <Foundation/Foundation.h> #import "Voiture.h"@interface Voiture : NSObject { @implementation Voiture //déclaration des variables NSString *immat; // implémentation des méthodes NSInteger *gear; NSInteger *speed; @end}-(int)multiply:(int)a to:(int)b ;-(int)square:(int)a ;//déclaration des méthodes@end 75
  75. 75. écrire une classe 76
  76. 76. écrire une méthode -(int)multiply:(int)a to:(int)b { return a*b; } -(int)square:(int)a { return [self multiply:a to:a]; } ➡ [object doSomething]; au lieu de object.doSomething(); 77
  77. 77. écrire un protocol #import <Foundation/Foundation.h> @protocol Vehicule <NSObject> @optional -(void)klaxonner; -(void)baisserVitre; -(void)leverVitre; @required -(void) demarrer ; -(void) arreter; @end 78
  78. 78. réaliser un protocol #import "Voiture.h" @implementation Voiture#import <Foundation/Foundation.h> // implémentation des méthodes#include "Vehicule.h"@interface Voiture : NSObject <Vehicule> { -(int)multiply:(int)a to:(int)b //déclaration des variables { return a*b; NSString *immat; } NSInteger *gear; NSInteger *speed; -(int)square:(int)a { return [self multiply:a to:a];} }-(int)multiply:(int)a to:(int)b ;-(int)square:(int)a ; -(void) demarrer-(void) demarrer ; { NSLog(@"Vrooum"); }//déclaration des méthodes@end -(void) arreter { NSLog(@"..."); } @end 79
  79. 79. ➡ Cocoa Fondation 80
  80. 80. Cocoa Fondation ➡ Framework de base pour le développement Mac OS X et iOS. ➡ Importation dans un projet : #import <Foundation/Foundation.h> ➡ (Par défaut dans un nouveau projet Xcode) 81
  81. 81. Cocoa Foundation★ Objets de base : ➡ NSString : Chaîne de caractères. ➡ NSArray : Tableau non modifiable. ➡ NSDictionnary : Structure fixe d’objets référencés par une clé unique. ➡ Mot clé Mutable : Indique si une instance de classe peut être modifiée après création. ➡ Exemple : NSMutableArray et NSMutableDictionnary. 82
  82. 82. ➡ gestion de la mémoire 83
  83. 83. ★ Destruction d’un objet : ➡ L’objet créé peut être détruit de deux façons différentes. ➡ Autolibération : La libération de la mémoire allouée est gérée par le système. (autorealease) ➡ Libération : la libération est laissée aux soins de l’utilisateur. (release). 84
  84. 84. Allocation, destruction,autolibération★ Par défaut, l’utilisateur doit s’occuper de la libération des objets qu’il alloue : -(void)direBonjour { NSString *maPhrase = [[NSString alloc] initWithString:@"bonjour"]; NSLog(@"%@",maPhrase); ! [maPhrase release]; }★ Des fois, il est indispensable de laisser le système s’en occuper : -(NSString *)creerBonjour { ! NSString *maPhrase = [[[NSString alloc] initWithString:@"bonjour"] autorelease]; ! return maPhrase; } ➡ retain, release et autorelease sont des méthodes de NSObject★ 85
  85. 85. Variable d’instance★ Prototypage des variables d’instance : ➡ Ajoute une couche d’abstraction pour la gestion de la mémoire. ➡ Réduit le nombre de lignes de code. ➡ Garantie lintégrité des données.★ Dans l’interface : @property (nonatomic, retain) Moteur *moteur;★ Dans l’implémentation : @synthesize moteur; 86
  86. 86. retain, assign➡retain;➡assign : 87
  87. 87. ★ La règle du comptage par référence est la suivante : ➡ On incrémente le compteur lorsque l’on fait appel aux méthodes +alloc, -retain ou -copy de l’objet. ➡ On décrémente le compteur lorsque l’on fait appel à la méthode - release de l’objet. ➡ Lorsque le compteur atteint 0, l’objet et donc son espace mémoire alloué sont libérés automatiquement. 88
  88. 88. ➡ UIKit 89
  89. 89. UIKit ➡ Framework supplémentaire pour le développement iOS. Ajoute les fonctions nécessaires pour l’interaction tactile. ➡ Importation dans un projet : #import <UIKit/UIKit.h> ➡ (Par défaut dans un nouveau projet Xcode) 90
  90. 90. UIButton 91
  91. 91. ➡ Connections Synchrone et Asynchrone 92
  92. 92. ★ Requête synchrone ➡ application en attente du résultat ➡ application non réactive, figée urlString = [NSString stringWithFormat:@"http://webaddress/trafficservlet? sendTagWave=1&id=%@&posLo=%@&posLa=%@&version=1&course=%@&idSession=%@", ! ! ! ! [userId stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], ! ! ! ! [textLongitude stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], ! ! ! ! [textLatitude stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], ! ! ! ! ! ! ! ! [textCourse stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]! , ! ! ! ! [textIdSession stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ! ! ! ! ]; ! ! NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]]; 93
  93. 93. ★ Requête asynchrone - (void)viewDidLoad { [super viewDidLoad]; ! // Effectuer la requête dans un autre thread ! [NSThread detachNewThreadSelector:@selector (chargerXML) toTarget:self withObject:nil]; } - (void)chargerXML { ! NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; ! // Faire la requête ! [self effectuerRequete]; ! // Notifier le thread principal que l’on a fini ! [self performSelectorOnMainThread:@selector (chargementFini) withObject:nil waitUntilDone:NO]; ! [pool release]; } 94
  94. 94. ➡ notifications Push 95
  95. 95. notification Push ➡ Il permet d’afficher des badges, alertes et sons sans que l’application ne tourne ➡ Il ne nécessite pas de grosses infrastructures serveur ➡ Il préserve la durée de vie de la batterie (par rapport aux connections TCP/IP) 96
  96. 96. ➡ Cartographie et géolocalisation 97
  97. 97. ★ Pouvoir localiser sa position et son orientation sur une carte nécessite l’utilisation de deux frameworks : ➡ CoreLocation — permettant dutiliser les capacités de géolocalisation de l’iPhone ➡ MapKit — permettant d’insérer des cartes géographiques complètes dans une application. 98
  98. 98. CoreLocation★ Framework pour gérer la localisation et l’orientation. ➡ CLLocation ➡ CLLocationManager★ Pas d’interface utilisateur.★ Utilise trois approches pour se situer. ➡ GPS ➡ Wifi ➡ Réseau Téléphonique★ Plus la localisation se veut précise, plus elle est coûteuse en énergie. 99
  99. 99. CLLocationManagerDelegate★ // Répond aux changements de position - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation; 100
  100. 100. ➡ pattern delegate 101
  101. 101. 102
  102. 102. delegation 103
  103. 103. ➡ développement serveur 104
  104. 104. exemple de pland’architecture global 5 notification serveur BACKEND eSite push xml cache parser rss connecteur json services 4 ... 1 3 cron 2 105
  105. 105. partie 2 de➡L’environnement développement XCode 106
  106. 106. Paramètres  de  compilaBon Projet 107
  107. 107. 108
  108. 108. partie d’iOS 5 2➡Nouveautés 109
  109. 109. Nouveautés iOS 5★ ARC★ Storyboards★ UIKit Customization★ iCloud★ Twitter Integration★ Nombreux changements dans les APIs 110
  110. 110. ARC(Automatic Reference Counting) ➡ ARC soccupe des libérations mémoire à la place du développeur, plus de gestion manuelle de la mémoire. ➡ Le code est allégé et la tâche du développeur est simplifié. ➡ Avec ARC activé, le compilateur insère automatiquement les méthodes de retain, release et autorelease à la bonne place dans le code. 111
  111. 111. StoryBoards 112
  112. 112. UIKit Customization ➡ Pour sortir du lot, une application, en plus dêtre fonctionnelle, doit avoir un design attrayant. ➡ La plupart des applications ma jeures de lAppStore utilisent des éléments dinterfaces customisés. ➡ Avant la sortie diOS 5, la tâche nétait pas du tout aisée. Il fallait très souvent de nombreuses lignes de code pour changer lapparence dun élément standard. ➡ A présent, Apple a donné accès à de nouvelles méthodes qui facilitent ce travail. 113
  113. 113. partie 3pratique➡ Hello World 114
  114. 114. code de l’appli h,p://db.,/pbEhiPro basé sur le tutoriel officiel dApple "Your first iOS app" 115

×