Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to iPhone Development

4,324 views

Published on

Presentation given at http://devdays.info April 2009

Published in: Technology, Design
  • Be the first to comment

Introduction to iPhone Development

  1. 1. Introduction to iPhone Development Dermot Daly, Founder tapadoo.com http://www.tapadoo.com
  2. 2. Agenda • Introduction • From Zero to Published Application • Q&A http://www.tapadoo.com
  3. 3. Twitter Reminder: #devdays http://www.tapadoo.com
  4. 4. About tapadoo http://www.tapadoo.com
  5. 5. About tapadoo • Focus is on developing great mobile applications. Initial focus on iPhone http://www.tapadoo.com
  6. 6. About tapadoo • Focus is on developing great mobile applications. Initial focus on iPhone • Offering both published titles and development services http://www.tapadoo.com
  7. 7. About tapadoo • Focus is on developing great mobile applications. Initial focus on iPhone • Offering both published titles and development services • First application about to go live; 2 others in development http://www.tapadoo.com
  8. 8. About tapadoo • Focus is on developing great mobile applications. Initial focus on iPhone • Offering both published titles and development services • First application about to go live; 2 others in development • Interested in ideas, partnerships, projects http://www.tapadoo.com
  9. 9. Background • Why develop an app? http://www.tapadoo.com
  10. 10. Background • Why develop an app? http://www.tapadoo.com
  11. 11. Background • Why develop an app? 30 Million Devices http://www.tapadoo.com
  12. 12. Background • Why develop an app? 77 Countries http://www.tapadoo.com
  13. 13. What do I need to learn? http://www.tapadoo.com
  14. 14. What do I need to learn? • App Store Process http://www.tapadoo.com
  15. 15. What do I need to learn? • App Store Process • Objective-C http://www.tapadoo.com
  16. 16. What do I need to learn? • App Store Process • Objective-C • iPhone SDK Class Library http://www.tapadoo.com
  17. 17. What do I need to learn? • App Store Process • Objective-C • iPhone SDK Class Library • Tools: XCode, Interface Builder, iPhone Simulator, Instruments http://www.tapadoo.com
  18. 18. What do I need to learn? • App Store Process • Objective-C • iPhone SDK Class Library • Tools: XCode, Interface Builder, iPhone Simulator, Instruments • Signing, Deploying and Releasing http://www.tapadoo.com
  19. 19. What do I need to learn? • App Store Process • Objective-C • iPhone SDK Class Library • Tools: XCode, Interface Builder, iPhone Simulator, Instruments • Signing, Deploying and Releasing • ...and you’ll need a Mac too! http://www.tapadoo.com
  20. 20. Creating and Releasing your first App is a courtship process..... http://www.tapadoo.com
  21. 21. http://www.tapadoo.com
  22. 22. 1. Ask Her Out http://www.tapadoo.com
  23. 23. http://www.tapadoo.com
  24. 24. 2. Meet the Parents (As Early as Possible!) http://www.tapadoo.com
  25. 25. http://www.tapadoo.com
  26. 26. 3. Get to know her better http://www.tapadoo.com
  27. 27. http://www.tapadoo.com
  28. 28. 4. Put a ring on her finger http://www.tapadoo.com
  29. 29. http://www.tapadoo.com
  30. 30. 5. Seal the Deal http://www.tapadoo.com
  31. 31. http://www.tapadoo.com
  32. 32. 6. Wait...... http://www.tapadoo.com
  33. 33. http://www.tapadoo.com
  34. 34. 7. Waaaaaaahhhh - An App is born http://www.tapadoo.com
  35. 35. The Courtship Process • Join ADC • Set up account and tax information • Develop app, sign app • Submit • Wait • Release! http://www.tapadoo.com
  36. 36. Objective-C • Object Oriented extensions to ANSI-C • Full set of class libraries (collections, etc.) • Quite different syntax • Be careful with memory management http://www.tapadoo.com
  37. 37. Very Simple Objective-C Class • Consists of interface section (in classname.h)... @interface Rectangle : NSObject { int width; int length; } -(int) area; -(void) setWidth: (int) w; -(void) setLength: (int) l; @end http://www.tapadoo.com
  38. 38. Very Simple Objective-C Class • Consists of interface section (in classname.h)... @interface Rectangle : NSObject { int width; int length; } -(int) area; -(void) setWidth: (int) w; -(void) setLength: (int) l; @end http://www.tapadoo.com
  39. 39. Very Simple Objective-C Class • Consists of interface section (in classname.h)... @interface Rectangle : NSObject { int width; int length; } -(int) area; -(void) setWidth: (int) w; -(void) setLength: (int) l; @end http://www.tapadoo.com
  40. 40. Very Simple Objective-C Class • Consists of interface section (in classname.h)... @interface Rectangle : NSObject { int width; int length; } -(int) area; -(void) setWidth: (int) w; -(void) setLength: (int) l; @end http://www.tapadoo.com
  41. 41. Very Simple Objective-C Class • Consists of interface section (in classname.h)... @interface Rectangle : NSObject { int width; int length; } -(int) area; -(void) setWidth: (int) w; -(void) setLength: (int) l; @end http://www.tapadoo.com
  42. 42. Implementation • ...and an implementation section in a .m file #import quot;Rectangle.hquot; @implementation Rectangle -(int) area { return width * length; } -(void) setWidth: (int) w { width = w; } -(void) setLength: (int) l { length = l; } @end http://www.tapadoo.com
  43. 43. Implementation • ...and an implementation section in a .m file #import quot;Rectangle.hquot; @implementation Rectangle -(int) area { return width * length; } -(void) setWidth: (int) w { width = w; } -(void) setLength: (int) l { length = l; } @end http://www.tapadoo.com
  44. 44. Implementation • ...and an implementation section in a .m file #import quot;Rectangle.hquot; @implementation Rectangle -(int) area { return width * length; } -(void) setWidth: (int) w { width = w; } -(void) setLength: (int) l { length = l; } @end http://www.tapadoo.com
  45. 45. Implementation • ...and an implementation section in a .m file #import quot;Rectangle.hquot; @implementation Rectangle -(int) area { return width * length; } -(void) setWidth: (int) w { width = w; } -(void) setLength: (int) l { length = l; } @end http://www.tapadoo.com
  46. 46. Implementation • ...and an implementation section in a .m file #import quot;Rectangle.hquot; @implementation Rectangle -(int) area { return width * length; } -(void) setWidth: (int) w { width = w; } -(void) setLength: (int) l { length = l; } @end http://www.tapadoo.com
  47. 47. Objective-C Syntax • Method calls are enclosed in square brackets Rectangle *r = [[Rectangle alloc] init]; [r setWidth:3]; [r setLength:2]; NSLog(@quot;Area of r is %dquot;, [r area]); [r release]; http://www.tapadoo.com
  48. 48. Objective-C Syntax • Method calls are enclosed in square brackets Rectangle *r = [[Rectangle alloc] init]; [r setWidth:3]; [r setLength:2]; NSLog(@quot;Area of r is %dquot;, [r area]); [r release]; http://www.tapadoo.com
  49. 49. Objective-C Syntax • Method calls are enclosed in square brackets Rectangle *r = [[Rectangle alloc] init]; [r setWidth:3]; [r setLength:2]; NSLog(@quot;Area of r is %dquot;, [r area]); [r release]; http://www.tapadoo.com
  50. 50. Objective-C Syntax • Method calls are enclosed in square brackets Rectangle *r = [[Rectangle alloc] init]; [r setWidth:3]; [r setLength:2]; NSLog(@quot;Area of r is %dquot;, [r area]); [r release]; http://www.tapadoo.com
  51. 51. Objective-C Syntax • Method calls are enclosed in square brackets Rectangle *r = [[Rectangle alloc] init]; [r setWidth:3]; [r setLength:2]; NSLog(@quot;Area of r is %dquot;, [r area]); [r release]; http://www.tapadoo.com
  52. 52. iPhone SDK Class Libraries • Full-featured set of “Layers” Cocoa Touch • Very well documented, available through XCode - Media Examples for all layers • Provide all interactions with hardware and O/S, Event Core Services Handling, etc. Core OS http://www.tapadoo.com
  53. 53. Anatomy of An iPhone App http://www.tapadoo.com
  54. 54. Anatomy of An iPhone App • App is typically made up of 1 window, and many views http://www.tapadoo.com
  55. 55. Anatomy of An iPhone App • App is typically made up of 1 window, and many views • A view is active on the window at any point in time http://www.tapadoo.com
  56. 56. Anatomy of An iPhone App • App is typically made up of 1 window, and many views • A view is active on the window at any point in time • App entry point is AppDelegate http://www.tapadoo.com
  57. 57. Anatomy of An iPhone App • App is typically made up of 1 window, and many views • A view is active on the window at any point in time • App entry point is AppDelegate • -(void) applicationDidFinishLaunching (show your window here) http://www.tapadoo.com
  58. 58. Anatomy of An iPhone App • App is typically made up of 1 window, and many views • A view is active on the window at any point in time • App entry point is AppDelegate • -(void) applicationDidFinishLaunching (show your window here) • Main design pattern is Model/View/Controller http://www.tapadoo.com
  59. 59. Anatomy of An iPhone App • App is typically made up of 1 window, and many views • A view is active on the window at any point in time • App entry point is AppDelegate • -(void) applicationDidFinishLaunching (show your window here) • Main design pattern is Model/View/Controller • So most of your work occurs in your Controller http://www.tapadoo.com
  60. 60. Tools Impressive set of tools http://www.tapadoo.com
  61. 61. Tools: XCode http://www.tapadoo.com
  62. 62. Tools: iPhone Simulator • Simulator lets you run your application on your desktop • Supports tap, drag, pinch, rotate etc. • Necessity during development http://www.tapadoo.com
  63. 63. Tools: Instruments • Monitors your application as it runs • Can help pinpoint performance issues, memory leaks, unnecessary allocations, etc. etc. • Great for chasing memory leaks! http://www.tapadoo.com
  64. 64. Tools: Interface Builder http://www.tapadoo.com
  65. 65. Tools: Interface Builder • Interface builder is click and drag tool for developing UI. http://www.tapadoo.com
  66. 66. Tools: Interface Builder • Interface builder is click and drag tool for developing UI. • Couple of tricks to ease automatic assignment within Interface Builder http://www.tapadoo.com
  67. 67. Tools: Interface Builder • Interface builder is click and drag tool for developing UI. • Couple of tricks to ease automatic assignment within Interface Builder • To access individual controls, define them as IBOutlet http://www.tapadoo.com
  68. 68. Tools: Interface Builder • Interface builder is click and drag tool for developing UI. • Couple of tricks to ease automatic assignment within Interface Builder • To access individual controls, define them as IBOutlet • To create methods that respond to events, define them as IBAction http://www.tapadoo.com
  69. 69. Tools: Interface Builder • Interface builder is click and drag tool for developing UI. • Couple of tricks to ease automatic assignment within Interface Builder • To access individual controls, define them as IBOutlet • To create methods that respond to events, define them as IBAction • ...you can then drag and drop within IB http://www.tapadoo.com
  70. 70. 2 Minutes to Hello World http://www.tapadoo.com
  71. 71. Resources • Apple Developer Portal for iPhone: http://developer.apple.com/iphone • iPhone and Cocoa developers Ireland user group: http://www.xcake.org • My Blog: http://www.tapadoo.com/blog http://www.tapadoo.com
  72. 72. Questions And Answers http://www.tapadoo.com
  73. 73. Summary • Lots of great reasons to build for iPhone • To go from zero to published app, there’s a number of things to have in place: • Hardware: Intel Mac, iPhone or iPod touch for testing • Knowledge: Objective-C, Tools, SDK, Signing • Legal: App Store Contracts http://www.tapadoo.com
  74. 74. Thanks http://www.tapadoo.com
  75. 75. Thanks http://www.tapadoo.com follow me on twitter: dermdaly http://www.tapadoo.com

×