Tải bản đầy đủ (.pdf) (433 trang)

Tài liệu iPhone and iPad in Action: Introduction to SDK Development docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (24.31 MB, 433 trang )

MANNING
Brandon Trebitowski
Christopher Allen
Shannon Appelcline
IN ACTION
Revised edition of
iPhone in Action
Introduction to SDK Development
Praise for iPhone in Action
…iPhone in Action is another smash hit by Manning Publications. Whether you are a novice
programmer or an advanced programmer new to the iPhone platform, you are going to finish this
book feeling ready to take on the world.
—Panah Rad, iPhoneAppsFinder.com
If I were teaching a class on the basics of developing for Apple’s new mobile platform, I would def-
initely use this as the textbook iPhone in Action is a complete primer to iPhone development.
—Victor Agreda, Jr.,
The Unofficial Apple Weblog (TUAW)
well-suited for existing programmers who want comprehensive coverage of the iPhone platform,
the development of webapps, and the key concepts in developing native apps with the
SDK along
with examples.
—Peter Cooper, Mobile Orchard
…excels at providing detailed, organized, and clear information on the development particular-
ities of the iPhone iPhone in Action is the must-have book for developers looking to enter the
realm of iPhone development.
—Cody Overcash, Founder, ModMyi.com
This book is invaluable for beginners because it shows all the possibilities for both web and SDK
and it introduces all the key topics—something no other single title does. Experts will want this
title too for the detailed web development topics.
—Mark Johnson, reader
There is no other iPhone title that has such great coverage of both web and


SDK topics under one
roof, providing a well-rounded developer education.
—Vladimir Pasman,
Cocoacast.com
Download from Wow! eBook <www.wowebook.com>
Download from Wow! eBook <www.wowebook.com>
iPhone and iPad
in Action
INTRODUCTION TO SDK DEVELOPMENT
BRANDON TREBITOWSKI
CHRISTOPHER ALLEN
SHANNON APPELCLINE
Revised Edition of iPhone in Action
MANNING
Greenwich
(74° w. long.)
Download from Wow! eBook <www.wowebook.com>
For online information and ordering of this and other Manning books, please visit
www.manning.com. The publisher offers discounts on this book when ordered in quantity.
For more information, please contact
Special Sales Department
Manning Publications Co.
180 Broad St.
Suite 1323
Stamford, CT 06901
Email:
©2011 by Manning Publications Co. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in
any form or by means electronic, mechanical, photocopying, or otherwise, without prior written
permission of the publisher.

Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in the book, and Manning
Publications was aware of a trademark claim, the designations have been printed in initial caps
or all caps.
Recognizing the importance of preserving what has been written, it is Manning’s policy to have
the books we publish printed on acid-free paper, and we exert our best efforts to that end.
Recognizing also our responsibility to conserve the resources of our planet, Manning books
are printed on paper that is at least 15 percent recycled and processed without the use of
elemental chlorine.
Manning Publications Co. Development editor: Katharine Osborne
180 Broad St. Copyeditor: Tiffany Taylor
Suite 1323 Proofreader: Katie Tennant
Stamford, CT 06901 Typesetter: Dottie Marsico
Cover designer: Marija Tudor
ISBN 978-1-935182-58-0
Printed in the United States of America
12 34567 8910– MAL–15 141312 1110
Download from Wow! eBook <www.wowebook.com>
v
brief contents
1

Introducing the iPhone and iPad 1
2

Learning Objective-C and the iPhone OS SDK 13
3

Using Xcode 36
4


Using Interface Builder 53
5

Creating basic view controllers 68
6

Monitoring events and actions 87
7

Creating advanced view controllers 111
8

Data: actions, preferences, and files 139
9

Data: advanced techniques 159
10

Positioning: accelerometers, location, and the compass 188
11

Media: images and the camera 210
12

Media: audio and recording 224
13

Graphics: Quartz, Core Animation, and OpenGL 243
14


The web: web views and internet protocols 271
15

Peer-to-peer connections using Game Kit 295
16

Push notification services 316
17

The Map Kit framework 328
18

In-app purchasing using Store Kit 342
19

iPhone SDK enhancements 357
Download from Wow! eBook <www.wowebook.com>
Download from Wow! eBook <www.wowebook.com>
vii
contents
preface xvii
acknowledgments xviii
about this book xx
1
Introducing the iPhone and iPad 1
1.1 A bit of history 2
1.2 All for one and one for all: the iPhone OS platform 2
1.3 Core hardware specifications 3
The iPhone 4


