Lecture (November 18th): Basics of iOS Development

Post on 07-Dec-2014

1.312 views 0 download

Tags:

description

These are the slides for the lecture I gave on November 18th for the Polytechnic of Milan's Human-Computer Interaction course. It gives pointers to people that want to begin developing for iOS.

Transcript of Lecture (November 18th): Basics of iOS Development

iPHONE + iPAD:SUDDENLYSOMETHING ELSE∞ · NOVEMBER 18th 2010 · HCI · POLIMI

venerdì 19 novembre 2010

THE FUTUREOH MY GOD THE FUTURE

venerdì 19 novembre 2010

PROGETTO

DATA STATO1987-2001 SCIENCE FICTION

TRICORDER + D-PADSTAR TREK TNG · DS9 · VOYAGER

venerdì 19 novembre 2010

FUTUREOH MY GOD THE FUTURE AND IT IS HERE

PRESENT

venerdì 19 novembre 2010

1. It’s full of stars(THE FUTURE IS HERE THE FUTURE IS HERE)

venerdì 19 novembre 2010

2. It’s where users are!

“THE IPHONE HAS BEEN ABLE TO MAINTAIN OVER 100% Y/Y GROWTH ON AVERAGE.”WWW.ASYMCO.COM

venerdì 19 novembre 2010

… (maybe because it’s the most usable?)

venerdì 19 novembre 2010

3. €€€€€€€€€€€€€€€€€€€(case study: me.)

venerdì 19 novembre 2010

APPLE IPHONE 3G AD: “SHARE”.HTTP://WWW.YOUTUBE.COM/WATCH?V=0CIPNTUVX0C

venerdì 19 novembre 2010

venerdì 19 novembre 2010

> 2,2 million free d/l> 95,000 paid downloads

venerdì 19 novembre 2010

È STATO UN POMERIGGIO DI FINE ESTATESTAVO CAMMINANDO PER LE VIE DEL CENTRO MILANESE (IN CUI PIACE MOLTO PERDERMI) ED ERO IN ZONA BRERA QUANDO SENTO SQUILLARE IL MIO CELLULARESECCATO LO TIRO FUORI, MA UNO SGUARDO ALLO SCHERMO ACCENDE LA MIA CURIOSITÀ. “+44” DICE LO SCHERMO (NON RICORDAVO AL MOMENTO MA QUELLO ERA IL PREFISSO INTERNAZIONALE DEL REGNO UNITO).ALL’ALTRO CAPO UNA VOCE ITALIANA MI FA “CIAO, SONO NONPOSSODIRLO DI APPLE, CHIAMO DA LONDRA.VORRESTI METTERE LA TUA APP NEL NOSTRO SPOT?”

venerdì 19 novembre 2010

YOU, MAKING APPS.(Let’s talk about it.)

venerdì 19 novembre 2010

Design.

venerdì 19 novembre 2010

The iPhoneIS A BUNCH OF SENSORS IN YOUR POCKET WITH A SCREEN.

venerdì 19 novembre 2010

PLAYING MAKE-BELIEVEEXCEPT IT WORKS FOR REAL

venerdì 19 novembre 2010

IBOOKS BY APPLE.

venerdì 19 novembre 2010

OCARINA BY SMULE.HTTP://WWW.YOUTUBE.COM/WATCH?V=RHCJQ7EAJJA

venerdì 19 novembre 2010

The iPhoneIS DIFFERENT FROM A DESKTOP COMPUTER BLUH BLUH BLUH

venerdì 19 novembre 2010

Desktop differences

Quick use. (Pick it up, use it, back in the pocket.)

Imprecise input, bad (best-of-breed) keyboard.

Made for touching: direct manipulation.

Point to pick!

venerdì 19 novembre 2010

The iPhoneIS DIFFERENT FROM ITS COMPETITORS

venerdì 19 novembre 2010

Differences with other phones/OSes (I)

All OS tries to rate good-if-not-best.

Most needed stuff built in.

(Many other factors, but few directly affecting us.)

venerdì 19 novembre 2010

Differences with other phones/OSes (II)

One thing at a time: discrete apps.

Consistency broken very carefully.

RELIABLE!

venerdì 19 novembre 2010

iOS≈ Mac OS X (but different)

venerdì 19 novembre 2010

venerdì 19 novembre 2010

iOS

No filesystem

Instead, discrete tasks in apps!

Built atop responsiveness

Animation everywhere.

No virtual memory (writing)

Apps must not make the OS go out of memory!

venerdì 19 novembre 2010

Apps

Isolated!

Can communicate (URLs, open files, pasteboard [copy/paste])

User always in control.

If user presses Home, YOU QUIT.

venerdì 19 novembre 2010

Tools.NOT CHEAP!

venerdì 19 novembre 2010

REQUIRED STUFF »

