iPhone development: A brief introduction

97
iPhone development a brief introduction pete goodliffe iPhone Development a brief introduction Pete Goodliffe [email protected] ACCU 2010 Hello, world!

Transcript of iPhone development: A brief introduction

Page 1: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

iPhoneDevelopmenta brief introduction

Pete [email protected]

ACCU 2010

Hello,world!

Page 2: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Pete GoodliffeA programmer, a columnist, an author, a teacher. Someone who cares about code.

www.goodliffe.netgoodliffe.blogspot.com

@petegoodliffe

Page 3: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Pete GoodliffeA programmer, a columnist, an author, a teacher. Someone who cares about code.

www.goodliffe.netgoodliffe.blogspot.com

@petegoodliffe

Page 4: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

An introduction to iPhone developmentAn introduction to iPhone development for beginners or those who are casually interested and want a leg up the learning curve.

This talk is an overview of how to get started as an iPhone developer, and an introduction to the core technologies, including:

‣ Common iPhone/Mac OS design patterns, idioms, and practices‣ Becoming a native: how to "think in iPhone"‣ Overview of the libraries and facilities that exist‣ Limitations of the development environment

talk synopsis

iPhone development a brief introduction pete goodliffe

Page 5: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

90 minutes? is that all?!!!

Page 6: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Mmm… pie

Page 7: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Introduction

Page 8: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

who are you?

Page 9: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

why developfor the iPhone?

Page 10: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

the alternatives

Page 11: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 12: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 13: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

The tools

Page 14: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

❖ The cast ❖

XcodeiPhone/iPod Touch/iPad

Interface builderiPhone simulator

Instruments/SharkOther tools

Page 15: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Xcode

Page 16: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Page 17: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Page 18: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

an iPhone

Page 19: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Interface Builder

Page 20: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

iPhone simulator

Page 21: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Instruments/Shark

Page 22: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Other tools

Page 23: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Getting set up...

Get a MacGet the tools

InstallGet an ADC account

Code…

Profit

$$$

Page 24: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 25: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 26: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

The language

Page 27: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

(well, languages)C

C++Objective-C

Page 28: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Page 29: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

a history of objective-c in 14

lines and 12 words(give or take)

Page 30: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

algol

CPLBCPLBC

Simula

Smalltalk

Objective-C

C++

Java C# D

Page 31: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

objective C is...dynamic

based on message passingfollows C compilation model

full of [ ] and @s

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

not too

scary!

(brace yourself)

Page 32: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

@implementation MyClass

@end

.m file

Page 33: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

@implementation MyClass

@end

@class@interface@implementation@end@property@private@protected

Page 34: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

@implementation MyClass

@end

Page 35: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

@implementation MyClass

@end

Page 36: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

@implementation MyClass

@end

Page 37: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

@implementation MyClass

@end

Can still write (and call)

C free functions

Page 38: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

@implementation MyClass

@end

NSString

Page 39: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

@implementation MyClass

@end

Page 40: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

- (id) thisIsAMethod:(int)param1 signatute:(float)param2{ for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; }}

@implementation MyClass

@end

Can call nil

Page 41: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

[object method];int i = [object method]; [[object method1] method2];

[object method:10]; [object1 method:[object 2:method]];

Sending messages

Page 42: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Method names

[circle setCenterAtX:(float)x y:(float)y];

object

parameters

method name

method name is: setCenterAtX:y:

SEL s = @selector(setCenterAtX:y:); [circle performSelector:s];

Page 43: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

parameter types:int, float, unsigned, etcsyntax: (return type)

id

Page 44: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@class ForwardDeclaration;

@interface MyClass : NSObject{ ForwardDeclaration *member; bool otherMember;}

- (void) init;- (id) initWithItems:(NSArray*)array enabled:(bool)enabled;

+ (id) myClassWithItems:(NSArray*)array;

@end

.h file

Page 45: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@class ForwardDeclaration;

@interface MyClass : NSObject{ ForwardDeclaration *member; bool otherMember;}

- (void) init;- (id) initWithItems:(NSArray*)array enabled:(bool)enabled;

+ (id) myClassWithItems:(NSArray*)array;

@end

Page 46: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@class ForwardDeclaration;

@interface MyClass : NSObject{ ForwardDeclaration *member; bool otherMember;}

- (void) init;- (id) initWithItems:(NSArray*)array enabled:(bool)enabled;

+ (id) myClassWithItems:(NSArray*)array;

@end

Page 47: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@class ForwardDeclaration;

@interface MyClass : NSObject{ ForwardDeclaration *member; bool otherMember;}

- (void) init;- (id) initWithItems:(NSArray*)array enabled:(bool)enabled;

+ (id) myClassWithItems:(NSArray*)array;

@end

Page 48: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@class ForwardDeclaration;

@interface MyClass : NSObject{ ForwardDeclaration *member; bool otherMember;}

- (void) init;- (id) initWithItems:(NSArray*)array enabled:(bool)enabled;

+ (id) myClassWithItems:(NSArray*)array;

@end

Page 49: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@class ForwardDeclaration;

@interface MyClass : NSObject{ ForwardDeclaration *member; bool otherMember;}

- (void) init;- (id) initWithItems:(NSArray*)array enabled:(bool)enabled;