The iPad 4

The iPod Touch 4
iPhone and iPad input and output specifications 5
iPhone and iPad network specifications 5

iPhone OS
browser specifications 6

Mobile web standards 8
Other hardware features 8
1.4 How the iPhone and iPad are unique 9
1.5 Understanding iPhone and iPad touch interaction 11
1.6 Summary 12
2
Learning Objective-C and the iPhone OS SDK 13
2.1 Getting ready for the SDK 14
Installing the SDK 14

The anatomy of the SDK 15
Download from Wow! eBook <www.wowebook.com>
CONTENTSviii
2.2 Introducing Objective-C 17
The big picture 17

The message 18

Class definition 20
Properties 22


Other compiler directives 24

Categories and
protocols 24

Wrapping up Objective-C 25
2.3 Introducing the iPhone OS 26
The anatomy of the iPhone OS 26

The object hierarchy of the
iPhone OS 27

Windows and views 28
2.4 The iPhone OS’s methods 30
Object creation 30

Memory management 32

Event
response 33

Lifecycle management 34
2.5 Summary 35
3
Using Xcode 36
3.1 Introducing Xcode 36
The anatomy of Xcode 37

Compiling and executing in

Xcode 38
3.2 Creating a first iPhone project in Xcode: Hello, World! 39
Understanding main.m 39

Understanding the application
delegate 40

Writing Hello, World! 42
3.3 Creating a first iPad project in Xcode: Hello, World! 44
Writing Hello, World! 45
3.4 Creating a new class in Xcode 45
The new class how-to 46

The header file 46

The source
code file 47

Linking it in 49
3.5 Other Xcode functionality 49
Adding frameworks with Xcode 49

Using alternate templates
with Xcode 50

Xcode tips and tricks 51
3.6 Summary 52
4
Using Interface Builder 53
4.1 An introduction to Interface Builder 54

The anatomy of Interface Builder 54

Simulating in Interface
Builder 56
4.2 A first project in Interface Builder:
pictures and the web 57
Creating new objects 57

Manipulating objects graphically 58
Using the inspector window 58

Working with pictures 60
Download from Wow! eBook <www.wowebook.com>
CONTENTS ix
4.3 Building connections in Interface Builder 61
Declaring an IBOutlet 62

Connecting an object 62
Coding with IBOutlets 63
4.4 Other Interface Builder functionality 65
Building other connections 65

Creating external objects 65
Initializing Interface Builder objects 66

Accessing .xib files 66
Creating new .xib files 67
4.5 Summary 67
5
Creating basic view controllers 68

5.1 The view controller family 69
5.2 The standard view controller 70
The anatomy of a view controller 70

Creating a view
controller 71

Creating another view controller 71

Building
up a view controller interface 72

Using your view controller 73
5.3 The table view controller 78
The anatomy of a table view controller 78

Creating a table view
controller 78

Building up a table interface 80

Using your
table view controller 85
5.4 Summary 85
6
Monitoring events and actions 87
6.1 An introduction to events 88
The responder chain 88

Touches and events 89

6.2 A touching example: the event reporter 91
Setting things up in Interface Builder 92

Preparing a view for
touches 93

Controlling your events 95
6.3 Other event functionality 97
Regulating events 97

Other event methods and properties 98
6.4 An introduction to actions 99
The UIControl object 99

Control events and actions 99
Using addTarget:action:forControlEvents: 101
6.5 Adding a button to an application 102
Using addTarget:action:forControlEvents: with a button 102
Using an IBAction with a button 103
6.6 Other action functionality 104
Accepting text input with UITextField 104

Allowing value
selection with UISlider 106

A TextField/Slider mashup 106
Actions made easy 108

Actions in use 108
Download from Wow! eBook <www.wowebook.com>

CONTENTSx
6.7 Introducing notifications 109
6.8 Summary 110
7
Creating advanced view controllers 111
7.1 The tab bar view controller 112
The anatomy of a tab bar view controller 112

Creating a tab
bar view controller 113

Building a tab bar interface 114
Using your tab bar controller 118
7.2 The navigation controller 119
The anatomy of a navigation controller 119

Creating a
navigation controller 120

Completing the navigation
controller 122

Using your navigation controller 124
7.3 Using the flipside controller 127
7.4 The split view controller 129
Creating a split view controller 129

