Developing for iPhone

154
developing for the iPhone tim lucas & pete ottery

description

presentation by myself and Pete Ottery at Web Directions South 2008 discussing our experience developing iphone.news.com.au, and my experience with the mobile version of webjam.com.au

Transcript of Developing for iPhone

Page 1: Developing for iPhone

developingfor the iPhonetim lucas & pete ottery

Page 2: Developing for iPhone

RAILS & JAVASCRIPT

Page 3: Developing for iPhone
Page 4: Developing for iPhone
Page 5: Developing for iPhone

2 parts.

Page 6: Developing for iPhone

it’s SHITDANGs, not iphones

Page 7: Developing for iPhone

why build a mobile version?

Page 8: Developing for iPhone
Page 9: Developing for iPhone

photo by Scot Campbellflickr.com/people/randomurl

IPHONE FRAMEWORK

GRIPES

Page 10: Developing for iPhone

Mobile SafariCSS3

Javascript

Page 11: Developing for iPhone

OLD SCHOOLMOBILE DEVELOPMENT

Page 12: Developing for iPhone

http://www.flickr.com/photos/rageman/2677718167/

photo by Mark Cohenflickr.com/people/rageman

DISTRACTED BY THE HYPE

IT’S EASY TO BE

Page 13: Developing for iPhone
Page 14: Developing for iPhone
Page 15: Developing for iPhone

You should not make sites for the iPhone -and that includes the URL.

Page 16: Developing for iPhone

Copyright © 2008 Brian Fling. All trademarks and copyrights remain the property of their respective owners.

Mobile 2.0: Design and Develop for the iPhone and Beyondby Brian FlingWeb 2.0 Expo, San Francisco, April 22, 2008

Page 17: Developing for iPhone

1st of many

Page 18: Developing for iPhone
Page 19: Developing for iPhone

developingfor the iPhonetim lucas & pete ottery

Page 20: Developing for iPhone

Super Hot Internet Touchscreen

Devices And Next Generation Mobiles

developing for

Page 21: Developing for iPhone

S H IT

D A NG

!

developing for

Mobiles

Page 22: Developing for iPhone

SHITDANG !

developing for

Mobiles

Page 23: Developing for iPhone

developingfor SHITDANGstim lucas & pete ottery

Page 24: Developing for iPhone

developingfor Mobile 2.0tim lucas & pete ottery

Page 25: Developing for iPhone

EntryTicket

Page 26: Developing for iPhone
Page 27: Developing for iPhone
Page 28: Developing for iPhone

<link media=’only screen and (max-device-width: 480px)’ ...

Page 29: Developing for iPhone
Page 30: Developing for iPhone

OLIVER WEIDLICH

Page 31: Developing for iPhone

One Web, No Go.

Page 32: Developing for iPhone
Page 33: Developing for iPhone

iphone.news.com.au

Page 34: Developing for iPhone

.mobile pages

Page 35: Developing for iPhone

redirect users

Page 36: Developing for iPhone
Page 37: Developing for iPhone

HTTP Header: User-Agent

Page 38: Developing for iPhone
Page 39: Developing for iPhone
Page 40: Developing for iPhone
Page 41: Developing for iPhone
Page 42: Developing for iPhone

Only redirect /

Page 43: Developing for iPhone
Page 44: Developing for iPhone
Page 45: Developing for iPhone
Page 46: Developing for iPhone

photo by Esti Alvarezflickr.com/people/esti

COOKIES

Page 47: Developing for iPhone

“mode”

http://www.flickr.com/photos/esti/147733640/

Page 48: Developing for iPhone
Page 49: Developing for iPhone
Page 50: Developing for iPhone

use URLs!

Page 51: Developing for iPhone

-> link to www.news.com.au

iphone.news.com.au

Page 52: Developing for iPhone

-> /?no-mobile-redirect=true

/home.mobile

Page 53: Developing for iPhone

-> /webjam8

/webjam8.mobile

