Anthony NévoAntoine Cabot                3 July 2012
Qui sommes nous ?                    Antoine Cabot                    Fondateur                    Antoine Cabot, diplômé ...
Haploid en 2 mots                    iOS   Android   HTML5                                            3
Quelques chiffres en vrac                            4
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Quelques chiffres en vrac               valorisation boursière de 527               milliards de $ (= Microsoft +         ...
Ou publier son app ?                       5
L’eco-système post-PC Apple                              6
iOS - La genèse   2007           2008   2009   2010   2011   2012                                                 7
iOS - La genèse Lancement de l’iPhone   iOS 1.x   2007           2008   2009   2010   2011   2012                         ...
iOS - La genèse                  Lancement                  de l’iPhone                       3G                  Ouvertur...
iOS - La genèse                                Lancement                                de l’iPhone                       ...
iOS - La genèse                                              Lancement                                              de l’i...
iOS - La genèse                                                            Lancement                                      ...
iOS - La genèse                                                                          Lancement                        ...
Pourquoi développer sur iOS ?   ‣   Accéder à 500 millions d’utilisateurs       potentiels   ‣   Bénéficier du système de p...
L’environnement de développement   ‣   Un mac   ‣   XCode (Mac App Store)   ‣   1 iPod ou 1 iPhone ou 1 iPad   ‣   79€ / a...
Processus de validation‣   Les règles    «We have over 350,000 apps in the App Store. We dont need any more Fart apps. If ...
La vie d’une app sur l’App Store   ‣   Les mises à jour   ‣   Les notifications   ‣   Le suivi des usages (Flurry & Google ...
Etre dans le top 25 ?                        12
Un peu de technique...                         13
Avant iOS            14
Avant iOS    ‣   NextStep (1988)                          14
Avant iOS    ‣   NextStep (1988)                          14
Avant iOS    ‣   NextStep (1988)                          14
Avant iOS    ‣   NextStep (1988)                          14
Avant iOS            15
Avant iOS    ‣   Mac OS X Cheetah (2001)                                  15
Avant iOS    ‣   Mac OS X Cheetah (2001)                                  15
Avant iOS            16
Avant iOS    ‣   OS X Mountain Lion (2012)                                    16
Avant iOS    ‣   OS X Mountain Lion (2012)                                    16
Fondations             17
Fondations    ‣   UNIX (BSD + NextStep)                                17
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:                                17
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++                                17
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C            ...
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C        ‣   ...
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C        ‣   ...
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C        ‣   ...
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C        ‣   ...
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C        ‣   ...
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C        ‣   ...
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C        ‣   ...
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C        ‣   ...
Fondations    ‣   UNIX (BSD + NextStep)    ‣   Langages disponibles:        ‣   C / C++        ‣   Objective-C        ‣   ...
Core OS          18
Core OS    ‣   Couche la plus basse                               18
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:                                        18
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:          ‣   Communication (bluetooth, accessoire...
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:          ‣   Communication (bluetooth, accessoire...
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:          ‣   Communication (bluetooth, accessoire...
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:          ‣   Communication (bluetooth, accessoire...
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:          ‣   Communication (bluetooth, accessoire...
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:          ‣   Communication (bluetooth, accessoire...
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:          ‣   Communication (bluetooth, accessoire...
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:          ‣   Communication (bluetooth, accessoire...
Core OS    ‣   Couche la plus basse    ‣   Utilisée principalement pour:          ‣   Communication (bluetooth, accessoire...
Core Service               19
Core Service     ‣   Propose un grand nombre de services:                                                19
Core Service     ‣   Propose un grand nombre de services:         ‣   Réseau (CFNetwork)                                  ...
Core Service     ‣   Propose un grand nombre de services:         ‣   Réseau (CFNetwork)         ‣   Core Data / SQLite   ...
Core Service     ‣   Propose un grand nombre de services:         ‣   Réseau (CFNetwork)         ‣   Core Data / SQLite   ...
Core Service     ‣   Propose un grand nombre de services:         ‣   Réseau (CFNetwork)         ‣   Core Data / SQLite   ...
Core Service     ‣   Propose un grand nombre de services:         ‣   Réseau (CFNetwork)         ‣   Core Data / SQLite   ...
Core Service     ‣   Propose un grand nombre de services:         ‣   Réseau (CFNetwork)         ‣   Core Data / SQLite   ...
Core Service     ‣   Propose un grand nombre de services:         ‣   Réseau (CFNetwork)         ‣   Core Data / SQLite   ...
Core Service     ‣   Propose un grand nombre de services:         ‣   Réseau (CFNetwork)         ‣   Core Data / SQLite   ...
Core Service     ‣   Propose un grand nombre de services:         ‣   Réseau (CFNetwork)         ‣   Core Data / SQLite   ...
Media        20
Media    ‣   Ensemble de technologies        permettant la création d’interfaces        riches:                           ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:        Visuel:            ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:        Visuel:        ‣   ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:        Visuel:        ‣   ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:        Visuel:        ‣   ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:        Visuel:        ‣   ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:        Visuel:        ‣   ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:        Visuel:        ‣   ...
Media        21
Media    ‣   Ensemble de technologies        permettant la création d’interfaces        riches:                           ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:/ Vidéo:        Audio      ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:/ Vidéo:        Audio      ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:/ Vidéo:        Audio      ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:/ Vidéo:        Audio      ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:/ Vidéo:        Audio      ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:/ Vidéo:        Audio      ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:/ Vidéo:        Audio      ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:/ Vidéo:        Audio      ...
Media    ‣   Ensemble de technologies        permettant la création d’interfaces    ‣   riches:/ Vidéo:        Audio      ...
Cocoa Touch              22
Cocoa Touch    ‣   Couche la plus haute.                                22
Cocoa Touch    ‣   Couche la plus haute.    ‣   Partie visible de l’iceberg.                                       22
Cocoa Touch    ‣   Couche la plus haute.    ‣   Partie visible de l’iceberg.    ‣   Propose une série de composants déjà  ...
Cocoa Touch    ‣   Couche la plus haute.    ‣   Partie visible de l’iceberg.    ‣   Propose une série de composants déjà  ...
Cocoa Touch    ‣   Couche la plus haute.    ‣   Partie visible de l’iceberg.    ‣   Propose une série de composants déjà  ...
Cocoa Touch    ‣   Couche la plus haute.    ‣   Partie visible de l’iceberg.    ‣   Propose une série de composants déjà  ...
Cocoa Touch    ‣   Couche la plus haute.    ‣   Partie visible de l’iceberg.    ‣   Propose une série de composants déjà  ...
Cocoa Touch    ‣   Couche la plus haute.    ‣   Partie visible de l’iceberg.    ‣   Propose une série de composants déjà  ...
Cocoa Touch    ‣   Couche la plus haute.    ‣   Partie visible de l’iceberg.    ‣   Propose une série de composants déjà  ...
L’Objective-C                23
L’Objective-C     ‣   Inventé au début des années 80 par Brad         Cox                                                 ...
L’Objective-C     ‣   Inventé au début des années 80 par Brad         Cox     ‣   S’inspire de concepts provenant de      ...
L’Objective-C     ‣   Inventé au début des années 80 par Brad         Cox     ‣   S’inspire de concepts provenant de      ...
L’Objective-C - Syntaxe                          24
L’Objective-C - Syntaxe     ‣   Déclaration de méthodes / fonctions                                               24
L’Objective-C - Syntaxe     ‣   Déclaration de méthodes / fonctions                                               24
L’Objective-C - Syntaxe     ‣   Déclaration de méthodes / fonctions         ‣   C                                         ...
L’Objective-C - Syntaxe     ‣   Déclaration de méthodes / fonctions         ‣   C             int calculateSomething(int a...
L’Objective-C - Syntaxe     ‣   Déclaration de méthodes / fonctions         ‣   C             int calculateSomething(int a...
L’Objective-C - Syntaxe     ‣   Déclaration de méthodes / fonctions         ‣   C             int calculateSomething(int a...
L’Objective-C - Syntaxe     ‣   Déclaration de méthodes / fonctions         ‣   C             int calculateSomething(int a...
L’Objective-C - Syntaxe     ‣   Déclaration de méthodes / fonctions         ‣   C             int calculateSomething(int a...
L’Objective-C - Syntaxe                          25
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions                                         25
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions                                         25
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions         ‣   C                                         25
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions         ‣   C             int result;                       ...
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions         ‣   C             int result;             result = c...
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions         ‣   C             int result;             result = c...
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions         ‣   C             int result;             result = c...
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions         ‣   C             int result;             result = c...
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions         ‣   C             int result;             result = c...
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions         ‣   C             int result;             result = c...
L’Objective-C - Syntaxe     ‣   Appel de méthodes / fonctions         ‣   C             int result;             result = c...
L’Objective-C - Syntaxe                          26
L’Objective-C - Syntaxe                          26
L’Objective-C - Syntaxe       Objective-C:                          26
L’Objective-C - Syntaxe       Objective-C:       UIAlertView *alertView = [[UIAlertView alloc]                            ...
L’Objective-C - Syntaxe       Objective-C:       UIAlertView *alertView = [[UIAlertView alloc]                            ...
L’Objective-C - Syntaxe       Objective-C:       UIAlertView *alertView = [[UIAlertView alloc]                            ...
DEMO       27
Design Patterns - MVC                        28
Design Patterns - MVC    ‣   Architecture Modèle-Vue-        Contrôleur (MVC)        ‣   Modèle: contient les données et  ...
29
Design Patterns - Délégation     ‣   Délégation                               30
Design Patterns - Délégation     ‣   Délégation                               30
Design Patterns - Délégation     ‣   Délégation                               VS                                    30
Design Patterns - Délégation     ‣   Délégation                               VS                                    30
Design Patterns                  31
Design Patterns     ‣   Délégation                      31
Design Patterns     ‣   Délégation                      31
Design Patterns     ‣   Délégation         « Un objet A délègue à un objet B la tâche de         réaliser une action pour ...
Design Patterns     ‣   Délégation         « Un objet A délègue à un objet B la tâche de         réaliser une action pour ...
Design Patterns     ‣   Délégation         « Un objet A délègue à un objet B la tâche de         réaliser une action pour ...
Design Patterns     ‣   Délégation         « Un objet A délègue à un objet B la tâche de         réaliser une action pour ...
DEMO       32
Gestion de la mémoire                        33
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS                                            33
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS     ‣   Mais:                                            33
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS     ‣   Mais:         ‣   La gestion de la mémoire est simp...
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS     ‣   Mais:         ‣   La gestion de la mémoire est simp...
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS     ‣   Mais:         ‣   La gestion de la mémoire est simp...
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS     ‣   Mais:         ‣   La gestion de la mémoire est simp...
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS     ‣   Mais:         ‣   La gestion de la mémoire est simp...
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS     ‣   Mais:         ‣   La gestion de la mémoire est simp...
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS     ‣   Mais:         ‣   La gestion de la mémoire est simp...
Gestion de la mémoire     ‣   Pas de Garbage collector sur iOS     ‣   Mais:         ‣   La gestion de la mémoire est simp...
Gestion de la mémoire                        34
Gestion de la mémoire                        34
Gestion de la mémoire                        34
Gestion de la mémoire                        34
Gestion de la mémoire                        34
Gestion de la mémoire                        34
Gestion de la mémoire                        34
Gestion de la mémoire                        34
Gestion de la mémoire                        34
DEMO       35
4, rue Ampère22300 LANNIONcontact@haploid.fr+33 9 72 22 51 37@haploidwww.haploid.fr
Prochain SlideShare
Chargement dans…5
×

Introduction iOS Code d'Armor

1 145 vues

Publié le

Haploid introduces iOS development to the Code d'Armor developers community in Lannion.

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Introduction iOS Code d'Armor

  1. 1. Anthony NévoAntoine Cabot 3 July 2012
  2. 2. Qui sommes nous ? Antoine Cabot Fondateur Antoine Cabot, diplômé de Télécom Bretagne et passionné de technologie mobile a conçu, développé et déployé des services mobiles pour l’opérateur mobile Orange durant 4 ans avant de fonder Haploid. Il a suivi et analysé la montée en puissance des Smartphones depuis 2004 et a été un des artisans du succès du lancement de l’iPhone en France en tant qu’expert Visual Voicemail pour Orange. Passionné d’innovation, il souhaite apporter aux utilisateurs des services convergents et de qualité.  Anthony Nevo Directeur Technique Anthony Névo, diplômé du Cork Institute of Technology et de lISTIC Rennes, est passionné par les nouvelles technologies et les interfaces graphiques depuis toujours. Il a eu la chance de travailler et dacquérir une large expertise sur les 3 principales plateformes de ces 15 dernières années: les applications PC/Mac, les services et technologies sur le web et enfin les "apps" sur smartphones et tablettes. Parmi ses nombreuses expériences, Anthony a été employé chez Motorola, Cap Gemini ou encore Orange. 2
  3. 3. Haploid en 2 mots iOS Android HTML5 3
  4. 4. Quelques chiffres en vrac 4
  5. 5. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 4
  6. 6. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de revenus annuels sur le matériel 4
  7. 7. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le matériel 4
  8. 8. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le matériel 3 milliards de $ de revenus pour l’AppStore 4
  9. 9. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le matériel 3 milliards de $ de revenus pour l’AppStore 500 Millions de terminaux iOS dans le monde 4
  10. 10. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de revenus pour l’AppStore 500 Millions de terminaux iOS dans le monde 4
  11. 11. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 4
  12. 12. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 2000 nouvelles apps chaque semaine 4
  13. 13. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 2000 nouvelles apps chaque semaine 4
  14. 14. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 26 milliards de téléchargements depuis 2008 2000 nouvelles apps chaque semaine 4
  15. 15. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 26 milliards de téléchargements depuis 2008 65% d’applications payantes 2000 nouvelles apps chaque semaine 4
  16. 16. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 26 milliards de téléchargements depuis 2008 65% d’applications payantes 2000 nouvelles apps chaque semaine 76% des revenus mobiles 4
  17. 17. Quelques chiffres en vrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 26 milliards de téléchargements depuis 2008 65% d’applications payantes 2000 nouvelles apps chaque semaine 76% des revenus mobiles 1 milliard de téléchargement pour Angry Birds 4
  18. 18. Ou publier son app ? 5
  19. 19. L’eco-système post-PC Apple 6
  20. 20. iOS - La genèse 2007 2008 2009 2010 2011 2012 7
  21. 21. iOS - La genèse Lancement de l’iPhone iOS 1.x 2007 2008 2009 2010 2011 2012 7
  22. 22. iOS - La genèse Lancement de l’iPhone 3G Ouverture de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  23. 23. iOS - La genèse Lancement de l’iPhone 3GS 100 000 Lancement apps de l’iPhone disponibles 3G Ouverture iOS 3.x de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  24. 24. iOS - La genèse Lancement de l’iPhone 4 Lancement Lancement de l’iPhone de l’iPad 3GS 100 000 iOS 4.x Lancement apps de l’iPhone disponibles 3G Ouverture iOS 3.x de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  25. 25. iOS - La genèse Lancement de l’iPhone 4S Lancement Lancement de l’iPhone de l’iPad 2 4 Lancement Lancement de l’iPad iOS 5.x de l’iPhone 3GS 100 000 iOS 4.x Lancement apps de l’iPhone disponibles 3G Ouverture iOS 3.x de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  26. 26. iOS - La genèse Lancement de l’iPad 3 Lancement de l’iPhone 4S Lancement Lancement de l’iPhone de l’iPad 2 4 Lancement Lancement de l’iPad iOS 5.x de l’iPhone 3GS 100 000 iOS 4.x Lancement apps de l’iPhone disponibles 3G Ouverture iOS 3.x de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  27. 27. Pourquoi développer sur iOS ? ‣ Accéder à 500 millions d’utilisateurs potentiels ‣ Bénéficier du système de paiement iTunes (300 millions de CB) ‣ Profiter de l’uniformité des terminaux (iPod Touch / iPhone / iPad) ‣ La validation Apple garantie la qualité de votre application ‣ La gestion de la sécurité (sandboxing) ‣ Maturité de la plateforme (héritée d’Unix et MacOS) 8
  28. 28. L’environnement de développement ‣ Un mac ‣ XCode (Mac App Store) ‣ 1 iPod ou 1 iPhone ou 1 iPad ‣ 79€ / an pour publier autant d’applications que l’on veut ‣ 3 programmes ‣ Individual ‣ Company ‣ Enterprise ($299/an) ‣ University (free) ‣ déploiement sur 100 terminaux 9
  29. 29. Processus de validation‣ Les règles «We have over 350,000 apps in the App Store. We dont need any more Fart apps. If your app doesnt do something useful or provide some form of lasting entertainment, it may not be accepted.» «Apps must comply with all terms and conditions explained in the Apple iOS Human Interface Guidelines» «Apps that encourage users to use an Apple Device in a way that may cause damage to the device will be rejected»‣ Choix des pays / choix des prix‣ Produits In-App / Abonnements‣ Le temps de validation‣ Les bonnes pratiques (forum, ticket support)‣ La validation express 10
  30. 30. La vie d’une app sur l’App Store ‣ Les mises à jour ‣ Les notifications ‣ Le suivi des usages (Flurry & Google Analytics) ‣ Le marketing (screenshots, notes...) ‣ Les leviers (AppGratuites & Surikate) ‣ Mise en avant Apple en suivant la ligne de produits ‣ Les revenus ? ‣ Apple vous fait un virement tous les mois pour les ventes ‣ Monétisation publicitaire (iAd, AdMob) 11
  31. 31. Etre dans le top 25 ? 12
  32. 32. Un peu de technique... 13
  33. 33. Avant iOS 14
  34. 34. Avant iOS ‣ NextStep (1988) 14
  35. 35. Avant iOS ‣ NextStep (1988) 14
  36. 36. Avant iOS ‣ NextStep (1988) 14
  37. 37. Avant iOS ‣ NextStep (1988) 14
  38. 38. Avant iOS 15
  39. 39. Avant iOS ‣ Mac OS X Cheetah (2001) 15
  40. 40. Avant iOS ‣ Mac OS X Cheetah (2001) 15
  41. 41. Avant iOS 16
  42. 42. Avant iOS ‣ OS X Mountain Lion (2012) 16
  43. 43. Avant iOS ‣ OS X Mountain Lion (2012) 16
  44. 44. Fondations 17
  45. 45. Fondations ‣ UNIX (BSD + NextStep) 17
  46. 46. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: 17
  47. 47. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ 17
  48. 48. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C 17
  49. 49. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web 17
  50. 50. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) 17
  51. 51. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: 17
  52. 52. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS 17
  53. 53. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services 17
  54. 54. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services ‣ Media 17
  55. 55. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services ‣ Media ‣ Cocoa Touch 17
  56. 56. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services ‣ Media ‣ Cocoa Touch 17
  57. 57. Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services ‣ Media ‣ Cocoa Touch 17
  58. 58. Core OS 18
  59. 59. Core OS ‣ Couche la plus basse 18
  60. 60. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: 18
  61. 61. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) 18
  62. 62. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) 18
  63. 63. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) 18
  64. 64. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: 18
  65. 65. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading 18
  66. 66. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading ‣ Réseau (Sockets, ...) 18
  67. 67. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading ‣ Réseau (Sockets, ...) ‣ Accès au système de fichiers 18
  68. 68. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading ‣ Réseau (Sockets, ...) ‣ Accès au système de fichiers ‣ Gestion de la mémoire 18
  69. 69. Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading ‣ Réseau (Sockets, ...) ‣ Accès au système de fichiers ‣ Gestion de la mémoire ‣ ... 18
  70. 70. Core Service 19
  71. 71. Core Service ‣ Propose un grand nombre de services: 19
  72. 72. Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) 19
  73. 73. Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite 19
  74. 74. Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: 19
  75. 75. Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) 19
  76. 76. Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences 19
  77. 77. Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences ‣ ... 19
  78. 78. Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences ‣ ... ‣ Géolocalisation (Core Location) 19
  79. 79. Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences ‣ ... ‣ Géolocalisation (Core Location) ‣ Gestion des achats «In-app» 19
  80. 80. Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences ‣ ... ‣ Géolocalisation (Core Location) ‣ Gestion des achats «In-app» ‣ Calendrier, Carnet d’adresses, Kiosque, ... 19
  81. 81. Media 20
  82. 82. Media ‣ Ensemble de technologies permettant la création d’interfaces riches: 20
  83. 83. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: 20
  84. 84. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) 20
  85. 85. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation 20
  86. 86. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation ‣ Core Image (traitement d’image) 20
  87. 87. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation ‣ Core Image (traitement d’image) ‣ OpenGL ES (affichage 2D / 3D accéléré) 20
  88. 88. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation ‣ Core Image (traitement d’image) ‣ OpenGL ES (affichage 2D / 3D accéléré) ‣ Core Text 20
  89. 89. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation ‣ Core Image (traitement d’image) ‣ OpenGL ES (affichage 2D / 3D accéléré) ‣ Core Text ‣ Accès à l’album photo 20
  90. 90. Media 21
  91. 91. Media ‣ Ensemble de technologies permettant la création d’interfaces riches: 21
  92. 92. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio 21
  93. 93. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes 21
  94. 94. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo 21
  95. 95. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias 21
  96. 96. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) 21
  97. 97. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) 21
  98. 98. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) ‣ AirPlay 21
  99. 99. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) ‣ AirPlay ‣ Ecran distant 21
  100. 100. Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) ‣ AirPlay ‣ Ecran distant ‣ Mirroring 21
  101. 101. Cocoa Touch 22
  102. 102. Cocoa Touch ‣ Couche la plus haute. 22
  103. 103. Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. 22
  104. 104. Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: 22
  105. 105. Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) 22
  106. 106. Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit 22
  107. 107. Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit ‣ Message UI 22
  108. 108. Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit ‣ Message UI ‣ Game Kit 22
  109. 109. Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit ‣ Message UI ‣ Game Kit ‣ iAd 22
  110. 110. Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit ‣ Message UI ‣ Game Kit ‣ iAd ‣ Twitter, Address Book UI, Event Kit UI 22
  111. 111. L’Objective-C 23
  112. 112. L’Objective-C ‣ Inventé au début des années 80 par Brad Cox 23
  113. 113. L’Objective-C ‣ Inventé au début des années 80 par Brad Cox ‣ S’inspire de concepts provenant de Smalltalk 23
  114. 114. L’Objective-C ‣ Inventé au début des années 80 par Brad Cox ‣ S’inspire de concepts provenant de Smalltalk ‣ A l’origine, une simple extension du C 23
  115. 115. L’Objective-C - Syntaxe 24
  116. 116. L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions 24
  117. 117. L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions 24
  118. 118. L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C 24
  119. 119. L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); 24
  120. 120. L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); ‣ Java 24
  121. 121. L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); ‣ Java int calculateSomething(int a, int b); 24
  122. 122. L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); ‣ Java int calculateSomething(int a, int b); ‣ Objective-C 24
  123. 123. L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); ‣ Java int calculateSomething(int a, int b); ‣ Objective-C int calculateSomethingUsing:(int)a and:(int)b; 24
  124. 124. L’Objective-C - Syntaxe 25
  125. 125. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions 25
  126. 126. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions 25
  127. 127. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C 25
  128. 128. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; 25
  129. 129. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); 25
  130. 130. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java 25
  131. 131. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; 25
  132. 132. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; result = myObject.calculateSomething(42, 12); 25
  133. 133. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; result = myObject.calculateSomething(42, 12); ‣ Objective-C 25
  134. 134. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; result = myObject.calculateSomething(42, 12); ‣ Objective-C int result; 25
  135. 135. L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; result = myObject.calculateSomething(42, 12); ‣ Objective-C int result; result = [myObject calculateSomethingUsing:42 and:12]; 25
  136. 136. L’Objective-C - Syntaxe 26
  137. 137. L’Objective-C - Syntaxe 26
  138. 138. L’Objective-C - Syntaxe Objective-C: 26
  139. 139. L’Objective-C - Syntaxe Objective-C: UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"You are not connected to the internet" message:@"An internet connection is required." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 26
  140. 140. L’Objective-C - Syntaxe Objective-C: UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"You are not connected to the internet" message:@"An internet connection is required." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; Java: 26
  141. 141. L’Objective-C - Syntaxe Objective-C: UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"You are not connected to the internet" message:@"An internet connection is required." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; Java: alertView.init("You are not connected to the internet","An internet connection is required.",NULL,"OK",NULL); 26
  142. 142. DEMO 27
  143. 143. Design Patterns - MVC 28
  144. 144. Design Patterns - MVC ‣ Architecture Modèle-Vue- Contrôleur (MVC) ‣ Modèle: contient les données et garantit leur intégrité ‣ Vue: présente ce que lutilisateur voit ‣ Contrôleur: contrôle la logique de l’application 28
  145. 145. 29
  146. 146. Design Patterns - Délégation ‣ Délégation 30
  147. 147. Design Patterns - Délégation ‣ Délégation 30
  148. 148. Design Patterns - Délégation ‣ Délégation VS 30
  149. 149. Design Patterns - Délégation ‣ Délégation VS 30
  150. 150. Design Patterns 31
  151. 151. Design Patterns ‣ Délégation 31
  152. 152. Design Patterns ‣ Délégation 31
  153. 153. Design Patterns ‣ Délégation « Un objet A délègue à un objet B la tâche de réaliser une action pour lui. » 31
  154. 154. Design Patterns ‣ Délégation « Un objet A délègue à un objet B la tâche de réaliser une action pour lui. » 31
  155. 155. Design Patterns ‣ Délégation « Un objet A délègue à un objet B la tâche de réaliser une action pour lui. » ‣ Example: 31
  156. 156. Design Patterns ‣ Délégation « Un objet A délègue à un objet B la tâche de réaliser une action pour lui. » ‣ Example: ‣ UITableView 31
  157. 157. DEMO 32
  158. 158. Gestion de la mémoire 33
  159. 159. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS 33
  160. 160. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: 33
  161. 161. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C 33
  162. 162. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: 33
  163. 163. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc 33
  164. 164. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain 33
  165. 165. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain ‣ copy 33
  166. 166. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain ‣ copy ‣ Ils sont détruits via: 33
  167. 167. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain ‣ copy ‣ Ils sont détruits via: ‣ release 33
  168. 168. Gestion de la mémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain ‣ copy ‣ Ils sont détruits via: ‣ release ‣ Sytème de «Retain Count» 33
  169. 169. Gestion de la mémoire 34
  170. 170. Gestion de la mémoire 34
  171. 171. Gestion de la mémoire 34
  172. 172. Gestion de la mémoire 34
  173. 173. Gestion de la mémoire 34
  174. 174. Gestion de la mémoire 34
  175. 175. Gestion de la mémoire 34
  176. 176. Gestion de la mémoire 34
  177. 177. Gestion de la mémoire 34
  178. 178. DEMO 35
  179. 179. 4, rue Ampère22300 LANNIONcontact@haploid.fr+33 9 72 22 51 37@haploidwww.haploid.fr

×