Building the split view
controller 130


Using your split view controller 134
Adjusting the interface for vertical and landscape modes 135
7.5 Popover and modal view controllers 136
Creating a popover view controller 136

Creating a modal view
controller 137
7.6 Summary 138
8
Data: actions, preferences, and files 139
8.1 Accepting user actions 140
8.2 Maintaining user preferences 141
Creating your own preferences 142
Using the system settings 147
8.3 Opening files 151
Accessing your bundle 152

Accessing other directories 153
Manipulating files 154

Filesaver: a UITextView example 155
8.4 Summary 158
9
Data: advanced techniques 159
9.1 Using SQLite 160
Setting up an SQLite database 160

Accessing SQLite 162
Accessing your SQLite database 162


Building a navigation
menu from a database 163

Expanding this example 170
Download from Wow! eBook <www.wowebook.com>
CONTENTS xi
9.2 Accessing the Address Book 170
An overview of the frameworks 170

Accessing Address Book
properties 171

Querying the Address Book 173

Using the
Address Book UI 175
9.3 An introduction to Core Data 179
Background information about Core Data 180

Setting up Core
Data in your application 180

Initializing the Core Data
objects 182

Adding objects to the database 185
Fetching, updating, and deleting objects in Core Data 185
9.4 Summary 187
10
Positioning: accelerometers, location, and the compass 188

10.1 The accelerometers and orientation 189
The orientation property 189

The orientation notification 189
10.2 The accelerometers and movement 190
Accessing the UIAccelerometer 190

Parsing the
UIAcceleration 191

Checking for gravity 191

Checking for
movement 194

Recognizing simple accelerometer
movement 194
10.3 The accelerometers and gestures 197
10.4 All about Core Location 199
The location classes 200

An example using location and
distance 201

An example using altitude 204

Using the
compass 207

Core Location and the internet 208

10.5 Summary 209
11
Media: images and the camera 210
11.1 An introduction to images 211
Loading a UIImage 211

Drawing a UIImageView 212
Modifying an image in the UIKit 213
11.2 Drawing simple images with Core Graphics 213
11.3 Accessing photos 215
Using the image picker 215

Taking photos 216
Saving to the photo album 217
11.4 Collage: an image example 217
The collage view controller 218

The collage temporary image
view 221

The collage view 222

Further exploration of this
example 223
11.5 Summary 223
Download from Wow! eBook <www.wowebook.com>
CONTENTSxii
12
Media: audio and recording 224
12.1 Playing audio from the iPod library 225

Retrieving audio items from the iPod media library 225
Getting information about an MPMediaItem 227

Playing
media items using MPMusicPlayerController 227

Example:
creating a simple media player application 229
12.2 Recording audio 232
Initializing the audio recorder 232

Controlling the
audio recorder 233

Responding to AVAudioRecorder
events 234
12.3 Playing sounds manually 234
Initializing the AVAudioPlayer 235
The AVAudioPlayerDelegate 235

Controlling the
AVAudioPlayer 236
12.4 Example: creating a simple audio recording/
playback application 237
Creating a view-based application 238

Adding the needed
frameworks 238

Setting up the IBActions 238


Creating
the interface 239

Setting up the audio recorder and
implementing the IBActions 239
12.5 Recording, playing, and accessing video 240
12.6 Summary 242
13
Graphics: Quartz, Core Animation, and OpenGL 243
13.1 An introduction to Quartz 2D 244
13.2 The Quartz context 244
Drawing to a UIView 246

Drawing to a bitmap 247
13.3 Drawing paths 248
Finishing a path 249

Creating reusable paths 249
Drawing rectangles 251
13.4 Setting the graphical state 251
Setting colors 252

Making transformations 253
Setting clipping paths 255

Other settings 256
Managing the state 257
13.5 Advanced drawing in Quartz 257
Drawing gradients 257


Drawing images 259
Drawing words 260

What we didn’t cover 262
Download from Wow! eBook <www.wowebook.com>
CONTENTS xiii
13.6 Drawing on a picture: an example 262
The PhotoDraw view controller 262

The photodraw view 264
Expanding on the example 266
13.7 An introduction to Core Animation 266
The fundamentals of Core Animation 267

Getting started with
Core Animation 268

Drawing a simple implicit
animation 268

