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
Dermot Daly, Founder tapadoo.com




                                     http://www.ta...
Agenda

• Introduction

• From Zero to Published Application

• Q&A




                                       http://www....
Twitter Reminder: #devdays




                             http://www.tapadoo.com
About tapadoo




                http://www.tapadoo.com
About tapadoo

• Focus is on developing great mobile applications. Initial focus on iPhone




                           ...
About tapadoo

• Focus is on developing great mobile applications. Initial focus on iPhone

• Offering both published titl...
About tapadoo

• Focus is on developing great mobile applications. Initial focus on iPhone

• Offering both published titl...
About tapadoo

• Focus is on developing great mobile applications. Initial focus on iPhone

• Offering both published titl...
Background

• Why develop an app?




                        http://www.tapadoo.com
Background

• Why develop an app?




                        http://www.tapadoo.com
Background

• Why develop an app?




                        30 Million Devices




                                     ...
Background

• Why develop an app?




                        77 Countries




                                       http...
What do I need to learn?




                           http://www.tapadoo.com
What do I need to learn?

• App Store Process




                           http://www.tapadoo.com
What do I need to learn?

• App Store Process

• Objective-C




                           http://www.tapadoo.com
What do I need to learn?

• App Store Process

• Objective-C

• iPhone SDK Class Library




                             ...
What do I need to learn?

• App Store Process

• Objective-C

• iPhone SDK Class Library

• Tools: XCode, Interface Builde...
What do I need to learn?

• App Store Process

• Objective-C

• iPhone SDK Class Library

• Tools: XCode, Interface Builde...
What do I need to learn?

• App Store Process

• Objective-C

• iPhone SDK Class Library

• Tools: XCode, Interface Builde...
Creating and Releasing your first App is a courtship
                   process.....




                                  ...
http://www.tapadoo.com
1. Ask Her Out




                 http://www.tapadoo.com
http://www.tapadoo.com
2. Meet the Parents (As Early as Possible!)




                                              http://www.tapadoo.com
http://www.tapadoo.com
3. Get to know her better




                            http://www.tapadoo.com
http://www.tapadoo.com
4. Put a ring on her finger




                             http://www.tapadoo.com
http://www.tapadoo.com
5. Seal the Deal




                   http://www.tapadoo.com
http://www.tapadoo.com
6. Wait......




                http://www.tapadoo.com
http://www.tapadoo.com
7. Waaaaaaahhhh - An App is born




                                   http://www.tapadoo.com
The Courtship Process

• Join ADC

• Set up account and tax information

• Develop app, sign app

• Submit

• Wait

• Rele...
Objective-C

• Object Oriented extensions to ANSI-C

• Full set of class libraries (collections, etc.)

• Quite different ...
Very Simple Objective-C Class

 • Consists of interface section (in classname.h)...


    @interface Rectangle : NSObject ...
Very Simple Objective-C Class

 • Consists of interface section (in classname.h)...


    @interface Rectangle : NSObject ...
Very Simple Objective-C Class

 • Consists of interface section (in classname.h)...


    @interface Rectangle : NSObject ...
Very Simple Objective-C Class

 • Consists of interface section (in classname.h)...


    @interface Rectangle : NSObject ...
Very Simple Objective-C Class

 • Consists of interface section (in classname.h)...


    @interface Rectangle : NSObject ...
Implementation

 • ...and an implementation section in a .m file

 #import quot;Rectangle.hquot;
 @implementation Rectangle...
Implementation

 • ...and an implementation section in a .m file

 #import quot;Rectangle.hquot;
 @implementation Rectangle...
Implementation

 • ...and an implementation section in a .m file

 #import quot;Rectangle.hquot;
 @implementation Rectangle...
Implementation

 • ...and an implementation section in a .m file

 #import quot;Rectangle.hquot;
 @implementation Rectangle...
Implementation

 • ...and an implementation section in a .m file

 #import quot;Rectangle.hquot;
 @implementation Rectangle...
Objective-C Syntax

 • Method calls are enclosed in square brackets


  Rectangle *r = [[Rectangle alloc] init];
  	[r set...
Objective-C Syntax

 • Method calls are enclosed in square brackets


  Rectangle *r = [[Rectangle alloc] init];
  	[r set...
Objective-C Syntax

 • Method calls are enclosed in square brackets


  Rectangle *r = [[Rectangle alloc] init];
  	[r set...
Objective-C Syntax

 • Method calls are enclosed in square brackets


  Rectangle *r = [[Rectangle alloc] init];
  	[r set...
Objective-C Syntax

 • Method calls are enclosed in square brackets


  Rectangle *r = [[Rectangle alloc] init];
  	[r set...
iPhone SDK Class Libraries

• Full-featured set of “Layers”
                                                          Coco...
Anatomy of An iPhone App




                           http://www.tapadoo.com
Anatomy of An iPhone App

• App is typically made up of 1 window, and many views




                                     ...
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 ...
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 ...
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 ...
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 ...
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 ...
Tools




        Impressive set of tools




                                  http://www.tapadoo.com
Tools: XCode




               http://www.tapadoo.com
Tools: iPhone Simulator

• Simulator lets you run your application on your desktop

• Supports tap, drag, pinch, rotate et...
Tools: Instruments

• Monitors your application as
  it runs

• Can help pinpoint
  performance issues, memory
  leaks, un...
Tools: Interface Builder




                           http://www.tapadoo.com
Tools: Interface Builder

• Interface builder is click and drag tool for developing UI.




                              ...
Tools: Interface Builder

• Interface builder is click and drag tool for developing UI.

• Couple of tricks to ease automa...
Tools: Interface Builder

• Interface builder is click and drag tool for developing UI.

• Couple of tricks to ease automa...
Tools: Interface Builder

• Interface builder is click and drag tool for developing UI.

• Couple of tricks to ease automa...
Tools: Interface Builder

• Interface builder is click and drag tool for developing UI.

• Couple of tricks to ease automa...
2 Minutes to Hello World




                           http://www.tapadoo.com
Resources

• Apple Developer Portal for iPhone: http://developer.apple.com/iphone

• iPhone and Cocoa developers Ireland u...
Questions And Answers




                        http://www.tapadoo.com
Summary

• Lots of great reasons to build for iPhone

• To go from zero to published app, there’s a number of things to ha...
Thanks




         http://www.tapadoo.com
Thanks




           http://www.tapadoo.com
         follow me on twitter: dermdaly




                                 ...
Upcoming SlideShare
Loading in …5
×

Introduction to iPhone Development

557 views

Published on

Given at http://devdays.info Dublin April 23 2009

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

×