SlideShare uma empresa Scribd logo
1 de 75
Introduction to iPhone Development
Dermot Daly, Founder tapadoo.com




                                     http://www.tapadoo.com
Agenda

• Introduction

• From Zero to Published Application

• Q&A




                                       http://www.tapadoo.com
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




                                                                              http://www.tapadoo.com
About tapadoo

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

• Offering both published titles and development services




                                                                              http://www.tapadoo.com
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
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
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




                                             http://www.tapadoo.com
Background

• Why develop an app?




                        77 Countries




                                       http://www.tapadoo.com
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




                             http://www.tapadoo.com
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
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
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
Creating and Releasing your first App is a courtship
                   process.....




                                                http://www.tapadoo.com
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

• Release!




                                       http://www.tapadoo.com
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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




                                                         http://www.tapadoo.com
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
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
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
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
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
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 etc.

• Necessity during development




                                                            http://www.tapadoo.com
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
Tools: Interface Builder




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

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




                                                                http://www.tapadoo.com
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
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
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
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
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 user group: http://www.xcake.org

• My Blog: http://www.tapadoo.com/blog




                                                                         http://www.tapadoo.com
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 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
Thanks




         http://www.tapadoo.com
Thanks




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




                                          http://www.tapadoo.com

Mais conteúdo relacionado

Semelhante a Introduction to iPhone Development

AI Deeplearning Programming
AI Deeplearning ProgrammingAI Deeplearning Programming
AI Deeplearning ProgrammingPaulSombat
 
Voicecon - Mashups with Tropo.com
Voicecon - Mashups with Tropo.comVoicecon - Mashups with Tropo.com
Voicecon - Mashups with Tropo.comVoxeo Corp
 
Aandroid coding convention and quality assurance plugin
Aandroid coding convention and quality assurance pluginAandroid coding convention and quality assurance plugin
Aandroid coding convention and quality assurance pluginDuy Tan Geek
 
Comet web applications with Python, Django & Orbited
Comet web applications with Python, Django & OrbitedComet web applications with Python, Django & Orbited
Comet web applications with Python, Django & Orbitedskam
 
Ruby on Rails - The Best Track for your Start Up
Ruby on Rails - The Best Track for your Start UpRuby on Rails - The Best Track for your Start Up
Ruby on Rails - The Best Track for your Start UpPrateek Saxena
 
Teflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surfaceTeflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surfaceSaumil Shah
 
Ignacio Delgado Portfolio
Ignacio Delgado PortfolioIgnacio Delgado Portfolio
Ignacio Delgado PortfolioIgnacio Delgado
 
How to avoid the latency trap and lessons about software design
How to avoid the latency trap and lessons  about software designHow to avoid the latency trap and lessons  about software design
How to avoid the latency trap and lessons about software designTom Croucher
 
Building native Android applications with Mirah and Pindah
Building native Android applications with Mirah and PindahBuilding native Android applications with Mirah and Pindah
Building native Android applications with Mirah and PindahNick Plante
 
2019 session 6 develop programs to solve a variety of problems in math , phys...
2019 session 6 develop programs to solve a variety of problems in math , phys...2019 session 6 develop programs to solve a variety of problems in math , phys...
2019 session 6 develop programs to solve a variety of problems in math , phys...Osama Ghandour Geris
 
Enterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersEnterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersAndreCharland
 
Fluid 3 showcase
Fluid 3  showcaseFluid 3  showcase
Fluid 3 showcasefluid3
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...Sang Don Kim
 
Functional IoT: Hardware and Platform
Functional IoT: Hardware and PlatformFunctional IoT: Hardware and Platform
Functional IoT: Hardware and PlatformKiwamu Okabe
 
iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기Wanbok Choi
 

Semelhante a Introduction to iPhone Development (20)

AI Deeplearning Programming
AI Deeplearning ProgrammingAI Deeplearning Programming
AI Deeplearning Programming
 
Voicecon - Mashups with Tropo.com
Voicecon - Mashups with Tropo.comVoicecon - Mashups with Tropo.com
Voicecon - Mashups with Tropo.com
 
Aandroid coding convention and quality assurance plugin
Aandroid coding convention and quality assurance pluginAandroid coding convention and quality assurance plugin
Aandroid coding convention and quality assurance plugin
 
Comet web applications with Python, Django & Orbited
Comet web applications with Python, Django & OrbitedComet web applications with Python, Django & Orbited
Comet web applications with Python, Django & Orbited
 
