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

3,968
-1

Published on

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

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

No Downloads
Views
Total Views
3,968
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide










































































































































  • 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

    ×