Drawing a simple explicit animation 269
13.8 An introduction to OpenGL 269
13.9 Summary 270
14
The web: web views and internet protocols 271
14.1 The hierarchy of the internet 271
14.2 Low-level networking 272
The CFHost class 273
14.3 Working with URLs 274

Creating an NSURL 274

Building an NSURLRequest 275
Manipulating HTML data by hand 275
14.4 Using UIWebView 276
Calling up the web view 276

Managing the web view
delegate 278

Thumbnails: a web view example 278
14.5 Parsing XML 280
Starting up NSXMLParser 281

Acting as a delegate 281
Building a sample RSS reader 282

Altitude redux: a Core
Location example 287
14.6 POSTing to the web 289
POSTing by hand 289

Submitting forms 290
14.7 Accessing the social web 291
Using web protocols 291

Using TouchJSON 292
14.8 Summary 294
15
Peer-to-peer connections using Game Kit 295

15.1 Overview of Game Kit 295
15.2 Creating peer-to-peer applications using the
peer picker 296
Using Apple’s built-in peer picker 296

Implementing the
GKSessionDelegate methods 300

Sending and receiving data
between peers 301
Download from Wow! eBook <www.wowebook.com>
CONTENTSxiv
15.3 Example: creating a multiplayer table tennis game 303
Starting the GKTennis project 304

Creating the header
file 304

Creating the table tennis interface 306

Game
initialization 306

Setting up the peer picker and getting
connected 307

Implementing the send and receive
methods 309

The game loop 311


User interaction 314
15.4 Summary 315
16
Push notification services 316
16.1 What are push notifications? 316
16.2 An overview of Apple’s push notification system 318
16.3 Preparing your application to use push notifications 319
Setting up your application certificate 319

Setting up your
provisioning profile 321

The code for handling push
notifications 321

Preparing audio files 323
16.4 Creating a push notification provider in PHP 324
Creating the SSL certificate 324

Implementing the PHP push
notification provider 326
16.5 Summary 327
17
The Map Kit framework 328
17.1 Overview of Map Kit 328
17.2 Adding a map to an application 329
Adding the map using Interface Builder 329

Adding the map

programmatically 330

Controlling the map 330
17.3 Reverse geocoding 332
17.4 Annotating the map 334
Adding basic map annotations 335

Adding custom map
annotations 336
17.5 Summary 341
18
In-app purchasing using Store Kit 342
18.1 Setting up a sandbox testing environment 343
Creating an iTunes test user 343

Adding products 344
18.2 Creating a simple store interface 347
18.3 Summary 355
Download from Wow! eBook <www.wowebook.com>
CONTENTS xv
19
iPhone SDK enhancements 357
19.1 Custom keyboard accessories 358
Extending UITextField 358

Implementing the custom
UITextField 360

Custom keyboards 361
19.2 Going forward: the iPhone 4.0 SDK 362

Multitasking 363

User experience enhancements 364
Multimedia framework enhancements 365

Game Center 365
19.3 Summary 365
appendix A iPhone OS class reference 367
appendix B External sources and references 371
appendix C Publishing your SDK program 373
appendix D Updating current applications for the iPad 376
index 383
Download from Wow! eBook <www.wowebook.com>
Download from Wow! eBook <www.wowebook.com>
xvii
preface
When it came time to write a revised edition of iPhone in Action, Shannon and Christo-
pher had their hands tied with other projects. This is when Manning decided to seek
out another author to perform the necessary updates. They eventually stumbled on
me on Twitter.
I had started programming when I was a junior in high school and spent most of
my time writing web applications and silly Java games. After high school, I attended
the University of New Mexico and acquired a Bachelor of Science degree in Com-
puter Science.
When Apple launched the original iPhone, I drooled over the device and longed
to own one. It wasn’t until Apple came out with the iPhone 3G that I could actually
afford it. Knowing that I wanted to write software for the iPhone, I began learning to
program for it and started a popular development blog called iCodeBlog.com before I
even had a device in hand. Because I was used to reading Javadocs in college, I was
able to learn a lot from the Apple

