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

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

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