Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction au Développement d'Applications iOS

Introduction au Développement d'Applications iOS

Présentation donnée à l'EPFL, Lausanne, Suisse.

88dd97cf2dc7f06cc51a01d450f0b1e5?s=128

Adrian Kosmaczewski
PRO

November 11, 2010
Tweet

Transcript

  1. Introduction au Développement d’Applications iOS Adrian Kosmaczewski akosma software EPFL,

    11 Novembre 2010
  2. Adrian Kosmaczewski

  3. http://www.flickr.com/photos/gi/164281467/

  4. http://www.flickr.com/photos/jm3/379494322/

  5. http://www.flickr.com/photos/21025851@N00/2168398185/

  6. http://www.flickr.com/photos/emiliagarassino/2146648332/

  7. akosma software

  8. None
  9. None
  10. None
  11. http://www.flickr.com/photos/oskay/365607662/

  12. http://www.flickr.com/photos/oskay/365607591/

  13. http://www.flickr.com/photos/blakespot/2379207825/

  14. http://www.flickr.com/photos/oseillo/345879263/

  15. http://www.flickr.com/photos/justdrew1985/4348527596/

  16. None
  17. Application iPhone

  18. Jérôme Commandeur

  19. http://akos.ma/gib5

  20. App Store

  21. None
  22. Unique

  23. None
  24. Chiffres

  25. http://akos.ma/_u

  26. http://akos.ma/_u

  27. http://akos.ma/gp0a

  28. http://akos.ma/5z3ud

  29. 5 chiffres à retenir http://akos.ma/7cunf

  30. 1. Deux millions d’iPads vendus en 2 mois
 = 1

    chaque 3 secondes 2. Il y a eu 35 millions de téléchargements sur l’App Store pour iPad (ou 17 apps par iPad) http://akos.ma/7cunf
  31. 3. 15,000 nouvelles applications sont envoyées à Apple chaque semaine

    pour évaluation 4. 95% de toutes ces applications sont approuvées en 7 jours http://akos.ma/7cunf
  32. 5. Vers la fin du mois de juin 2010, Apple

    a vendu son 100 millionième appareil iOS (iPhone, iPod touch et / ou iPad) http://akos.ma/7cunf
  33. http://akos.ma/fttbc

  34. 600’000 iPhones en Suisse http://akos.ma/fl8

  35. None
  36. Fonctionnement

  37. 1. Enregistrement

  38. http://developer.apple.com/programs/iphone/

  39. 2. Développement

  40. None
  41. 3. Publication

  42. None
  43. Requirements • Applications Gratuites: • Rien du tout • Applications

    payantes: • EIN Number, via IRS • Compte bancaire
  44. 4. Approbation

  45. None
  46. 4.1 Refus

  47. “Your application cannot be posted to the App Store at

    this time because it does not adhere to the iPhone Human Interface Guidelines as outlined in iPhone SDK Agreement section x.x.x. When the device is in this or that condition, the application does not do this or that. This behavior might lead to user confusion. It would be appropriate to display either a notification or an alert stating that such or such condition is required. In order for your application to be reconsidered for the App Store, please resolve this issue and upload your new binary to iTunes Connect.”
  48. 5. Vente

  49. https://itunesconnect.apple.com/

  50. None
  51. None
  52. Demo 1: “Flashlight”

  53. None
  54. Cocoa & Objective-C

  55. born in the 80s

  56. None
  57. None
  58. None
  59. None
  60. None
  61. Objective-C

  62. Objective-C Java @interface & @implementation class (1 file) @protocol interface

    #import // files! import // classes! categories n/a (in C#, “class extensions”) id n/a (generics?)
  63. Objective-C Java @selector n/a NSObject / NSProxy / ... Object

    @public / @protected / @private public / protected / private @try / @catch / @finally NSException try / catch / finally Exception n/a package / namespace
  64. • Thin layer around C • Message-dispatch runtime • Static

    and dynamic (you choose) • The “real” inspiration for Java: • http://cs.gmu.edu/~sean/stuff/java- objc.html
  65. • Single inheritance + interfaces (“@protocols”) • @protocols can have

    optional methods • Fields protected by default • All methods are virtual and overridable • Methods can be added to existing classes • Full introspection / reflection • Messages can be intercepted and forwarded à la AOP
  66. None
  67. None
  68. None
  69. None
  70. Demo 2: Pierre-feuille-ciseaux

  71. None
  72. Applications web ou “natives”?

  73. mises à jour fréquence d’utilisation native apps web apps stocks

    calculatrice business forms reports
  74. Avantages des Applications “Natives”

  75. 1 offline

  76. 2 location services

  77. 3 caméra

  78. 4 audio & 3D

  79. http://www.flickr.com/photos/wellohorld/2734492298/

  80. http://www.flickr.com/photos/kelleys/1201625428/

  81. 5 acceleromètre

  82. 6 notifications

  83. http://www.flickr.com/photos/epitti/2565572445/

  84. Composants natifs

  85. Carnet d’adresses ABAddressBook ABMultiValue ABMutableMultiValue ABRecord ABGroup ABPerson http://www.flickr.com/photos/kevinmarsh/2315151843/

  86. Acceleromètre UIAccelerometer UIAccelerometerDelegate http://www.flickr.com/photos/evert-jan/2784525711/ http://www.flickr.com/photos/evert-jan/2785380754/

  87. Vidéo MPMoviePlayerController http://www.flickr.com/photos/pingping/1431127181/

  88. Location services CLLocation CLLocationManager http://www.flickr.com/photos/thomcochrane/2780365916/

  89. Graphics & animation CALayer NSGraphicsContext NSRect / NSMakeRect NSBezierPath NSColor

    http://www.flickr.com/photos/alleus/2905293514/
  90. Caméra & photo library UIImagePickerController UIImagePickerControllerDelegate UIImagePickerControllerSourceTypeCamera UIImagePickerControllerSourceTypePhotoLibrary http://www.flickr.com/photos/ernohannink/2713579416/

  91. Et bien plus... audio XML WebKit SQLite networking Bonjour

  92. None
  93. Honorer les “Human Interface Guidelines”

  94. http://developer.apple.com/iphone/ library/documentation/ userexperience/conceptual/ mobilehig/

  95. None
  96. evitez ceci

  97. http://www.flickr.com/photos/gruber/2635257578/

  98. et ceci

  99. http://smokingapples.com/iphone/app-store-iphone/the-worst-twitter-client-ever/

  100. “ I can’t find one redeeming quality about this app.

    It’s slow to start [on a 3GS], doesn’t respond to taps while it’s trying to load other things, and crashes if you try to change modes a lot. It’s limited to only timeline, replies, and messages. It has no other functionality. Oh wait… I forgot its killer feature, you can have custom backgrounds and choose the color of your tweets. That totally makes up for its lack of useful features and sluggish performance. I’m not sure why someone would bother building such an inferior app other than that they wanted to find some suckers and score a quick buck. It seems even more insane to me that they’d be actively seeking out reviewers to cover this. I was given a promo code for ChillTwit, and even for free I didn’t want it on my phone. I was sad just from looking at screenshots. Actually seeing it running confirmed all of my fears. If it was a free app, I might forgive the developer, but the fact that he’s trying to get $0.99 out of people pisses me off to no end. Go buy Tweetie. If you somehow weren’t scared away by all my bitching and whinning, you can see ChillTwit on the app store here. But seriously, if you buy this, we’re not friends anymore.
  101. None
  102. Livres

  103. None
  104. None
  105. None
  106. None
  107. None
  108. None
  109. None
  110. None
  111. None
  112. None
  113. None
  114. None
  115. Merci!

  116. Questions?