venerdì 19 novembre 2010

PLATFORM

DATE STATUSNOVEMBER 15 NEW MACS EVERY 3-6 MONTHS

A MAC€999+

venerdì 19 novembre 2010

TOOLS

DATE STATUSNOVEMBER 15 IN FLUX

XCODEXCODE TOOLS + IOS SDK 4

venerdì 19 novembre 2010

http://developer.apple.com/iosTOOLS ARE FREE · INCLUDES SIMULATOR

venerdì 19 novembre 2010

OPTIONAL STUFF (at least at the time you start) »

venerdì 19 novembre 2010

TESTDEVICE

DATE STATUSNOVEMBER 15 EXPENSIVE

IPHONE€539+ (ACTUALLY OPTIONAL)

venerdì 19 novembre 2010

TESTDEVICE

DATE STATUSNOVEMBER 15 MUCH CHEAPER!

IPOD TOUCH€239+ (ACTUALLY OPTIONAL · WI-FI ONLY)

venerdì 19 novembre 2010

http://developer.apple.com/iosDEVICE DEBUG + DEPLOY: € 79/year

venerdì 19 novembre 2010

And now ACTUAL DEVELOPMENT STUFF.

venerdì 19 novembre 2010

Objective-C.C + OBJECTS.

venerdì 19 novembre 2010

float f = 1.23;int x = fabs(f);

PURE C.

float f = 1.23;int x = fabs(f);

OBJECTIVE-C.

venerdì 19 novembre 2010

[calculator add:1 to:2 and:3];// method == “-add:to:and:”// arguments == 1,2,3

venerdì 19 novembre 2010

-(void) add:(int)a to:(int)b and:(int)c;

venerdì 19 novembre 2010

NSString* x = …;NSString* y = [x substringToIndex:10];

venerdì 19 novembre 2010

id x = …;id y = [x substringToIndex:10];

venerdì 19 novembre 2010

NSArray* a = …;[a addObject:@“12345”];

venerdì 19 novembre 2010

NSArray* a = …;[a performSelector:@selector

(addObject:) withObject:@“1234”];

venerdì 19 novembre 2010

VIEW CONTROLLERS

venerdì 19 novembre 2010

VIEWSmake up what’s onscreen

VIEW CONTROLLERSmake up the LOGICAL structure of your app.

NAVIGATION

ALL SONGS » FAVORITES »

EDIT » SONG PICKER

venerdì 19 novembre 2010

UIAPPLICATION

the app’s DELEGATE

WINDOW

views for 1

VIEW CTL 1 VIEW CTL 2

views for 2

owns

venerdì 19 novembre 2010

UIAPPLICATION

the app’s DELEGATE

WINDOW

views for 1

VIEW CTL 1 VIEW CTL 2

views for 2

BRING YOUR OWN

DONE!

DONE!

DONE!

BRING YOUR OWN

BRING YOUR OWN

DONE!COMBINE ‘EM

ALL!COMBINE ‘EM

ALL!

owns

venerdì 19 novembre 2010

A SIMPLE APP · TOOLS DEMO.

venerdì 19 novembre 2010

Memory management(IMPORTANT BUT BRIEF)

venerdì 19 novembre 2010

Memory management