Ruby on Rails - The Best Track for your Start Up
Ruby on Rails - The Best Track for your Start UpRuby on Rails - The Best Track for your Start Up
Ruby on Rails - The Best Track for your Start Up
 
Teflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surfaceTeflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surface
 
Ignacio Delgado Portfolio
Ignacio Delgado PortfolioIgnacio Delgado Portfolio
Ignacio Delgado Portfolio
 
How to avoid the latency trap and lessons about software design
How to avoid the latency trap and lessons  about software designHow to avoid the latency trap and lessons  about software design
How to avoid the latency trap and lessons about software design
 
Building native Android applications with Mirah and Pindah
Building native Android applications with Mirah and PindahBuilding native Android applications with Mirah and Pindah
Building native Android applications with Mirah and Pindah
 
2019 session 6 develop programs to solve a variety of problems in math , phys...
2019 session 6 develop programs to solve a variety of problems in math , phys...2019 session 6 develop programs to solve a variety of problems in math , phys...
2019 session 6 develop programs to solve a variety of problems in math , phys...
 
Best practices android_2010
Best practices android_2010Best practices android_2010
Best practices android_2010
 
How to build the Web
How to build the WebHow to build the Web
How to build the Web
 
A First Date With Scala
A First Date With ScalaA First Date With Scala
A First Date With Scala
 
Enterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersEnterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript Developers
 
Python introduction
Python introductionPython introduction
Python introduction
 
Fluid 3 showcase
Fluid 3  showcaseFluid 3  showcase
Fluid 3 showcase
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
 
Functional IoT: Hardware and Platform
Functional IoT: Hardware and PlatformFunctional IoT: Hardware and Platform
Functional IoT: Hardware and Platform
 
iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기
 
Sinatra
SinatraSinatra
Sinatra
 

Último

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Último (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Introduction to iPhone Development

  • 1. Introduction to iPhone Development Dermot Daly, Founder tapadoo.com http://www.tapadoo.com
  • 2. Agenda • Introduction • From Zero to Published Application • Q&A http://www.tapadoo.com
  • 3. Twitter Reminder: #devdays http://www.tapadoo.com
  • 4. About tapadoo http://www.tapadoo.com
  • 5. About tapadoo • Focus is on developing great mobile applications. Initial focus on iPhone http://www.tapadoo.com
  • 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. 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. 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. Background • Why develop an app? http://www.tapadoo.com
  • 10. Background • Why develop an app? http://www.tapadoo.com
  • 11. Background • Why develop an app? 30 Million Devices http://www.tapadoo.com
  • 12. Background • Why develop an app? 77 Countries http://www.tapadoo.com
  • 13. What do I need to learn? http://www.tapadoo.com
  • 14. What do I need to learn? • App Store Process http://www.tapadoo.com
  • 15. What do I need to learn? • App Store Process • Objective-C http://www.tapadoo.com
  • 16. What do I need to learn? • App Store Process • Objective-C • iPhone SDK Class Library http://www.tapadoo.com
  • 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. 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. 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. Creating and Releasing your first App is a courtship process..... http://www.tapadoo.com
  • 22. 1. Ask Her Out http://www.tapadoo.com
  • 24. 2. Meet the Parents (As Early as Possible!) http://www.tapadoo.com
  • 26. 3. Get to know her better http://www.tapadoo.com
  • 28. 4. Put a ring on her finger http://www.tapadoo.com
  • 30. 5. Seal the Deal http://www.tapadoo.com
  • 32. 6. Wait...... http://www.tapadoo.com
  • 34. 7. Waaaaaaahhhh - An App is born http://www.tapadoo.com
  • 35. The Courtship Process • Join ADC • Set up account and tax information • Develop app, sign app • Submit • Wait • Release! http://www.tapadoo.com
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Anatomy of An iPhone App http://www.tapadoo.com
  • 54. Anatomy of An iPhone App • App is typically made up of 1 window, and many views http://www.tapadoo.com
  • 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. 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. 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. 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. 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. Tools Impressive set of tools http://www.tapadoo.com
  • 61. Tools: XCode http://www.tapadoo.com
  • 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. 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. Tools: Interface Builder http://www.tapadoo.com
  • 65. Tools: Interface Builder • Interface builder is click and drag tool for developing UI. http://www.tapadoo.com
  • 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. 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. 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. 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. 2 Minutes to Hello World http://www.tapadoo.com
  • 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. Questions And Answers http://www.tapadoo.com
  • 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. Thanks http://www.tapadoo.com
  • 75. Thanks http://www.tapadoo.com follow me on twitter: dermdaly http://www.tapadoo.com

Notas do Editor