Kevin Hoffman Sams Teach Yourself Mac OS* X Lion" App Development 800 East 96th Street, Indianapolis, Indiana, 46240 USA
Table of Contents Introduction 1 Part 9: Mac OS X Lion Programming Basics HOUR 1: Introduction to Mac OS X Lion 7 Introducing Mac OS X Lion 7 13 Q&A 13 HOUR 2: Introduction to the Developer Tools 15 Introducing the Mac Developer Center 15 Creating an Apple Developer Account 17 Downloading Xcode and Other Developer Tools 21 24 Q&A 25 HOUR 3: Introducing Objective-C 27 Overview and History of Objective-C 27 Creating a New Cocoa Application 28 Exploring the Language with Some Basic Math 30 Using Strings 32 Understanding Pointers and Equality 35 Passing Messages 38 Controlling Program Flow 39 41 Q&A 41
vi Sams Teach Yourself Mac OS X Lion App Development in 24 Hours HOUR 4: Object-Oriented Programming with Objective-C 43 Creating Classes 44 Adding Attributes to Classes 48 Adding Behavior to Classes 52 Using Objects and Classes 55 Extending Objects Through Inheritance 56 Using Polymorphism 58 62 Q&A 62 HOUR 5: Understanding Memory Management 63 Introduction to Memory Management 63 Detecting and Fixing Memory Leaks 68 Using Automatic Reference Counting 72 75 Q&A 76 Part 91: Cocoa Application Programming Basics HOUR 6: Introducing Cocoa 77 A Brief Overview of Cocoa 77 a Taking Tour of Interface Builder 81 Using the Utilities Panels and Inspectors 83 91 Q&A 92 HOUR 7: Using Controls and Layout with Cocoa 93 A Tour of the Basic Cocoa Controls 93 Comparing Traditional and Automatic Layouts 104 109 Q&A 110
vii Contents HOUR 8: Creating Interactive Applications 111 Introducing Connections, Outlets, and Actions Ill Manipulating Controls at Runtime with Code 120 121 Q&A 121 HOUR 9: Creating Data-Bound Interfaces 123 Introducing the Model-View-Controller Pattern 123 Introducing Cocoa Bindings 125 Under the Hood with KVC and KVO 132 134 Q&A 134 HOUR 10: Working with Tables and Collections 135 Working with Bindings and Collections 135 Using Table Views 137 Using Collection Views 144 Using the Outline View 145 148 Q&A 148 HOUR 11: Working with Multitouch and Gestures 149 Introduction to Multitouch on Mac OS X Lion 149 Responding to Gestures and Multitouch Events 151. 159 Q&A 159 Part III: Working with Data HOUR 12: Working with User Defaults 161 Introduction to User Defaults and Preferences Panes 161 Reading and Writing User Defaults 162 Binding to the User Defaults Controller 164 170 Q&A 171
viii Sams Teach Yourself Mac OS X Lion App Development in 24 Hours HOUR 13: Working with Core Data 173 Introducing Core Data 173 Creating Data Models 174 Querying and Manipulating Data 177 186 Q&A 187 HOUR 14: Working with Documents, Versions, and Autosave 189 Building Document-Based Applications 189 Introducing Core Data Document-Based Applications 191 Using Versions and Autosave 197 198 Q&A 199 HOUR 15: Working with Apple's icioud 201 Introduction to icioud 201 Ideal Scenarios for Using icioud 202 Storing Key-Value Data in the Cloud 203 Storing Documents in the Cloud 204 Enabling Mac OS X Lion Applications for icioud 211 211 Q&A 212 Part 9V: Building Advanced Mac Applications HOUR 16: Using Alert Panels and Sheets 213 Using Alert Panels 213 Using Sheets 219 224 Q&A 224 HOUR 17: Working with Images 225 Reading and Writing Images 225 Displaying Collections of Images 227
ix Contents Manipulating Images with Core Image Filters 229 235 Q&A 235 HOUR 18: Using Popovers 237 Introducing Popovers 237 Creating Popovers. 239 Customizing Popovers 243 Creating Detachable Popovers 244 249 Q&A 250 HOUR 19: Building Animated User Interfaces 251 Introduction to Core Animation 251 Animating Views.253 Advanced Animation Techniques 256 262 Q&A 263 HOUR 20: Consuming Web Services 265 Introducing Web Services 265 Making Web Service Calls 269 277 Q&A.. 278 HOUR 21: Building Full-Screen Applications 279 Overview of Full-Screen Applications 279 Knowing When Full Screen Is Appropriate 283 285 Q&A 285 HOUR 22: Supporting Drag-and-Drop Behavior 287 Introduction to Drag-and-Drop 287 Programming Drag-and-Drop Behavior 290 298 Q&A 298
X Sams Teach Yourself Mac OS X Lion App Development in 24 Hours HOUR 23: Building Apps for the Mac App Store 299 Getting Started with itunes Connect 299 Building Your Application 302 Preparing Your Application for Submission 306 Submitting Your Application 309 313 Q&A 314 HOUR 24: Supporting In-App Purchases 315 Introducing In-App Purchasing 315 Creating In-App Purchase Products in itunes Connect 316 Using StoreKit to Support In-App Purchases 319 326 Q&A 326 Index 329