Page 54: Developing for iPhone
Page 55: Developing for iPhone
Page 56: Developing for iPhone

/webjam8

-> /webjam8.mobile

Page 57: Developing for iPhone
Page 58: Developing for iPhone

http://www.flickr.com/photos/randomurl/2558566674/

photo by Scot Campbellflickr.com/people/randomurl

IPHONE FRAMEWORK

GRIPES

Page 59: Developing for iPhone

iUIciUI

WebApp.Net

Page 60: Developing for iPhone

1. Native iPhone UI2. Ajax-style page nav3. Swoosh!

Page 61: Developing for iPhone

Create Navigational Menus and iPhone interfaces

No knowledge of JS required

Provide a more “iPhone-like” experience

Page 62: Developing for iPhone

Native iPhone UI

Page 63: Developing for iPhone

OS SPECIFIC DESIGN

DOES NOT AGE WELL

Page 64: Developing for iPhone
Page 65: Developing for iPhone
Page 66: Developing for iPhone
Page 67: Developing for iPhone
Page 68: Developing for iPhone

“Building a great mobile user experience is hard.Go easy on yourself by starting simple.

Brian Fling, Mobile 2.0

Page 69: Developing for iPhone

2. AJAX-style page navigation

Page 70: Developing for iPhone
Page 71: Developing for iPhone

WHILST IT MIGHT

IMPRESS

Page 72: Developing for iPhone

AND FEEL A BIT

SNAPPIER

Page 73: Developing for iPhone

http://www.flickr.com/photos/32834218@N00/365808908/

photo by fenlandsnapperflickr.com/people/32834218@N00

HOW MANY KITTENS DO WE NEED TO

SACRIFICE?

Page 74: Developing for iPhone

Back button

Page 75: Developing for iPhone

Bookmarking

Page 76: Developing for iPhone

URLs

Page 77: Developing for iPhone

phones w/o javascript

Page 78: Developing for iPhone

http://flickr.com/photos/aquan/2780542246/

photo by Adrian Qflickr.com/people/aquan

NEW GENERATION OF

ACCESSIBILITY ISSUES?

Page 79: Developing for iPhone

http://flickr.com/photos/kurafire/189985967/

photo by Faruk Ateşflickr.com/people/kurafire

WWJKD?

Page 80: Developing for iPhone
Page 81: Developing for iPhone

http://www.flickr.com/photos/damienroue/2875259386/

photo by Damien Rouéflickr.com/people/damienroue

WHO USES AN IPHONE

IN BED?

Page 82: Developing for iPhone

efficient interactions

Page 83: Developing for iPhone

EXAMPLE: WEBJAM 8

PHOTO BROWSING

Page 84: Developing for iPhone

AJAXData URLsCSS Sprites

Asset BundlingCache Headers

YSlow

Page 85: Developing for iPhone

3. The Swoosh Effect

Page 86: Developing for iPhone

transitions

Page 87: Developing for iPhone

and

Page 88: Developing for iPhone

animations

Page 89: Developing for iPhone

are

Page 90: Developing for iPhone

all

Page 91: Developing for iPhone

about

Page 92: Developing for iPhone

subtlety

Page 93: Developing for iPhone

only 2 people allowed.

Page 94: Developing for iPhone
Page 95: Developing for iPhone
Page 96: Developing for iPhone

Use your existing tools

Page 97: Developing for iPhone

Pete

Page 98: Developing for iPhone

Part 1

Different interaction models.Design for phones & iphones.

Page 99: Developing for iPhone

Part 2

Getting started.Code examples.

Page 100: Developing for iPhone

mice vs

thumbs?

Page 101: Developing for iPhone
Page 102: Developing for iPhone

40 x 15 pixels

Page 103: Developing for iPhone
Page 104: Developing for iPhone

416px

320px

Page 105: Developing for iPhone

thumbs/fingers

=about 50 x 50px

Page 106: Developing for iPhone