API documentation.
When I began working on this book, I quickly realized that quite a few of the chap-
ters from the first edition had to go. Although the web applications were a crucial part
of the iPhone apps’ startup, they can no longer compete with native apps. So I
removed the web chapters from the original text and added new ones based on the
newest iPhone
SDK features.
Just as the book was completed, Apple made another big announcement: the com-
pany revealed its newest device, the iPad. Manning and I had a decision to make: either
spend another couple of months on the book, or release a book that would become a
dinosaur the moment it hit the shelves. Fortunately, we chose the former option.
BRANDON TREBITOWSKI
Download from Wow! eBook <www.wowebook.com>
xviii
acknowledgments
Any technical book is a massive undertaking, due to the number of people required to
make sure that it reads well, looks good, and is technically correct. Thus, we have to
thank the entire Manning staff, without whom this book would not exist. They did
more than just correct our errors and polish our words; they also helped us make inte-
gral decisions about the organization and the contents of the book—decisions that we
believe improved it dramatically.
In particular, we’d like to thank the three people at Manning who helped us at the
most pivotal times: Troy Mott, our acquisitions editor, who initially agreed to take on
the book and who stayed with us every step of the way; Katharine Osborne, our devel-
opment editor, who put in an incredible amount of work to ensure the quality of writ-
ing and offered tons of guidance and support along the way; and Marjan Bace, our
publisher, who offered some of the biggest challenges regarding our content and
organization and initiated some of the best improvements.
We’d also like to thank Tiffany Taylor, our copyeditor, and Katie Tennant, our
proofeader. Beyond that, tech editors are crucial to the success of a book like this, so

we want to thank Kalle Alm and Matt Wyman who did the technical proofread of the
manuscript a number of times as it was being revised and updated; they caught minu-
tia that we weren’t even aware of. Though it’s clichéd to say, it’s true: any errors that
sneaked in are ours, but many others were corrected by all of the people we men-
tion—and many more who worked behind the scenes at Manning. They were crucial
to the book, and we’d like to thank them all.
Finally, we’d like to thank the reviewers who generously agreed to read our manu-
script as we worked on it; they improved the book immensely: Ted Neward, Jason
Download from Wow! eBook <www.wowebook.com>
ACKNOWLEDGMENTS xix
Jung, Glenn Stokol, Gershon Kagan, Cos DiFazio, Clint Tredway, Christopher Haupt,
Berndt Hamboeck, Rob Allen, Peter Scott, Lester Lobo, Frank Jania, Curtis Miller,
Chuck Hudson, Carlton Gibson, Amos Bannister, Emeka Okereke, Pratik Patel, Kunal
Mittal, Tyson Maxwell,
TVS Murthy, Kevin Butler, David Hanson, Timothy Binkley-
Jones, Carlo Bottiglieri, and Barry Ezell.
B
RANDON would also like to thank his wife, Ashley, for putting up with the long nights
he spent working on this book. Without her love and support, he would not have
been able to complete a single chapter. He would also like to thank Matt Woodward,
who introduced him to Troy Mott and provided him with the opportunity to work on
this book.
C
HRISTOPHER would like to thank Chris Messina for inviting him to be a founder of
iPhoneDevCamp and to also thank his long-time MacHack and SmartFriends col-
leagues for their support and assistance.
S
HANNON would like to thank Christopher, who got this book started in the first place,
and Brandon for taking on the revised edition.
Download from Wow! eBook <www.wowebook.com>

xx
about this book
iPhone and iPad in Action is an introductory book, intended to teach the basics of
iPhone SDK programming in a tutorial form. It’s an updated revision of iPhone in
Action, which first appeared in 2008. We encourage you to read it straight through,
from chapter 1 to 19. This will introduce the platform, how to program for the iPhone
and iPad, and step you through the entire process in turn.
The audience
We’ve done our best to make this book accessible to everyone who is interested in writ-
ing native programs for the iPhone and iPad. We think it will be especially useful to
people who are looking to dive into the iPhone/iPad arena, because it will allow you
to create native applications for all of Apple’s iDevices.
If you want to learn about iPhone
SDK programming, you should have some expe-
rience with programming in general. It’d be best if you’ve worked with C before, but
that’s not a necessity; if you haven’t, you can read our introduction to Objective-C in
chapter 2, and you should probably expect to do some research on your own to clarify
things. There’s no need to be familiar with Objective-C, Cocoa, or Apple programming
in general. We’ll give you everything you need to become familiar with Apple’s unique
programming style. You’ll probably have a leg up if you understand object-oriented
concepts; but it’s not necessary (and again, you’ll find an introduction in chapter 2).
Roadmap
Chapter 1 explains the details of the iPhone and iPad and how they differ from the
mobile phones that predated the iPhone. It also contains one of this book’s most
Download from Wow! eBook <www.wowebook.com>
ABOUT THIS BOOK xxi
important concepts: the unique features that make the iPhone and iPad stand out
from the pack and which are also of importance to programmers.
Chapter 2 kicks things off by highlighting Objective-C, which is the programming
language used on the iPhone

