Introduction 1
Who Can Become an iOS Developer? 2
Who Should Use This Book? 2
What Is (and Isn't) in This Book? 3
HOUR 1: Preparing Your System and iDevice for Development 5
Welcome to the iOS Platform. 5
Becoming an iOS Developer 9
Creating and Installing a Development Provisioning Profile 14
Running Your First iOS App. 19
Developer Technology Overview. 20
Further Exploration 22
Summary 23
Q&A 23
Workshop. 24
HOUR 2: Introduction to Xcode and the iOS Simulator 25
Using Xcode 25
Using the iOS Simulator 51
Further Exploration 56
Summary 57
Q&A 57
Workshop. 58
HOUR 3: Discovering Objective-C: The Language of Apple Platforms 59
Object-Oriented Programming and Objective-C 59
Exploring the Objective-C File Structure. 64
Objective-C Programming Basics 73
Memory Management and ARC. 83
Further Exploration 86
Summary 86
Q&A 87
Workshop. 88
HOUR 4: Inside Cocoa Touch 89
What Is Cocoa Touch? 89
Exploring the iOS Technology Layers 91
Tracing the iOS Application Life Cycle 97
Cocoa Fundamentals 99
Exploring the iOS Frameworks with Xcode 108
Further Exploration 113
Summary 113
Q&A 114
Workshop 114
HOUR 5: Exploring Xcode's Interface Builder 117
Understanding Interface Builder 117
Creating User Interfaces 123
Customizing the Interface Appearance 129
Connecting to Code 133
Further Exploration 142
Summary 143
Q&A 144
Workshop 144
HOUR 6: Model-View-Controller Application Design 147
Understanding the Model-View-Controller Paradigm 147
How Xcode Implements MVC. 149
Using the Single View Application Template 154
Further Exploration 171
Summary 172
Q&A 172
Workshop 172
HOUR 7: Working with Text, Keyboards, and Buttons 175
Basic User Input and Output 175
Using Text Fields, Text Views, and Buttons 177
Further Exploration 200
Summary 201
Q&A 202
Workshop 202
HOUR 8: Handling Images, Animation, Sliders, and Steppers 205
User Input and Output 205
Creating and Managing Image Animations, Sliders, and Steppers 207
Further Exploration 227
Summary 228
Q&A 228
Workshop 229
HOUR 9: Using Advanced Interface Objects and Views 231
User Input and Output (Continued) 231
Using Switches, Segmented Controls, and Web Views 236
Using Scrolling Views 252
Further Exploration 258
Summary 259
Q&A 259
Workshop 260
HOUR 10: Getting the User's Attention 261
Alerting the User 261
Exploring User Alert Methods. 271
Further Exploration 288
Summary 289
Q&A 289
Workshop 290
HOUR 11: Implementing Multiple Scenes and Popovers 291
Introducing Multiscene Storyboards 292
Understanding the iPad Popover. 309
Using a Modal Segue 319
Using a Popover. 328
Further Exploration 334
Summary 335
Q&A 335
Workshop 336
HOUR 12: Making Choices with Toolbars and Pickers 337
Understanding the Role of Toolbars. 337
Exploring Pickers 341
Using the Date Picker 349
Using a Custom Picker 364
Further Exploration 380
Summary 381
Q&A 381
Workshop 382
HOUR 13: Advanced Storyboards Using Navigation and Tab Bar Controllers 385
Advanced View Controllers 386
Exploring Navigation Controllers 388
Understanding Tab Bar Controllers 393
Using a Navigation Controller 398
Using a Tab Bar Controller 407
Further Exploration 417
Summary 417
Q&A 418
Workshop 419
HOUR 14: Navigating Information Using Table Views and Split View Controllers 421
Understanding Tables 422
Exploring the Split View Controller (iPad Only). 430
A Simple Table View Application 433
Creating a Master-Detail Application 443
Further Exploration 460
Summary 460
Q&A 461
Workshop 461
HOUR 15: Reading and Writing Application Data 463
iOS Applications and Data Storage 463
Data Storage Approaches 465
Creating Implicit Preferences 473
Implementing System Settings 479
Implementing File System Storage 492
Further Exploration 500
Summary 501
Q&A 501
Workshop 502
HOUR 16: Building Rotatable and Resizable User Interfaces 503
Rotatable and Resizable Interfaces 503
Creating Rotatable and Resizable Interfaces with Interface Builder. 508
Reframing Controls on Rotation 513
Swapping Views on Rotation 521
Further Exploration 527
Summary 527
Q&A 528
Workshop 529
HOUR 17: Using Advanced Touches and Gestures 531
Multitouch Gesture Recognition 532
Using Gesture Recognizers 534
Further Exploration 553
Summary 554
Q&A 554
Workshop 554
HOUR 18: Sensing Orientation and Motion 557
Understanding Motion Hardware 558
Accessing Orientation and Motion Data 560
Sensing Orientation 564
Detecting Tilt and Rotation 568
Further Exploration 579
Summary 580
Workshop 581
HOUR 19: Working with Rich Media 583
Exploring Rich Media 583
The Media Playground Application. 598
Further Exploration 625
Summary 626
Q&A 627
Workshop 627
HOUR 20: Interacting with Other Applications 629
Extending Application Integration 629
Using Address Book, Email, Twitter, and Maps.. Oh My 641
Further Exploration 658
Summary 659
Q&A 659
Workshop 660
HOUR 21: Implementing Location Services 661
Understanding Core Location. 661
Creating a Location-Aware Application 668
Using the Magnetic Compass 678
Further Exploration 686
Summary 687
Q&A 687
Workshop 688
HOUR 22: Building Background-Aware Applications 691
Understanding iOS Backgrounding 692
Disabling Backgrounding 696
Handling Background Suspension. 697
Implementing Local Notifications 698
Using Task-Specific Background Processing 701
Completing a Long-Running Background Task 708
Further Exploration 714
Summary 715
Q&A 715
Workshop 716
HOUR 23: Building Universal Applications 717
Universal Application Development 717
Creating a Universal Application (Take 1) 722
Creating a Universal Application (Take 2) 726
Using Multiple Targets 730
Further Exploration 732
Summary 733
Q&A 733
Workshop 734
HOUR 24: Application Tracing and Debugging 735
Instant Feedback with NSLog 736
Using the Xcode Debugger. 738
Further Exploration 752
Summary 753
Q&A 753
Workshop 753
Index 755