thumbs/fingers

=about 50 x 50px

Page 107: Developing for iPhone

Simplify as much as you can.

Page 108: Developing for iPhone

And then delete a bit more.

Page 109: Developing for iPhone
Page 110: Developing for iPhone

“Visiting web sites that have been redesigned for the iPhone is often a quicker and more pleasing experience

than it is on ... 20-inch or larger screens.”

Page 111: Developing for iPhone
Page 112: Developing for iPhone
Page 113: Developing for iPhone

phones vs

iPhone

Page 114: Developing for iPhone
Page 115: Developing for iPhone
Page 116: Developing for iPhone

Getting started

Page 117: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Example</title></head><body>

<h1>Kiwis carve up washed up mystery lump</h1> <div class="time-stamp">Tuesday 7:51AM</div> <p>A LARGE chunk of something unpleasant has washed up on a New Zealand beach and excited locals are stealing bits of it.</p> <p>Some say the “disgusting” squarish white block, the size of a 44-gallon drum, is cheese - possibly brie, while others believe it is ambergris, or whale vomit.</p> <p>And that has solved the problem for council workers who were wondering how to remove the 500kg mystery object that washed up on a beach in Wellington.</p>

<h2><a href="link">The Other Side</a></h2>

<ul> <li><a href="link">Finally a suit to be worn in the shower</a></li> <li><a href="link">Smelly know-it-alls the ultimate irritation</a></li> <li><a href="link">Sorry man’s ass thrown in jail</a></li> <li><a href="link">Ike survivors in the lion’s den</a></li> <li><a href="link">Woman finds python in Dutch hotel toilet</a></li> </ul>

</body></html>

Page 118: Developing for iPhone

qÉñí

Page 119: Developing for iPhone

qÉñí

Page 120: Developing for iPhone

qÉñí

Page 121: Developing for iPhone

qÉñí

Page 122: Developing for iPhone

qÉñí

Page 123: Developing for iPhone

qÉñí

Page 124: Developing for iPhone

qÉñí

Page 125: Developing for iPhone

qÉñí

Page 126: Developing for iPhone

qÉñí

Page 127: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Example</title></head><body>

<h1>Kiwis carve up washed up mystery lump</h1> <div class="time-stamp">Tuesday 7:51AM</div> <p>A LARGE chunk of something unpleasant has washed up on a New Zealand beach and excited locals are stealing bits of it.</p> <p>Some say the “disgusting” squarish white block, the size of a 44-gallon drum, is cheese - possibly brie, while others believe it is ambergris, or whale vomit.</p> <p>And that has solved the problem for council workers who were wondering how to remove the 500kg mystery object that washed up on a beach in Wellington.</p>

<h2><a href="link">The Other Side</a></h2>

<ul> <li><a href="link">Finally a suit to be worn in the shower</a></li> <li><a href="link">Smelly know-it-alls the ultimate irritation</a></li> <li><a href="link">Sorry man’s ass thrown in jail</a></li> <li><a href="link">Ike survivors in the lion’s den</a></li> <li><a href="link">Woman finds python in Dutch hotel toilet</a></li> </ul>

</body></html>

Page 128: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title></head><body>

<h1>Kiwis carve up washed up mystery lump</h1> <div class="time-stamp">Tuesday 7:51AM</div> <p>A LARGE chunk of something unpleasant has washed up on a New Zealand beach and excited locals are stealing bits of it.</p> <p>Some say the “disgusting” squarish white block, the size of a 44-gallon drum, is cheese - possibly brie, while others believe it is ambergris, or whale vomit.</p> <p>And that has solved the problem for council workers who were wondering how to remove the 500kg mystery object that washed up on a beach in Wellington.</p>

<h2><a href="link">The Other Side</a></h2>

<ul> <li><a href="link">Finally a suit to be worn in the shower</a></li> <li><a href="link">Smelly know-it-alls the ultimate irritation</a></li> <li><a href="link">Sorry man’s ass thrown in jail</a></li> <li><a href="link">Ike survivors in the lion’s den</a></li> <li><a href="link">Woman finds python in Dutch hotel toilet</a></li> </ul>

