Preface1. Why Go Native? Using an App Offline More Access to the Hardware More Access to the Software What You Lose Distribution Apple iOS Developer Program Content Authoring Platform Choices Taking the Plunge2. Welcome to the iOS SDK Hardware and OS Requirements Installing the SDK About iOS Developer Programs Inside the SDK Viewing Developer Documentation Loading Code Samples Setting the Project's Base SDK Trying the iOS Simulator Coming Up..3. Creating a Test Workbench Creating the Project in Xcode Selecting a Project Type Naming and Saving the New Project Welcome to Your Project Editing Your First Files What the runMyCode: Method Does Building the User Interface Adding a Button to the View Connecting the Button Going for a Test Ride Congratulations4. Structural Overview of an iOS App Where It All Begins: APIs APIs You Already Know The Cocoa Touch APIs Frameworks Foundation Framework UIKit Framework CoreGraphics Framework Adding Frameworks Frameworks Set in Stone Welcome to Class Files The JavaScript Way The Objective-C Way Header File Details Using Xcode to Create DGCar Class Files Editing the @interface Section Message Passing Editing the @implementation Section Integrating the DGCar Class into Workbench Creating Object Instances NSLog0 and String Formats Running the Code What About Accessing Instance Variables? Recap5. App Execution Flow Some C Language Roots in an iOS App An Introduction to Delegates How UIApplication Appoints Its Delegate The App's Info.plist File Inside MainWindow.xib iPhone App Development Design Patterns The Model-View-Controller Design Pattern Other Design Patterns The Importance of Views The App Window--UIWindow Adding Another View to Workbench Recap 6. Central Objective-C Concepts: Pointers, Data Types, and MemoryManagement 107 Pointers Pointers and Memory Pointers and Objective-C Variables Pointer Notation Determining Pointer Usage Data Typing Objective-C Data Types Cocoa Touch Data Types Objective-C Variable Declarations Objective-C Method Declarations The id Data Type Converting Objective-C Data Types Memory Management Cleaning Up After Yourself The Retain Count Autorelease Pools Observing Memory Usage Recap7. C Language Fundamentals Variable Names Variable Scope Instance Variables Local Variables Local Variables in Control Structure Blocks Static Local Variables Global Variables Constant Values Functions C Structures C Arrays Enumerated Types Operators Program Flow Constructions Boolean Values Math Object Equivalents in C Inserting Comments Recap8. Objective-C/Cocoa Touch Fundamentals More About Classes Temporary Objects Subclassing Framework Classes Defining Your Own Custom Subclasses Adding to a Class Without Subclassing--Categories Real Classes in Real Action TheElements Overview TheElements Class File Structure Class Properties Specifying Properties in the Header File Synthesizing Properties in the Implementation File Using Properties Properties in Framework Classes About NSString Creating an NSString JavaScript String Method Equivalents in Objective-C NSMutableString About NSArray Creating an NSArray Retrieving Array Elements JavaScript Array Method Equivalents in Objective-C NSMutableArray About NSDictionary Creating an NSDictionary Retrieving Dictionary Entries NSMutableDictionary Arrays and Dictionaries in Action Recap9. Common JavaScript Tasks in Cocoa Touch Formatting Numbers for Display Preformatted Number Styles Rounding Numbers for Display Creating a Date Object Adding a UIDatePicker to Workbench Understanding NSDate Creating a Date Object for a Specific Date Extracting Components from an NSDate Object Creating NSDate Objects from Strings Converting an NSDate to a String Calculating Dates 10 Days in the Future Days Between Dates Comparing Dates Downloading Remote Files Asynchronously Example Project Creating the Request Initializing the NSMutableData Object Delegate Methods Downloading Only When Needed Accounting for Fast App Switching Reading and Writing Local Files lOS App Directories Obtaining Directory Paths Obtaining Paths to Files Delivered with Your App Writing Files to Disk Reading Files from Disk Writing and Reading Property List Files Performing File Management Tasks Sorting Arrays Sorting with a Selector Sorting with a Function Sorting Arrays of Dictionaries with NSSortDescriptor Capturing User-Entered Text The Code Portion The Interface Builder Portion Validating Text Entry with Regular Expressions Modifying the Code Modifying the User Interface Using Regular Expressions for Text Search and Replace Dragging a View Around the Screen The Code Portion The Interface Builder Portion RecapA. Getting the Most from Xcode DocumentationB. Common Beginner Xcode Compiler ErrorsGlossaryIndex