
Learning iPad Programming
A Hands-on Guide to Building iPad Apps with iOS 5
Addison Wesley (Publisher)
Published on 5. January 2012
Book
Paperback/Softback
792 pages
978-0-321-75040-2 (ISBN)
Article exhausted; check for reprint
Description
Learning iPad Programming walks you through the process of building PhotoWheel (free on the App Store), a photo management and sharing app that leverages every aspect of iOS 5. With PhotoWheel, you can organize your favorite photos into albums, share photos with family and friends, view them on your TV using AirPlay and an Apple TV, and most importantly, gain hands-on experience with building an iPad app. As you build PhotoWheel, you'll learn how to take advantage of the latest features in iOS 5 and Xcode, including Storyboarding, Automatic Reference Counting (ARC), and iCloud. Best of all, you'll learn how to extend the boundaries of your app by communicating with web services. If you want to build apps for the iPad, Learning iPad Programming is the one book to get.
As you build PhotoWheel, you'll learn how to
Install and configure Xcode 4.2 on your Mac
Master the basics of Objective-C, and learn about memory management with ARC
Build a fully functional app that uses Core Data and iCloud for photo sharing and synchronization
Use Xcode's new Storyboard feature to quickly prototype a functional UI, and then extend that UI with code
Create multitouch gestures and integrate Core Animation for a unique UI experience
Build custom views, and use view controllers to perform custom view transitions
Add AirPrint, email, and AirPlay capabilities to your app
Apply image filters and effects using Core Image Diagnose and fix bugs with Instruments Prepare your app for submission to the app store
Download the free version of PhotoWheel from the App Store today! Share your photos with friends and upload to iCloud, all while learning how to build the app.
As you build PhotoWheel, you'll learn how to
Install and configure Xcode 4.2 on your Mac
Master the basics of Objective-C, and learn about memory management with ARC
Build a fully functional app that uses Core Data and iCloud for photo sharing and synchronization
Use Xcode's new Storyboard feature to quickly prototype a functional UI, and then extend that UI with code
Create multitouch gestures and integrate Core Animation for a unique UI experience
Build custom views, and use view controllers to perform custom view transitions
Add AirPrint, email, and AirPlay capabilities to your app
Apply image filters and effects using Core Image Diagnose and fix bugs with Instruments Prepare your app for submission to the app store
Download the free version of PhotoWheel from the App Store today! Share your photos with friends and upload to iCloud, all while learning how to build the app.
Reviews / Votes
"Great books transcend their subject matter. ... This book ... takes you from design, to a throwaway prototype, to the Real Deal." -From the Foreword by Mark Dalrymple"This amazing, thorough book takes an interesting approach by working through the design and development of a simple, yet realistic iPad app from start to finish. It is refreshing to see a technical book that explains how and why without inundating you with endless toy examples or throwing you into a sea of mind-numbing details. Particularly amazing is that it does this without assuming a large amount of experience at first. Yet it covers advanced topics at sufficient depth and in a logical order for all developers to get plenty of valuable information and insight. Kirby and Tom know this material and have done a great job of introducing the various frameworks and the reasoning behind how, why, and when you would use them. I highly recommend Learning iPad Programming to anyone interested in developing for this amazing platform."
-Julio Barros
E-String.com
"This is a great introduction to iPad programming with a well-done sample project built throughout. It's great for beginners as well as those familiar with iPhone development looking to learn the differences in developing for the larger screen."
-Patrick Burleson
Owner, BitBQ LLC (http://bitbq.com)
"Kirby Turner and Tom Harrington's Learning iPad Programming provides a comprehensive introduction to one of today's hottest topics. It's a great read for the aspiring iPad programmer."
-Robert Clair
Author, Learning Objective-C 2.0
"Learning iPad Programming is now my go-to reference when developing apps for the iPad. This book is an absolute treasure trove of useful information and tips for developing on the iPad. While it's easy to think of the iPad as just a bigger iPhone, there are specific topics that need to be treated differently on the iPad, such as making best use of the larger display. Learning iPad Programming provides an incredible amount of depth on all areas of iPad programming and takes you from design to fully functioning application-which for me is a killer feature of the book. This should be in everyone's reference library."
-Mike Daley
Author, Learning iOS Game Programming
Cofounder, 71Squared.com
"A truly well-rounded book with something for every iOS developer, be they aspirant or veteran. If you are new to iOS, there is a solid foundation provided in Part I that will walk you through Objective-C, the core Apple frameworks, provisioning profiles, and making the best of Xcode. If you've been around the block but want solid insight into iPad programming, Part II has you covered: Rather than just providing canned example code, Kirby and Tom give you real code that incrementally builds and improves a real app. And if you've been working with iOS for a while, but would benefit from a walk-through of the plethora of new features that have come our way with iOS 5 and Xcode 4, dive into the chapters on Storyboards, iCloud, and Core Image. Best of all, the book is well-written and conversational, making it a joy to read. This book is stellar."
-Alexis Goldstein
Coauthor, HTML5 & CSS3 for the Real World
"Learning iPad Programming is one of the most comprehensive resources on the planet for those developing for Apple's iPad platform. In addition to coverage of the language, frameworks, and tools, it dives into features new in iOS 5, like Automatic Reference Counting, Storyboarding, and connecting your applications with iCloud. But where this book really shines is in the tutorials and the application you will build as you read through this book. Rather than being a toy that employs only off-the-shelf iOS user interface components from Interface Builder, the PhotoWheel app demonstrates custom view programming and view controller containment, nonstandard gesture/user input handling, and provides insight into how a complex iOS project comprised of multiple subsystems is assembled into a shipping application. In other words, Learning iPad Programming shows how to deal with the challenges you'll face in real iPad development."
-Erik Price
Senior Software Engineer, Brightcove
"A thoroughly crafted guide for learning and writing iOS applications, from the humble beginnings in Xcode and Interface Builder to creating a full-featured iPad application. There are many books that try to cover the gamut of knowledge required to take a reader from zero to app; Kirby and Tom have actually done it in this book. It is a fun and comprehensive guide to the world of developing apps for Apple's magical device."
-Rod Strougo
Founder, Prop Group
"The iPad is changing the way we think about and use technology. Learning iPad Programming is one of the most in-depth and well-executed guides to get both new and seasoned developers up to speed on Apple's exciting new platform."
-Justin Williams
Crew Chief, Second Gear
More details
Language
English
Place of publication
New Jersey
United States
Publishing group
Pearson Education (US)
Target group
Professional and scholarly
Dimensions
Height: 227 mm
Width: 181 mm
Thickness: 25 mm
Weight
952 gr
ISBN-13
978-0-321-75040-2 (9780321750402)
Copyright in bibliographic data is held by Nielsen Book Services Limited or its licensors: all rights reserved.
Schweitzer Classification
Other editions
New editions

Book
05/2013
2nd Edition
Addison Wesley
€34.65
Article is exhausted; no reprint
Persons
Kirby Turner is an independent software developer and business owner focusing on Mac and iOS programming. He sells his own apps through his company White Peak Software, and he does contract programming when time allows. Follow Kirby on Twitter: @kirbyt.
Tom Harrington switched from writing software for embedded systems and Linux to Mac OS X in 2002 when he started Atomic Bird, LLC. After six years of developing highly regarded Mac software, Tom moved to iPhone in 2008. He develops iOS software on a contract basis and organizes iOS developer events in Colorado. Follow Tom on Twitter: @atomicbird.
Tom Harrington switched from writing software for embedded systems and Linux to Mac OS X in 2002 when he started Atomic Bird, LLC. After six years of developing highly regarded Mac software, Tom moved to iPhone in 2008. He develops iOS software on a contract basis and organizes iOS developer events in Colorado. Follow Tom on Twitter: @atomicbird.
Content
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
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