SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

En vedette

Linux & Open Source : Lezione Tre
Linux & Open Source : Lezione TreLinux & Open Source : Lezione Tre
Linux & Open Source : Lezione TreDario Mazza
 
Relazione Progetto cRio
Relazione Progetto cRioRelazione Progetto cRio
Relazione Progetto cRioDario Mazza
 
Linux & Open Source : Lezione Tre Pratica
Linux & Open Source : Lezione Tre PraticaLinux & Open Source : Lezione Tre Pratica
Linux & Open Source : Lezione Tre PraticaDario Mazza
 
OWL Guide Resticted
OWL Guide RestictedOWL Guide Resticted
OWL Guide RestictedDario Mazza
 
Presentazione Progetto cRio
Presentazione Progetto cRioPresentazione Progetto cRio
Presentazione Progetto cRioDario Mazza
 
Linux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroLinux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroDario Mazza
 
Linux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 PraticaLinux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 PraticaDario Mazza
 

En vedette (8)

Linux & Open Source : Lezione Tre
Linux & Open Source : Lezione TreLinux & Open Source : Lezione Tre
Linux & Open Source : Lezione Tre
 
Relazione Progetto cRio
Relazione Progetto cRioRelazione Progetto cRio
Relazione Progetto cRio
 
Linux & Open Source : Lezione Tre Pratica
Linux & Open Source : Lezione Tre PraticaLinux & Open Source : Lezione Tre Pratica
Linux & Open Source : Lezione Tre Pratica
 
WSMO Restricted
WSMO RestrictedWSMO Restricted
WSMO Restricted
 
OWL Guide Resticted
OWL Guide RestictedOWL Guide Resticted
OWL Guide Resticted
 
Presentazione Progetto cRio
Presentazione Progetto cRioPresentazione Progetto cRio
Presentazione Progetto cRio
 
Linux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroLinux & Open Source : Lezione Quattro
Linux & Open Source : Lezione Quattro
 
Linux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 PraticaLinux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 Pratica
 

Similaire à Introduction to iPhone Development

2019 session 5 describe different basic programming codes and languages
2019 session 5 describe different basic programming codes and languages2019 session 5 describe different basic programming codes and languages
2019 session 5 describe different basic programming codes and languagesOsama Ghandour Geris
 
Intro to mobile development with sencha touch
Intro to mobile development with sencha touchIntro to mobile development with sencha touch
Intro to mobile development with sencha touchjgarifuna
 
Developing Desktop Applications using HTML and Javascript
Developing Desktop Applications using HTML and JavascriptDeveloping Desktop Applications using HTML and Javascript
Developing Desktop Applications using HTML and JavascriptJeff Haynie
 
Swift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSwift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSasha Goldshtein
 
Intro to mobile development with sencha touch
Intro to mobile development with sencha touchIntro to mobile development with sencha touch
Intro to mobile development with sencha touchjgarifuna
 
Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011Anton Arhipov
 
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
 

Similaire à Introduction to iPhone Development (20)

2019 session 5 describe different basic programming codes and languages
2019 session 5 describe different basic programming codes and languages2019 session 5 describe different basic programming codes and languages
2019 session 5 describe different basic programming codes and languages
 
Intro to mobile development with sencha touch
Intro to mobile development with sencha touchIntro to mobile development with sencha touch
Intro to mobile development with sencha touch
 
Developing Desktop Applications using HTML and Javascript
Developing Desktop Applications using HTML and JavascriptDeveloping Desktop Applications using HTML and Javascript
Developing Desktop Applications using HTML and Javascript
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
 
Swift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSwift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS X
 
Intro to mobile development with sencha touch
Intro to mobile development with sencha touchIntro to mobile development with sencha touch
Intro to mobile development with sencha touch
 
Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011
 
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
 

Dernier

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Dernier (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

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

Notes de l'éditeur