</body></html>

Page 129: Developing for iPhone

qÉñí

Page 130: Developing for iPhone

qÉñí

Page 131: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none;

}

</style></head><body>

<h1>Kiwis carve up washed up mystery lump</h1> <div class="time-stamp">Tuesday 7:51AM</div> <p>A LARGE chunk of something unpleasant has washed up on a New Zealand beach and excited locals are stealing bits of it.</p> <p>Some say the “disgusting” squarish white block, the size of a 44-gallon drum, is cheese - possibly brie, while others believe it is ambergris, or whale vomit.</p> <p>And that has solved the problem for council workers who were wondering how to remove the 500kg mystery object that washed up on a beach in Wellington.</p>

<h2><a href="link">The Other Side</a></h2>

-- code continues below --

Page 132: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none;

}

body { font: 16px/1.3 Helvetica; }

</style></head><body>

<h1>Kiwis carve up washed up mystery lump</h1> <div class="time-stamp">Tuesday 7:51AM</div> <p>A LARGE chunk of something unpleasant has washed up on a New Zealand beach and excited locals are stealing bits of it.</p> <p>Some say the “disgusting” squarish white block, the size of a 44-gallon drum, is cheese - possibly brie, while others believe it is ambergris, or whale vomit.</p> <p>And that has solved the problem for council workers who were wondering how to remove the 500kg mystery object that washed up on a beach in Wellington.</p>

-- code continues below --

Page 133: Developing for iPhone

qÉñí

Page 134: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none;

}

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

</style></head><body>

<h1>Kiwis carve up washed up mystery lump</h1>

-- code continues below --

Page 135: Developing for iPhone

qÉñí

Page 136: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none;

}

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

</style></head><body>

<h1>Kiwis carve up washed up mystery lump</h1>

-- code continues below --

Page 137: Developing for iPhone

qÉñí

Page 138: Developing for iPhone

qÉñí

Page 139: Developing for iPhone

qÉñí

Page 140: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none;

}

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

</style></head><body>

<h1>Kiwis carve up washed up mystery lump</h1> -- code continues below --

Page 141: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none;

}

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

h2 { font-size:1.2em; background-color:#c10b0e; border: 1px solid #800000; }

</style></head><body>

<h1>Kiwis carve up washed up mystery lump</h1> -- code continues below --

Page 142: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none;

}

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

h2 { font-size:1.2em; background-color:#c10b0e; border: 1px solid #800000; -webkit-border-radius: 5px; padding: 3px 6px; margin: 1em 0 .4em; -webkit-box-shadow: 0 5px 0 #ccc; }

</style></head><body>

<h1>Kiwis carve up washed up mystery lump</h1> -- code continues below --

Page 143: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none; }

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