SDK, and the iPhone OS, which is an immense collection
of frameworks that makes many complex tasks easy.
Chapter 3 looks at Xcode, the first major tool in the SDK. This integrated develop-
ment environment does more than just compile your code. It also helps you correct
simple errors as you type and provides quick, integrated access to all the iPhone pro-
gramming documents.
Chapter 4 shifts the focus to Interface Builder, a graphical design environment
that allows you to create and place interface objects without writing a single line of
code. Interface Builder is a powerful time-saver for programmers and is used through-
out the rest of the text.
Chapter 5 covers simple view controllers. The basic view controller is an important
building block of the
MVC paradigm, dividing control from view; and the table view
controller provides an easy way to organize information while matching the standard
iPhone OS look and feel.
Chapter 6 steps back to talk about user interaction. It covers events, which users
generate by touching the screen with one or more fingers, and actions, which happen
when users interact with a control object like a button or a slider.
Chapter 7 finishes our look at view controllers by examining two more advanced
possibilities. The tab bar view controller allows for modal selection between multiple
pages of content, and the navigation view controller adds hierarchy to tables.
Chapter 8 opens the
SDK toolkit by talking about data. This includes user input,
such as actions and preferences; data storage, such as files; and tools that combine
input and storage, such as the devices’ address book.
Chapter 9 goes into more advanced data strategies. In this chapter, you learn how
to store complex data in an SQLite database or by using Core Data.
Chapter 10 highlights two of the most unique features on the iPhone and
iPad—the accelerometer and the
GPS—showing how the iPhone can track movement

through space.
Chapter 11 covers another of the device’s strengths—media—by showing how to
do basic work with pictures, movies, and sounds
Chapter 12 looks at working with audio. It discusses how to play and record audio
using a device’s microphone and speakers.
Chapter 13 provides an extensive look at graphics, centering on the iPhone’s and
iPad’s vector graphic language, Quartz
2D. It also offers a brief overview of Core Ani-
mation and touches on OpenGL for the iPhone OS.
Chapter 14 examines how you can use the iPhone and iPad to interact with the
internet. This chapter moves through the entire hierarchy of internet communica-
tion, from low-level host connections to
URLs, from web views to modern social lan-
guages like XML and JSON.
Download from Wow! eBook <www.wowebook.com>
ABOUT THIS BOOKxxii
Chapter 15 takes you through the entire process of creating a multiplayer pong
game on the iPhone or iPad. You learn everything about peer-to-peer communication
using the Game Kit framework.
Chapter 16 shows you how to handle push notifications in your applications. It
also provides a simple example of how to create your own push notification server
using
PHP.
Chapter 17 takes an in-depth look at the Map Kit framework. It shows you every-
thing you need in order to integrate fully functional Google maps in any application.
Chapter 18 walks you through one of the main methods for creating a virtual store
in your applications. Using the Store Kit framework, you learn every step of the pro-
cess, from creating products to processing purchases.
Chapter 19 ties up some loose ends and gives you a look at some of the new librar-
ies added to the iPhone

SDK. It also provides you with a roadmap for the iPhone 4.0
SDK and points you in a direction to get more information.
The appendixes contain some additional information that didn’t fit with the flow
of the main text. Appendix A contains a list of SDK objects and what they do. Appen-
dix B features links for many websites of note for iPhone SDK programming. Appen-
dix C includes the current information on how to deploy your SDK programs to actual
devices. Appendix D shows many techniques that you can use to convert iPhone appli-
cations into iPad applications.
Code conventions and downloads
Code examples appear throughout this book. Longer listings appear under clear list-
ing headings, and shorter listings appear between lines of text. All code is set in a
special

font

like

this
to differentiate it from the regular font. Class names have
also been set in code font; if you want to type it into your computer, you’ll be able to
clearly make it out.
With the exception of a few cases of abstract code examples, all code snippets
began life as working programs. You can find the complete set of programs at http://
www.manning.com/iPhoneandiPadinAction. You’ll find two
ZIP files there, one each
for the SDK programs. We encourage you to try the programs as you read; they often
include additional code that doesn’t appear in the book and provides more context.
In addition, we feel that seeing a program working can greatly elucidate the code
required to create it.
The code snippets in this book all include extensive explanations. We often

