Apple's eagerly-awaited Mac OS X Lion brings the innovation and simplicity of the iPad to the Mac platform - and, priced at just $30, it will rapidly appear on millions of Mac desktops and notebooks. Now, there's a friendly, easy guide to OS X Lion development for every developer and power user. In just 24 quick lessons, Sams Teach Yourself Mac OS X Lion App Development in 24 Hours will help readers gain true mastery. Each lesson builds on all that's come before, teaching readers all they need to know, without ever overwhelming them. Coverage includes: * Getting started fast with OS X Lion's IDE, Objective-C, and object-oriented programming * Safely managing memory * Using Cocoa, Apple's advanced Objective-C based programming environment * Building basic, advanced, and animated user interfaces * Supporting multitouch gestures, drag-and-drop, and multithreading * Working with data - including Core Data and iOS-style autosave * Using notifications, alerts, sheets, and popovers * Integrating with web services * Building iOS-style full-screen applications Step-by-step instructions walk through common questions, issues, and tasks... Quizzes and Exercises test readers' knowledge... "Did You Know?" tips offer insider advice and shortcuts... "Watch Out!" alerts help avoid problems. By the time readers are finished, they won't just understand Mac OS X Lion programming: they'll be comfortable writing powerful real-world apps!
Introduction 1
Part I: Mac OS X Lion Programming Basics
HOUR 1: Introduction to Mac OS X Lion 7
Introducing Mac OS X Lion. 7
Summary 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
Summary 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
Summary 41
Q&A 41
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
Summary 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
Summary 75
Q&A 76
Part II: Cocoa Application Programming Basics
HOUR 6: Introducing Cocoa 77
A Brief Overview of Cocoa. 77
Taking a Tour of Interface Builder 81
Using the Utilities Panels and Inspectors 83
Summary 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
Summary 109
Q&A 110
HOUR 8: Creating Interactive Applications 111
Introducing Connections, Outlets, and Actions 111
Manipulating Controls at Runtime with Code. 120
Summary 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
Summary 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
Summary 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
Summary 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
Summary 170
Q&A 171
HOUR 13: Working with Core Data 173
Introducing Core Data 173
Creating Data Models. 174
Querying and Manipulating Data 177
Summary 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
Summary 198
Q&A 199
HOUR 15: Working with Apple’s iCloud 201
Introduction to iCloud 201
Ideal Scenarios for Using iCloud 202
Storing Key-Value Data in the Cloud 203
Storing Documents in the Cloud 204
Enabling Mac OS X Lion Applications for iCloud 211
Summary 211
Q&A 212
Part IV: Building Advanced Mac Applications
HOUR 16: Using Alert Panels and Sheets 213
Using Alert Panels 213
Using Sheets 219
Summary 224
Q&A 224
HOUR 17: Working with Images 225
Reading and Writing Images 225
Displaying Collections of Images 227
Manipulating Images with Core Image Filters. 229
Summary 235
Q&A 235
HOUR 18: Using Popovers 237
Introducing Popovers 237
Creating Popovers 239
Customizing Popovers. 243
Creating Detachable Popovers 244
Summary 249
Q&A 250
HOUR 19: Building Animated User Interfaces 251
Introduction to Core Animation 251
Animating Views 253
Advanced Animation Techniques 256
Summary 262
Q&A 263
HOUR 20: Consuming Web Services 265
Introducing Web Services 265
Making Web Service Calls 269
Summary 277
Q&A 278
HOUR 21: Building Full-Screen Applications 279
Overview of Full-Screen Applications. 279
Knowing When Full Screen Is Appropriate 283
Summary 285
Q&A 285
HOUR 22: Supporting Drag-and-Drop Behavior 287
Introduction to Drag-and-Drop 287
Programming Drag-and-Drop Behavior 290
Summary 298
Q&A 298
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
Summary 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
Summary 326
Q&A 326
Index 329