+ (id) myClassWithItems:(NSArray*)array;

@end

Page 50: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@class ForwardDeclaration;

@interface MyClass : NSObject{ ForwardDeclaration *member; bool otherMember;}

- (void) init;- (id) initWithItems:(NSArray*)array enabled:(bool)enabled;

+ (id) myClassWithItems:(NSArray*)array;

@end

Page 51: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@class ForwardDeclaration;

@interface MyClass : NSObject{ ForwardDeclaration *member; bool otherMember;}

- (void) init;- (id) initWithItems:(NSArray*)array enabled:(bool)enabled;

+ (id) myClassWithItems:(NSArray*)array;

@end

Page 52: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Objective C++In .mm files

Classes can contain C++ objectsMay use in functions

You can use RAIIC++ libraries

Page 53: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@interface MyClass { int harold; } @property (nonatomic,assign) int harold; @end

In MyClass.m... @interface MyClass @synthesize harold; @end

Properties

This will become important when we look at creating UIs

Page 54: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

The tao of objectsYou don’t call methods

You pass messages to objects

[theObject sendMessage:parameter];

Page 55: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

object.myMethod(1066);

Java, C++, C#

class MyClass{ public myMethod(int i) { // ... }};

MyClass

myMethod(int)

another()

more()

private data

MyClass *this

Page 56: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

[object myMethod:1066];

Objective-C

@implementation MyClass- (void) myMethod:(int)i{ // ...}@end

MyClass

myMethod(int)

another()

private data

MyClass *self

message (selector)

Page 57: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

@interface NSObject (Foo)- (void) extraFooMethod;@end

NSArray *array = [NSArray array];[array extraFooMethod];

Categories

Page 58: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

NSArray *array1 = [[NSArray alloc] init];NSArray *array2 = [NSArray array];

[array1 release];[array2 release]; // wrong

Circle *circle = [[Circle alloc] initAtCenterX:100 y:100 radius:200];

Object lifetimeAll objects are reference counted

(the retain count)

Page 59: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Action Retain count

[[object alloc] init]; 1

[object retain]; 2

[object release]; 1

[object release]; 0

[object dealloc];

Page 60: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

NSObjectNSStringNSArray NSMutableArrayNSNumberNSThreadNSDictionary NSMutableDictionaryNSApplicationNSData NSMutableDataNSURLNSSet NSMutableSetNSValue

The usual suspects

Page 61: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Statically typed my arse#import

Page 62: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Idioms

DelegatesKey-value coding

Protocol (interfaces)formal and informal

Page 63: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

The libraries

Cocoa Touch

Media

Core Services

Core OSC

Objective C

Posix,SQLite, Core Foundation, BSD

Core Audio, Open GL ES, Quartz, Core Animation

UIKit, etc

Page 64: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 65: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 66: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

The UI

Page 67: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Interface Builder

Page 68: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Held in .xib files(Compiled NIBs)

Loaded into application (semi-automatically)

IB is tightly integrated with Xcode

UIKit framework

Page 69: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Page 70: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Create UI elements

Link to an object reference in the XIB through properties

marked as IBOutlet

Link actions to methods defined IBAction

Page 71: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

//// ExampleAppDelegate.h// Example//// Created by Pete Goodliffe on 03/04/2010.// Copyright __MyCompanyName__ 2010. All rights reserved.//

#import <UIKit/UIKit.h>

@interface ExampleAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; UINavigationController *navigationController;}

@property (nonatomic, retain) IBOutlet UIWindow *window;@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

@end

Page 72: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 73: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 74: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UI

Technologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Key technologies

Page 75: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

UIKitCore Graphics

Core AudioMedia Core / AVFoundation

MapKit / Core LocationCoreData (or sqlite)

OpenGL ESExternal Accessory

Page 76: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UI

Technologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 77: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 78: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Deploying

Page 79: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

iPhone simulator

DeployingiPhone

App store

freex86

runs at desktop speedmore memorynetwork stable

developer account ($$$)“DRM hell”

Deployment certificates100 devices per year

iTunes connectAnother build type

different build targets

Page 80: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

App store

submit

get rejected

fix it

resubmit

profit

Page 81: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 82: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 83: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Further info

Page 84: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Xcode documentationdeveloper.apple.com/iphone

BooksWebsites

Stack Overflow, CocoaDev, ADC

Videos on iTunes Uhttp://itunes.stanford.edu/

Page 85: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 86: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 87: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Tipsand tricks

Page 88: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Thinking iPhone

Page 89: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Get the UI right

HIGresource conservation

(alpha blending, prerendering)

Page 90: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

The network is not always available

Page 91: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Do not write to disk(often)

Page 92: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Conserve resources

RAMCPU

filesystem

Page 93: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 94: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...

‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

Page 95: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Intro

Tools

Language

UITechnologies

Deploying

Further info

Tips

Demoin 90 minutes...‣ Intro‣ The tools‣ The language‣ The UI‣ Key technologies‣ Deploying‣ Further info‣ Tips and tricks‣ The demo

The demo

Page 96: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

(wish me luck)

wasn’t that marvellous?!

Page 97: iPhone development: A brief introduction

iPhone development a brief introduction pete goodliffe

Pete [email protected]