include short annotations beside the code; and sometimes numbered cueballs beside
lines of code link the subsequent discussion to the code lines.
Software requirements
An Intel-based Macintosh running OS X 10.6 or higher is absolutely required to do
SDK development. You also need to have the iPhone SDK, but this is freely download-
able as soon as you sign up with Apple. The book offers full coverage of the iPhone
SDK 3.2, with some discussion of iOS SDK 4.0.
Download from Wow! eBook <www.wowebook.com>
ABOUT THIS BOOK xxiii
Author Online
This book is intended to be an introduction to iPhone programming. Although it cov-
ers an extensive amount of information about the iPhone and iPad, there’s a lot that
couldn't be covered in a single book. Feel free to come chat with the authors online
about additional topics.
The purchase of iPhone and iPad in Action includes free access to a private web
forum run by Manning Publications, where you can post comments about the book,
ask technical questions, and receive help from the authors and from other users. To
access the forum and subscribe to it, point your web browser to ning.
com/iPhoneandiPadinAction. The Author Online forum and the archives of previ-
ous discussions will be accessible from the publisher’s website for as long as the book
is in print.
Brandon frequently posts tutorials and code snippets on his iPhone development
blog at . He is also very active on Twitter and available to answer
most of your iPhone and iPad development questions. Find him on Twitter at http://
twitter.com/brandontreb.
Christopher and Shannon’s main hangout is ning.
com. This blog contains the newest noteworthy links they have found, discussions
about “missing classes” that we didn’t cover in this book, and occasional articles of
more weight.
And we continue to host Christopher’s original iPhone forum on web develop-

ment, which you can find at .
About the title
By combining introductions, overviews, and how-to examples, the In Action books are
designed to help learning and remembering. According to research in cognitive sci-
ence, the things people remember are things they discover during self-motivated
exploration.
Although no one at Manning is a cognitive scientist, we are convinced that for
learning to become permanent it must pass through stages of exploration, play, and,
interestingly, retelling of what is being learned. People understand and remember
new things, which is to say they master them, only after actively exploring them.
Humans learn in action. An essential part of an In Action guide is that it’s example-
driven. It encourages the reader to try things out, to play with new code, and explore
new ideas.
There is another, more mundane, reason for the title of this book: our readers are
busy. They use books to do a job or to solve a problem. They need books that allow
them to jump in and jump out easily and learn just what they want just when they want
it. They need books that aid them in action. The books in this series are designed for
such readers.
Download from Wow! eBook <www.wowebook.com>
ABOUT THIS BOOKxxiv
About the cover illustration
The illustration on the cover of iPhone and iPad in Action is captioned “Habit of a Lady
of Indostan.” It shows a woman in an intricately decorated dress holding a long-
stemmed flower. The image is taken from the four-volume Collection of the Dress of Differ-
ent Nations by Thomas Jefferys (1757–1752). This comprehensive work, with its beauti-
ful and detailed drawings, has influenced European theatrical costume design for over
200 years. We chose this figure because of its graceful posture and elaborate dress.
Indostan, or as it used to be called, the “Indostanic Peninsula,” is the former name
of South Asia, which is comprised of India, Pakistan, Bangladesh, Sri Lanka, the Mal-
dives, and the Himalayan states of Bhutan and Nepal. Their collective historical back-

ground may be referred to as “the Indian Civilization,” which sets these countries
apart from the rest of the Asian continent. Indostan was also called Hindustan, and
over time it came to mean the Indian subcontinent.
Today, women in India and neighboring countries can still be seen wearing the tra-
ditional sari, which is made of a single long strip of unstitched silk cloth, embroidered
with gold or silver thread. The woman on the cover is wearing a fitted dress that has
sleeves and a defined waist and was likely worn for special occasions, such as weddings
or formal receptions.
Dress codes have changed in the last two hundred and fifty years, and the diversity
by country and by region, so rich at the time, has faded away. It’s now hard to tell apart
the inhabitants of different continents, let alone different regions. Perhaps we have
traded cultural diversity for a more varied personal life—certainly a more varied and
faster-paced technological life.
At a time when it’s hard to tell one computer book from another, Manning cele-
brates the inventiveness and initiative of the computer business with book covers
based on the rich diversity of regional life of more than two centuries ago, brought
back to life by old illustrations such as this one.
Download from Wow! eBook <www.wowebook.com>

×