HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
The professional programmer’s DEITEL® guide to iPhone app development using iPhone SDK 3.x, Xcode®, Objective-C® and Cocoa®
More than 1.5 billion iPhone apps were downloaded from Apple’s App Store in just one year! This book gives you everything you’ll need to start developing great iPhone apps quickly and–once you’ve joined Apple’s fee-based iPhone Developer Program–to get them up and running on the App Store. The book uses an app-driven approach–each new technology is discussed in the context of 14 fully tested iPhone apps (7700 lines of code), complete with syntax shading, code walkthroughs and sample outputs. Apps you’ll develop include:
iPhone for Programmers include practical, example-rich coverage of:
• iPhone SDK 3.x, XCode®, Interface Builder
• Object-Oriented Programming in Objective-C® and Cocoa®
• Collections, GUI, Event Handling
• Controllers, Application Templates
• UIView, Multi-Touch™
• Core Audio, Core Animation, NSTimer
• Tables, UINavigationController
• Map Kit, Core Location, GPS, Compass
• Photos, iPod Library Access
• Serialization
Illustrations xvii
Preface xxvii
Before You Begin xxxiii
Chapter 1: Introduction to iPhone App Development 1
1.1 Introduction to iPhone for Programmers 2
1.2 iPhone Overview 3
1.3 Key New iPhone 3GS and OS 3.x Features and Enhancements 6
1.4 Downloading Apps from the App Store 7
1.5 iPhone OS 3.x 8
1.6 Objective-C Programming Language 9
1.7 Design Patterns 10
1.8 Cocoa Frameworks 11
1.9 New iPhone SDK 3 Features 13
1.10 Xcode Toolset 14
1.11 Basics of Object Technology 15
1.12 Web 2.0 17
1.13 Test-Driving the Painter App in the iPhone Simulator 17
1.14 Wrap-Up 22
1.15 Deitel Resource Centers 22
Chapter 2: iPhone App Store and App Business Issues 23
2.1 Introduction 24
2.2 iPhone Developer Program: Setting Up Your Profile for Testing and Submitting Apps 25
2.3 iPhone Human Interface Guidelines 30
2.4 Testing Your App 32
2.5 Preparing Your App for Submission through iTunes Connect 32
2.6 Characteristics of Great iPhone Apps 34
2.7 Avoiding Rejection of Your App 35
2.8 Pricing Your App: Free or Fee 36
2.9 Adding an App to iTunes Connect 38
2.10 Monetizing Paid Apps: Using In App Purchase to Sell Virtual Goods 41
2.11 Using iTunes Connect to Manage Your Apps 42
2.12 Marketing Your App 43
2.13 iPhone Anecdotes and Humor 48
2.14 Other Platforms 49
2.15 iPhone Developer Documentation 50
2.16 Wrap-Up 50
Chapter 3: Welcome App 51
Dive-Into® Xcode, Cocoa and Interface Builder
3.1 Introduction 52
3.2 Overview of the Technologies 52
3.3 Xcode 3.x IDE and Cocoa 53
3.4 Building the Application 56
3.5 Building the GUI with Interface Builder 57
3.6 Running the Welcome App 61
3.7 Wrap-Up 63
Chapter 4: Tip Calculator App 64
Introducing Objective-C Programming
4.1 Introduction 65
4.2 Test-Driving the Tip Calculator App 66
4.3 Overview of the Technologies 66
4.4 Building the App 66
4.5 Adding Functionality to Your App 71
4.6 Connecting Objects in Interface Builder 73
4.7 Implementing the Class’s Methods 76
4.8 Wrap-Up 81
Chapter 5: Favorite Twitter® Searches App 83
Collections and Cocoa GUI Programming
5.1 Introduction 84
5.2 Test-Driving the Favorite Twitter Searches App 85
5.3 Technologies Overview 86
5.4 Building the App 86
5.5 Wrap-Up 101
Chapter 6: Flag Quiz Game App 102
Controllers and the Utility Application Template
6.1 Introduction 103
6.2 Test-Driving the Flag Quiz Game App 106
6.3 Technologies Overview 106
6.4 Building the App 107
6.5 Wrap-Up 127
Chapter 7: Spot-On Game App 129
Using UIView and Detecting Touches
7.1 Introduction 130
7.2 Test-Driving the Spot-On Game App 132
7.3 Overview of the Technologies 132
7.4 Building the App 132
7.5 Wrap-Up 147
Chapter 8: Cannon Game App 154
Animation with NSTimer and Handling Drag Events
8.1 Introduction 155
8.2 Test-Driving the Cannon Game app 156
8.3 Overview of the Technologies 156
8.4 Building the App 157
8.5 Wrap-Up 171
Chapter 9: Painter App 173
Using Controls with a UIView
9.1 Introduction 174
9.2 Overview of the Technologies 174
9.3 Building the App 175
9.4 Wrap-Up 191
Chapter 10: Address Book App 193
Tables and UINavigationController
10.1 Introduction 194
10.2 Test-Driving the Address Book App 196
10.3 Technologies Overview 196
10.4 Building the App 197
10.5 Wrap-Up 219
Chapter 11: Route Tracker App 220
Map Kit and Core Location (GPS and Compass)
11.1 Introduction 221
11.2 Test-Driving the Route Tracker App 224
11.3 Technologies Overview 224
11.4 Building the App 225
11.5 Wrap-Up 238
Chapter 12: Slideshow App 240
Photos and iPod Library Access
12.1 Introduction 241
12.2 Test-Driving the Slideshow App 244
12.3 Technologies Overview 245
12.4 Building the App 245
12.5 Wrap-Up 276
Chapter 13: Enhanced Slideshow App 278
Serialization Data with NSCoder and Playing Video
13.1 Introduction 279
13.2 Test-Driving the Enhanced Slideshow App 281
13.3 Overview of the Technologies 282
13.4 Building the App 282
13.5 Suggested Enhancements 309
13.6 Wrap-Up 309
Chapter 14: Voice Recorder App 310
Audio Recording and Playback
14.1 Introduction 311
14.2 Test-Driving the Voice Recorder App 314
14.3 Overview of the Technologies 314
14.4 Building the App 315
14.5 Speech Synthesis and Recognition 341
14.6 Wrap-Up 341
Chapter 15: Enhanced Address Book App 342
Managing and Transferring Persistent Data
15.1 Introduction 343
15.2 Test-Driving the Enhanced Address Book App 345
15.3 Technologies Overview 345
15.4 Building the App 346
15.5 Wrap-Up 362
Chapter 16: Twitter® Discount Airfares App 364
Internet Enabled Applications
16.1 Introduction 365
16.2 Test-Driving the Twitter Discount Airfares App 366
16.3 Technologies Overview 366
16.4 Building the App 366
16.5 Wrap-Up 386
Index 387