OS3 - DevDays Galway - Introduction To iPhone Development

1,117 views

Published on

A walkthrough of building a simple Twitter app. This will give a grounding in the fundamentals of an iPhone app development.
The talk includes;
- Project Tools and Design Patterns
- Use Interface Builder to visually design your application's interface
- Responding to User Input
- How to connect your code to your Interface Elements

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,117
On SlideShare
0
From Embeds
0
Number of Embeds
58
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • OS3 - DevDays Galway - Introduction To iPhone Development

    1. 1. Walkthrough of Building an iPhone App Damian OSuilleabhain OS3
    2. 2. Who Am I?
    3. 3. Who Am I? • Software Developer with 15 Years Experience
    4. 4. Who Am I? • Software Developer with 15 Years Experience • Worked with VB, Java, Classic ASP, JSP, C# and ASP.NET
    5. 5. Who Am I? • Software Developer with 15 Years Experience • Worked with VB, Java, Classic ASP, JSP, C# and ASP.NET • Bought an iPhone in 2008 - A gateway drug!
    6. 6. Who Am I? • Software Developer with 15 Years Experience • Worked with VB, Java, Classic ASP, JSP, C# and ASP.NET • Bought an iPhone in 2008 - A gateway drug! • Shortly thereafter Bought a MacBookPro, learned Objective C and Cocoa
    7. 7. Who Am I? • Software Developer with 15 Years Experience • Worked with VB, Java, Classic ASP, JSP, C# and ASP.NET • Bought an iPhone in 2008 - A gateway drug! • Shortly thereafter Bought a MacBookPro, learned Objective C and Cocoa • Now working as a Full Time Freelance iPhone Developer
    8. 8. Who Am I? • Software Developer with 15 Years Experience • Worked with VB, Java, Classic ASP, JSP, C# and ASP.NET • Bought an iPhone in 2008 - A gateway drug! • Shortly thereafter Bought a MacBookPro, learned Objective C and Cocoa • Now working as a Full Time Freelance iPhone Developer • 3 of My Own Apps on the App Store, 2 for Clients, More in development
    9. 9. Who Am I? • Software Developer with 15 Years Experience • Worked with VB, Java, Classic ASP, JSP, C# and ASP.NET • Bought an iPhone in 2008 - A gateway drug! • Shortly thereafter Bought a MacBookPro, learned Objective C and Cocoa • Now working as a Full Time Freelance iPhone Developer • 3 of My Own Apps on the App Store, 2 for Clients, More in development • Interested in collaborations or projects
    10. 10. Goal For This Session
    11. 11. Goal For This Session • A Walkthrough of Building a Simple iPhone Application
    12. 12. Goal For This Session • A Walkthrough of Building a Simple iPhone Application • Apply the Knowledge Gained in the Introduction to Objective-C
    13. 13. Goal For This Session • A Walkthrough of Building a Simple iPhone Application • Apply the Knowledge Gained in the Introduction to Objective-C • Give you a Grounding in the Fundamentals of an iPhone Application
    14. 14. What Will We Build?
    15. 15. What Will We Build? • “Epic Tweets”
    16. 16. What Will We Build? • “Epic Tweets” • A simple Twitter client
    17. 17. What Will We Build? • “Epic Tweets” • A simple Twitter client • Shows the public timeline
    18. 18. What Will We Build? • “Epic Tweets” • A simple Twitter client • Shows the public timeline • Demonstrates the principles discussed
    19. 19. Epic Tweets
    20. 20. Epic Tweets
    21. 21. Epic Tweets
    22. 22. What Will Be Covered
    23. 23. What Will Be Covered • Developer Tools
    24. 24. What Will Be Covered • Developer Tools • Design Patterns
    25. 25. What Will Be Covered • Developer Tools • Design Patterns • Project Structure  
    26. 26. What Will Be Covered • Developer Tools • Design Patterns • Project Structure   • Visually Design Your Application's Interface
    27. 27. What Will Be Covered • Developer Tools • Design Patterns • Project Structure   • Visually Design Your Application's Interface • Responding to User Input
    28. 28. What Will Be Covered • Developer Tools • Design Patterns • Project Structure   • Visually Design Your Application's Interface • Responding to User Input • Connecting the Interface to Your Code
    29. 29. What Will Be Covered • Developer Tools • Design Patterns • Project Structure   • Visually Design Your Application's Interface • Responding to User Input • Connecting the Interface to Your Code • What We Have Not Covered
    30. 30. What Will Be Covered • Developer Tools • Design Patterns • Project Structure   • Visually Design Your Application's Interface • Responding to User Input • Connecting the Interface to Your Code • What We Have Not Covered • Questions
    31. 31. Developer Tools
    32. 32. Developer Tools • Xcode
    33. 33. Developer Tools • Xcode • Interface Builder
    34. 34. Developer Tools • Xcode • Interface Builder • Simulator
    35. 35. Developer Tools • Xcode • Interface Builder • Simulator • Instruments
    36. 36. Developer Tools - Xcode
    37. 37. Developer Tools - Xcode • Xcode is an integrated development environment (IDE) that provides all of the tools you need to;
    38. 38. Developer Tools - Xcode • Xcode is an integrated development environment (IDE) that provides all of the tools you need to; • create and manage your iPhone projects and source files,
    39. 39. Developer Tools - Xcode • Xcode is an integrated development environment (IDE) that provides all of the tools you need to; • create and manage your iPhone projects and source files, • build your code into an executable, and
    40. 40. Developer Tools - Xcode • Xcode is an integrated development environment (IDE) that provides all of the tools you need to; • create and manage your iPhone projects and source files, • build your code into an executable, and • run and debug your code either in iPhone simulator or on a device.
    41. 41. Developer Tools - Interface Builder
    42. 42. Developer Tools - Interface Builder • Interface Builder is the tool you use to assemble your application’s user interface visually.
    43. 43. Developer Tools - Interface Builder • Interface Builder is the tool you use to assemble your application’s user interface visually. • Using Interface Builder, you assemble your application’s window by dragging and dropping preconfigured components onto it.
    44. 44. Developer Tools - Simulator
    45. 45. Developer Tools - Simulator • The iPhone simulation environment lets you build and run your iPhone application on your computer
    46. 46. Developer Tools - Simulator • The iPhone simulation environment lets you build and run your iPhone application on your computer • Presents the iPhone user interface in a window on your computer
    47. 47. Developer Tools - Simulator • The iPhone simulation environment lets you build and run your iPhone application on your computer • Presents the iPhone user interface in a window on your computer • Lets you simulate most of the actions a user performs on their device
    48. 48. Developer Tools - Simulator • The iPhone simulation environment lets you build and run your iPhone application on your computer • Presents the iPhone user interface in a window on your computer • Lets you simulate most of the actions a user performs on their device • Important to note a simulator, not an emulator. Does not give a realistic view of memory or processor performance
    49. 49. Developer Tools - Instruments
    50. 50. Developer Tools - Instruments • The Instruments environment lets you analyse the performance of your iPhone applications while running in the simulator or on a device.
    51. 51. Developer Tools - Instruments • The Instruments environment lets you analyse the performance of your iPhone applications while running in the simulator or on a device. • You can gather data about your application’s memory usage, disk activity, network activity, and graphics performance.
    52. 52. Design Patterns
    53. 53. Design Patterns • Delegation
    54. 54. Design Patterns • Delegation • Model View Controller
    55. 55. Design Patterns • Delegation • Model View Controller • Target-Action
    56. 56. Design Patterns - Delegation
    57. 57. Design Patterns - Delegation • The delegation design pattern is a way of modifying complex objects without subclassing them.
    58. 58. Design Patterns - Delegation • The delegation design pattern is a way of modifying complex objects without subclassing them. • Instead of subclassing, you use the complex object as is and put any custom code for modifying the behaviour of that object inside a separate object, which is referred to as the delegate object.
    59. 59. Design Patterns - Delegation • The delegation design pattern is a way of modifying complex objects without subclassing them. • Instead of subclassing, you use the complex object as is and put any custom code for modifying the behaviour of that object inside a separate object, which is referred to as the delegate object. • At pre-defined times, the complex object then calls the methods of the delegate object to give it a chance to run its custom code.
    60. 60. Design Patterns - MVC
    61. 61. Design Patterns - MVC • The Model-View-Controller (MVC) design pattern is a way of dividing your code into independent functional areas.
    62. 62. Design Patterns - MVC • The Model-View-Controller (MVC) design pattern is a way of dividing your code into independent functional areas. • The model portion defines your application’s underlying data engine and is responsible for maintaining the integrity of that data.
    63. 63. Design Patterns - MVC • The Model-View-Controller (MVC) design pattern is a way of dividing your code into independent functional areas. • The model portion defines your application’s underlying data engine and is responsible for maintaining the integrity of that data. • The view portion defines the user interface for your application and has no explicit knowledge of the origin of data displayed in that interface.
    64. 64. Design Patterns - MVC • The Model-View-Controller (MVC) design pattern is a way of dividing your code into independent functional areas. • The model portion defines your application’s underlying data engine and is responsible for maintaining the integrity of that data. • The view portion defines the user interface for your application and has no explicit knowledge of the origin of data displayed in that interface. • The controller portion acts as a bridge between the model and view and facilitates updates between them.
    65. 65. Design Patterns - Target-Action
    66. 66. Design Patterns - Target-Action • Controls use the target-action design pattern to notify your application of user interactions.
    67. 67. Design Patterns - Target-Action • Controls use the target-action design pattern to notify your application of user interactions. • When the user interacts with a control in a predefined way (such as by tapping a button), the control sends a message (the action) to an object you specify (the target).
    68. 68. Design Patterns - Target-Action • Controls use the target-action design pattern to notify your application of user interactions. • When the user interacts with a control in a predefined way (such as by tapping a button), the control sends a message (the action) to an object you specify (the target). • Upon receiving the action message, the target object can then respond in an appropriate manner (such as by updating application state in response to the button push).
    69. 69. Project Structure
    70. 70. Project Structure • Class Files
    71. 71. Project Structure • Class Files • Definitions (*.h)
    72. 72. Project Structure • Class Files • Definitions (*.h) • Implementations (*.m)
    73. 73. Project Structure • Class Files • Definitions (*.h) • Implementations (*.m) • Resources
    74. 74. Project Structure • Class Files • Definitions (*.h) • Implementations (*.m) • Resources • Property Lists (*.plist)
    75. 75. Project Structure • Class Files • Definitions (*.h) • Implementations (*.m) • Resources • Property Lists (*.plist) • Interface Files (*.xib)
    76. 76. Project Structure • Class Files • Definitions (*.h) • Implementations (*.m) • Resources • Property Lists (*.plist) • Interface Files (*.xib) • Images, audio etc.
    77. 77. The Code Demo
    78. 78. The Code Demo • Visually Design Your Application's Interface
    79. 79. The Code Demo • Visually Design Your Application's Interface • Connect the Interface With Your Code
    80. 80. The Code Demo • Visually Design Your Application's Interface • Connect the Interface With Your Code • Responding To User Input
    81. 81. What We Have Not Covered
    82. 82. What We Have Not Covered • Non Technical
    83. 83. What We Have Not Covered • Non Technical • Getting Set-up with Digital Certificates
    84. 84. What We Have Not Covered • Non Technical • Getting Set-up with Digital Certificates • App Store Submission Process
    85. 85. What We Have Not Covered • Non Technical • Getting Set-up with Digital Certificates • App Store Submission Process • Technical
    86. 86. What We Have Not Covered • Non Technical • Getting Set-up with Digital Certificates • App Store Submission Process • Technical • Details of the XML Parser
    87. 87. Questions
    88. 88. Questions • Any Questions on Anything We Have Covered?
    89. 89. Contact Details
    90. 90. Contact Details • Email: damian@os3.ie
    91. 91. Contact Details • Email: damian@os3.ie • Twitter: @DamianOS3
    92. 92. Contact Details • Email: damian@os3.ie • Twitter: @DamianOS3 • Web: http://os3.ie
    93. 93. Contact Details • Email: damian@os3.ie • Twitter: @DamianOS3 • Web: http://os3.ie • Happy to answer any questions you have on iPhone development
    94. 94. Contact Details • Email: damian@os3.ie • Twitter: @DamianOS3 • Web: http://os3.ie • Happy to answer any questions you have on iPhone development • Even happier to discuss any projects you would like me to do!

    ×