Introduction iOS Code d'Armor

1,054 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,054
On SlideShare
0
From Embeds
0
Number of Embeds
340
Actions
Shares
0
Downloads
35
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 42% n’utilisent que le top 25\n\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • BSD (Berkeley Software Distribution) remonte aux années 80\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • trousseau d’accès: partager des mots de passe entre applications\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Ecriture d’un pre-processor pour C contenant quelques possibilités de Smalltalk (notamment la règle: «tout est un object», notion de «messages», ...)\n
  • Ecriture d’un pre-processor pour C contenant quelques possibilités de Smalltalk (notamment la règle: «tout est un object», notion de «messages», ...)\n
  • Ecriture d’un pre-processor pour C contenant quelques possibilités de Smalltalk (notamment la règle: «tout est un object», notion de «messages», ...)\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • On ne parle pas de méthodes en Objective-C mais de messages\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Patrons/Méthodes de conception en Français\nModèles utilisés dans l’ensemble du système iOS\nLa vue n’effectue aucun traitement et se contente d’afficher les résultats des traitements ainsi que les interactions avec l’utilisateur\n
  • Patrons/Méthodes de conception en Français\nModèles utilisés dans l’ensemble du système iOS\nLa vue n’effectue aucun traitement et se contente d’afficher les résultats des traitements ainsi que les interactions avec l’utilisateur\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 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

    ×