No automatic garbage collection! (unlike Java, C#)

Reference counting!

If you do it wrong your app will leak or

crash or

both!!!

venerdì 19 novembre 2010

CREATED!1

-retain;2!

-release;1!

-release;0!

DEALLOCATED!-

venerdì 19 novembre 2010

NSArray* a = [[NSArray alloc] init]; // you own it[a retain]; // you own it x2[a release]; // you own it[a release]; // gone!

venerdì 19 novembre 2010

NSArray* a = [NSArray array]; // what do I have to do here?!?

// the answer: NOTHING! no release, no retain,

// unless you need it PAST this function’s return.

venerdì 19 novembre 2010

CREATED!1

-autorelease;1

AUTORELEASE POOL

LATER!(release)0!

DEALLOCATED!

venerdì 19 novembre 2010

THE RULES (1):

every use of:•alloc/init•retain•copy…•new…

must be balanced by a call to either of:•release•autorelease

AND NOTHING ELSE.venerdì 19 novembre 2010

THE RULES (2):

if you want to keep an object you don’t own past the end of the current function, you need to call -retain on it (and -release or -autorelease when done with it).

venerdì 19 novembre 2010

Goodies you get on iOS + App Store.

venerdì 19 novembre 2010

BONJOURNETWORK AUTODISCOVERY

venerdì 19 novembre 2010

GAME CENTERBLUETOOTH + WIFI + ’NET · LEADERBOARDS · ACHIEVEMENTS · INVITES · MATCHMAKING · VOIP

venerdì 19 novembre 2010

IADINTEGRATED ADVERTISING PLATFORM · NO EXTRA BUREAUCRACY

venerdì 19 novembre 2010

IN-APP PURCHASEPAYMENT PROCESSING FOR IN-APP FEATURES & CONTENT · NO EXTRA BUREAUCRACY

venerdì 19 novembre 2010

COUNTRIES SUPPORTED BY APP STOREWOW.

90!venerdì 19 novembre 2010

LOCALIZATION + TOP-TIER UNICODE SUPPORTBUILT-IN TO THE CORE OF THE PLATFORM.

venerdì 19 novembre 2010

GOOGLE MAPS & GEOLOCALIZATIONNO NEED TO PAY GOOGLE’S APPLICATION €€€

venerdì 19 novembre 2010

AUDIO AND VIDEO PLAYBACK + ENCODINGON A MOBILE DEVICE! · H.264 + AAC + MP3 + UNCOMPRESSED FORMATS

venerdì 19 novembre 2010

CORE DATAOBJECT DATABASE · TONS OF FEATURES · OPTIMIZED FOR MOBILE · > 1MLN OBJECT STORES

venerdì 19 novembre 2010

CORE ANIMATIONUNDERLIES EVERYTHING ONSCREEN · TWEENING · 3D · HIGH-PERFORMANCE · MADE FOR UIS

venerdì 19 novembre 2010

SECURITYONBOARD AES ACCELERATION · ENCRYPTED STORAGE · API FOR APP USE · REMOTE MANAGEMENT

venerdì 19 novembre 2010

App Store

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

WHAT IT IS:

• The only way you can get apps on your iPhone (except development)

• Hosting

• Payment processing

• Sales!

venerdì 19 novembre 2010

TO PUBLISHYOU NEED:

• Mac + dev tools + test devices

• Developer program account (79€/year)

• Lots of patience

• VAT # + good accountant (Italy)

• A business plan!

venerdì 19 novembre 2010

YOU CAN PUBLISH: • Most stuff.

venerdì 19 novembre 2010

YOU CAN’T PUBLISH:

• Porn

• Stuff that misleads

• Stuff that uses Apple trademarks unfairly

• Stuff that breaks privacy laws

• Stuff whose behavior changes after review

• Interpreters (!) (*)

• Betas & Demos

venerdì 19 novembre 2010

BORDERLINE:

• Satire

• Crashers

• “Lite”

• Big downloaders

• More apply depending on APIs

https://developer.apple.com/appstore/resources/approval/guidelines.html

venerdì 19 novembre 2010

YOU SET THE PRICE:

• $0.99 to $999.99 (and international equivalents)

• Most apps in the $0.99-$4.99 range

• You get 70%

• Apple gets 30% (and VAT/taxes if applicable)

venerdì 19 novembre 2010

IT’S A GAMBLE.

venerdì 19 novembre 2010

iPAD!

venerdì 19 novembre 2010

TESTDEVICE

DATE PURPOSENOVEMBER 17TH VARIES

IPADTHE NEW HOTNESS

venerdì 19 novembre 2010

The iPad is another kind of animal altogether.

venerdì 19 novembre 2010

iPhone

Take it out, use it, back in the pocket.

Small screen means one thing at a time

Mostly used for its connectivity

iPad

Take it out, use it for a longer period of time.

Larger screen means more stuff/more details.

Mostly used for media consumption and productivity

MORE THAN A PHONENOT ENTIRELY

UNLIKE A LAPTOP

venerdì 19 novembre 2010

Laptop

Traditional mouse/keyboard paradigm.

Chrome around your media

Usually portable

Good text entry

iPad

Multitouch, like on iPhone (and better!)

Just the media

Highly portable

Decent text entry

OLD AND BUSTEDA DIFFERENT THING,

CLEARLY

venerdì 19 novembre 2010

The iPad is the iPhone, all grown up to be an actual computer.

venerdì 19 novembre 2010

There’s more space.USE IT.

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

venerdì 19 novembre 2010

HTTP://WWW.APPLE.COM/IPAD/GUIDED-TOURS/#IBOOKS

venerdì 19 novembre 2010

HTTP://WWW.APPLE.COM/IPAD/GUIDED-TOURS/#PAGES

venerdì 19 novembre 2010

HTTP://WWW.YOUTUBE.COM/WATCH?V=GEW68QJ5KXW

venerdì 19 novembre 2010

We don’t know what the iPad is…

venerdì 19 novembre 2010

… because it’s a new kind of computer.

venerdì 19 novembre 2010

PLAYING MAKE-BELIEVEEXCEPT IT WORKS FOR REAL

venerdì 19 novembre 2010

THE FUTUREOH MY GOD THE FUTURE

venerdì 19 novembre 2010

YEAH WE’RE DONE! Questions?

venerdì 19 novembre 2010