Foreword xxv Preface xxix
Acknowledgments xliii
About the Authors xlv
Part I: Getting Started 1
Chapter 1: Your First App 3
Creating the Hello World Project 3
Getting Text on the Screen 10
Say Hello 12
Summary 17
Chapter 2: Getting Started with Xcode 19
The IDE 19
Workspace Window 20
Preferences 26
Developer Documentation 34
Editors 35
Project Settings 36
Schemes 39
Organizer 40
Other Xcode Tools 41
Summary 41
Chapter 3: Getting Started with Interface Builder 43
Interface Builder 43
How Does IB Work? 44
Getting Hands-On with IB 45
Connecting Your NIB to Your Code 57
Storyboards 63
Summary 64
Chapter 4: Getting Started with Objective-C 65
What Is Objective-C? 65
Hands-On with Objective-C 66
Using the CoinTosser Class 84
Memory Management 85
Summary 87
Chapter 5: Getting Started with Cocoa 89
The Cocoa Stack 89
Foundation 91
UIKit 103
Common Design Patterns in Cocoa 112
Summary 113
Chapter 6: Provisioning Your iPad 115
About the iOS Provisioning Portal 115
The Provisioning Process: A Brief Overview 117
Setting Up Your Development Machine 121
Setting Up Your Device 128
Using the iOS Provisioning Portal 131
Summary 139
Chapter 7: App Design 141
Defining Your App 141
UI Design Considerations 148
Mockups 154
Prototyping 160
Summary 163
Part II: Building PhotoWheel 165
Chapter 8: Creating a Master-Detail App 167
Building a Prototype App 167
A Closer Look 173
A Tour of UISplitViewController 181
Summary 187
Exercises 187
Chapter 9: Using Table Views 189
First Things First 189
A Closer Look 193
Working with a Table View 194
Summary 230
Exercises 230
Chapter 10: Working with Views 231
Custom Views 231
A Wheel View 233
A Carousel View 240
A Photo Wheel View Cell 248
Summary 252
Exercises 252
Chapter 11: Using Touch Gestures 253
Touch Gestures Explained 253
Custom Touch Gestures 258
Summary 266
Exercises 267
Chapter 12: Adding Photos 269
Two Approaches 269
Using the Image Picker Controller 271
Summary 284
Exercises 284
Chapter 13: Data Persistence 285
The Data Model 285
Building the Model with Property Lists 286
Building the Model with Core Data 298
Using Core Data in PhotoWheel 307
Adding Custom Code to Model Objects 315
Using SQLite Directly 326
Summary 327
Exercises 327
Chapter 14: Storyboarding in Xcode 329
What Is a Storyboard? 329
Storyboarding PhotoWheel 333
Summary 349
Exercises 349
Chapter 15: Doing More with View Controllers 351
Implementing a View Controller 351
Segue 355
Customizing the Pop Transitions 364
Container View Controller 367
Summary 376
Exercises 376
Chapter 16: Building the Main Screen 377
Reusing Prototype Code 378
Displaying Photo Albums 398
Managing Photo Albums 409
A Better Photo Album Thumbnail 425
Adding Photos 429
Displaying Photos 434
Summary 455
Exercises 455
Chapter 17: Creating a Photo Browser 457
Using the Scroll View 457
Launching the Photo Browser 467
Adding Chrome Effects 477
Zooming 482
Deleting a Photo 489
Summary 498
Exercise 498
Chapter 18: Supporting Device Rotation 499
How to Support Rotation 499
Customized Rotation 502
Fixing the Trouble Spots 511
Launch Images 520
Summary 523
Exercises 523
Chapter 19: Printing with AirPrint 525
How Printing Works 525
Adding Printing to PhotoWheel 527
Summary 531
Exercises 532
Chapter 20: Sending Email 533
How It Works 533
The SendEmailController Class 535
Summary 546
Exercises 546
Chapter 21: Web Services 547
The Basics 547
Flickr 549
One More Thing 580
What's Missing 582
Summary 582
Exercises 582
Chapter 22: Syncing with iCloud 583
Syncing Made Simple 583
iCloud Concepts 584
Device Provisioning, Revisited 586
iCloud Considerations for PhotoWheel 592
Updating PhotoWheel for iCloud 593
Syncing Photos with iCloud 598
Summary 607
Exercises 607
Chapter 23: Producing a Slideshow with AirPlay 609
External Display Options 609
App Requirements for External Displays 609
External Display API 610
Adding a Slideshow to PhotoWheel 611
Managing External Displays 616
Advancing to the Next Photo 620
Adding Slideshow User Interface Controls 622
Updating the Photo Browser 624
A Note on Testing and Debugging 625
Adding AirPlay Support 626
Using AirPlay 628
Summary 629
Exercises 629
Chapter 24: Visual Effects with Core Image 631
Core Image Concepts 631
Introducing CIFilter 633
Image Analysis 636
Adding Core Image Effects to PhotoWheel 638
Summary 656
Exercises 656
Part III: The Finishing Touches 659
Chapter 25: Debugging 661
Understand the Problem 661
Debugging Concepts 662
Debugging in Xcode 663
Debugging Example: External Display Code 670
When You Really Need NSLog 674
Profiling Code with Instruments 676
Summary 682
Chapter 26: Distributing Your App 683
Distribution Methods 683
Building for Ad Hoc Distribution 684
Building for App Store Distribution 688
The App Store Process 691
App Information for the App Store 692
App Store Assets 694
Using iTunes Connect 695
Submitting the App 696
Going Further 698
Summary 699
Chapter 27: The Final Word 701
What's Next 702
Appendix A: Installing the Developer Tools 703
Joining the iOS Developer Program 704
Downloading Xcode 708
Installing Xcode 708
Index 711