h2 { font-size:1.2em; background-color:#c10b0e; border: 1px solid #800000; -webkit-border-radius: 5px; padding: 3px 6px; margin: 1em 0 .4em; -webkit-box-shadow: 0 5px 0 #ccc; }

a { text-decoration:none; color:#000; font-weight:bold; }

h2 a { color:#fff; text-shadow: -1px -1px 0 #800000; }

Page 144: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none; }

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

h2 { font-size:1.2em; background-color:#c10b0e; border: 1px solid #800000; -webkit-border-radius: 5px; padding: 3px 6px; margin: 1em 0 .4em; -webkit-box-shadow: 0 5px 0 #ccc; }

a { text-decoration:none; color:#000; font-weight:bold; display:block; }

h2 a { color:#fff; text-shadow: -1px -1px 0 #800000; background: url("sprites.png") no-repeat 100% -5px; }

Page 145: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none; }

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

h2 { font-size:1.2em; background-color:#c10b0e; border: 1px solid #800000; -webkit-border-radius: 5px; padding: 3px 6px; margin: 1em 0 .4em; -webkit-box-shadow: 0 5px 0 #ccc; }

a { text-decoration:none; color:#000; font-weight:bold; display:block; }

h2 a { color:#fff; text-shadow: -1px -1px 0 #800000; background: url("sprites.png") no-repeat 100% -5px; }

Page 146: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none; }

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

h2 { font-size:1.2em; background-color:#c10b0e; border: 1px solid #800000; -webkit-border-radius: 5px; padding: 3px 6px; margin: 1em 0 .4em; -webkit-box-shadow: 0 5px 0 #ccc; }

a { text-decoration:none; color:#000; font-weight:bold; display:block; }

h2 a { color:#fff; text-shadow: -1px -1px 0 #800000; background: url("sprites.png") no-repeat 100% -5px; }

ul { margin:0; padding:0; list-style-type:none; } li { margin:0; padding:0; border-bottom: 1px dotted #ccc; } li a { padding: 12px 30px 12px 0; background: url("sprites.png") no-repeat 100% -105px; }

Page 147: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none; }

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

h2 { font-size:1.2em; background-color:#c10b0e; border: 1px solid #800000; -webkit-border-radius: 5px; padding: 3px 6px; margin: 1em 0 .4em; -webkit-box-shadow: 0 5px 0 #ccc; }

a { text-decoration:none; color:#000; font-weight:bold; display:block; }

h2 a { color:#fff; text-shadow: -1px -1px 0 #800000; background: url("sprites.png") no-repeat 100% -5px; }

ul { margin:0; padding:0; list-style-type:none; } li { margin:0; padding:0; border-bottom: 1px dotted #ccc; } li a { padding: 12px 30px 12px 0; background: url("sprites.png") no-repeat 100% -105px; overflow:hidden; white-space: nowrap; text-overflow: ellipsis; }

Page 148: Developing for iPhone

qÉñí

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Example</title> <style type="text/css">

html { -webkit-text-size-adjust: none; }

body { font: 16px/1.3 Helvetica; }

h1 { font-size:1.6em; } .time-stamp { color:#666; border-top: 1px dotted #ccc; border-bottom: 2px solid #000; padding: 5px 0; margin-top:-.3em; }

p:first-of-type { font-weight:bold; }

h2 { font-size:1.2em; background-color:#c10b0e; border: 1px solid #800000; -webkit-border-radius: 5px; padding: 3px 6px; margin: 1em 0 .4em; -webkit-box-shadow: 0 5px 0 #ccc; }

a { text-decoration:none; color:#000; font-weight:bold; display:block; }

h2 a { color:#fff; text-shadow: -1px -1px 0 #800000; background: url("sprites.png") no-repeat 100% -5px; }

ul { margin:0; padding:0; list-style-type:none; } li { margin:0; padding:0; border-bottom: 1px dotted #ccc; } li a { padding: 12px 30px 12px 10px; background: url("sprites.png") no-repeat 100% -105px, url("sprites.png") repeat-x 0 100%; overflow:hidden; white-space: nowrap; text-overflow: ellipsis; }

Page 149: Developing for iPhone

some stats on usage

Page 150: Developing for iPhone

ãKåÉïëKÅçãK~ìä~ìåÅÜÉÇ=åçî=MT

Page 151: Developing for iPhone

ãKåÉïëKÅçãK~ìä~ìåÅÜÉÇ=åçî=MT

áéÜçåÉKåÉïëKÅçãK~ìä~ìåÅÜÉÇ=àìäó=MU

Page 152: Developing for iPhone

ïÉÉâÇ~óë ïÉÉâÉåÇë

mfÛëãKåÉïëKÅçãK~ì

Page 153: Developing for iPhone

ïÉÉâÇ~óë ïÉÉâÉåÇë

mfÛëáéÜçåÉKåÉïëKÅçãK~ì

Page 154: Developing for iPhone

the end.

Questions?