Chapter 1. Introducing the iPhone and iPad
1.2. All for one and one for all: the iPhone OS platform
1.3. Core hardware specifications
1.3.4. iPhone and iPad input and output specifications
1.3.5. iPhone and iPad network specifications
1.4. How the iPhone and iPad are unique
Chapter 2. Learning Objective-C and the iPhone OS SDK
2.1. Getting ready for the SDK
2.2.5. Other compiler directives
2.3. Introducing the iPhone OS
2.3.1. The anatomy of the iPhone OS
3.2. Creating a first iPhone project in Xcode: Hello, World!
3.3. Creating a first iPad project in Xcode: Hello, World!
3.4. Creating a new class in Xcode
3.5. Other Xcode functionality
3.5.1. Adding frameworks with Xcode
Chapter 4. Using Interface Builder
4.1. An introduction to Interface Builder
4.2. A first project in Interface Builder: pictures and the web
4.2.2. Manipulating objects graphically
4.3. Building connections in Interface Builder
4.4. Other Interface Builder functionality
4.4.1. Building other connections
4.4.2. Creating external objects
Chapter 5. Creating basic view controllers
5.1. The view controller family
5.2. The standard view controller
5.2.1. The anatomy of a view controller
5.2.2. Creating a view controller
5.2.3. Creating another view controller
5.3. The table view controller
5.3.1. The anatomy of a table view controller
5.3.2. Creating a table view controller
Chapter 6. Monitoring events and actions
6.1. An introduction to events
6.2. A touching example: the event reporter
6.2.1. Setting things up in Interface Builder
6.3. Other event functionality
6.4. An introduction to actions
6.5. Adding a button to an application
6.5.1. Using addTarget:action:forControlEvents: with a button
6.6. Other action functionality
6.6.1. Accepting text input with UITextField
6.6.2. Allowing value selection with UISlider
Chapter 7. Creating advanced view controllers
7.1. The tab bar view controller
7.1.1. The anatomy of a tab bar view controller
7.1.2. Creating a tab bar view controller
7.2. The navigation controller
7.2.1. The anatomy of a navigation controller
7.2.2. Creating a navigation controller
7.3. Using the flipside controller
7.4. The split view controller
7.4.1. Creating a split view controller
7.4.2. Building the split view controller
7.4.3. Using your split view controller
7.4.4. Adjusting the interface for vertical and landscape modes
7.5. Popover and modal view controllers
Chapter 8. Data: actions, preferences, and files
8.2. Maintaining user preferences
Chapter 9. Data: advanced techniques
9.1.1. Setting up an SQLite database
9.1.3. Accessing your SQLite database
9.2. Accessing the Address Book
9.2.1. An overview of the frameworks
9.2.2. Accessing Address Book properties
9.3. An introduction to Core Data
9.3.1. Background information about Core Data
9.3.2. Setting up Core Data in your application
9.3.3. Initializing the Core Data objects
9.3.4. Adding objects to the database
9.3.5. Fetching, updating, and deleting objects in Core Data
Chapter 10. Positioning: accelerometers, location, and the compass
10.1. The accelerometers and orientation
10.2. The accelerometers and movement
10.2.1. Accessing the UIAccelerometer
10.3. The accelerometers and gestures
10.4.2. An example using location and distance
Chapter 11. Media: images and the camera
11.1. An introduction to images
11.2. Drawing simple images with Core Graphics
11.4. Collage: an image example
11.4.1. The collage view controller
Chapter 12. Media: audio and recording
12.1. Playing audio from the iPod library
12.1.1. Retrieving audio items from the iPod media library
12.1.2. Getting information about an MPMediaItem
12.2.1. Initializing the audio recorder
12.3.1. Initializing the AVAudioPlayer
12.4. Example: creating a simple audio recording/playback application
12.4.1. Creating a view-based application
12.4.2. Adding the needed frameworks
12.4.3. Setting up the IBActions
12.4.4. Creating the interface
12.4.5. Setting up the audio recorder and implementing the IBActions
Chapter 13. Graphics: Quartz, Core Animation, and OpenGL
13.1. An introduction to Quartz 2D
13.4. Setting the graphical state
13.4.2. Making transformations
13.5. Advanced drawing in Quartz
13.6. Drawing on a picture: an example
13.7. An introduction to Core Animation
13.7.1. The fundamentals of Core Animation
13.7.2. Getting started with Core Animation
Chapter 14. The web: web views and internet protocols
14.1. The hierarchy of the internet
14.4.1. Calling up the web view
14.5.1. Starting up NSXMLParser
14.7. Accessing the social web
Chapter 15. Peer-to-peer connections using Game Kit
15.2. Creating peer-to-peer applications using the peer picker
15.2.1. Using Apple’s built-in peer picker
15.3. Example: creating a multiplayer table tennis game
15.3.1. Starting the GKTennis project
15.3.2. Creating the header file
15.3.3. Creating the table tennis interface
15.3.5. Setting up the peer picker and getting connected
Chapter 16. Push notification services
16.1. What are push notifications?
16.2. An overview of Apple’s push notification system
16.3. Preparing your application to use push notifications
16.3.1. Setting up your application certificate
16.3.2. Setting up your provisioning profile
16.4. Creating a push notification provider in PHP
Chapter 17. The Map Kit framework
17.2. Adding a map to an application
17.2.1. Adding the map using Interface Builder
Chapter 18. In-app purchasing using Store Kit
18.1. Setting up a sandbox testing environment
Chapter 19. iPhone SDK enhancements
19.1. Custom keyboard accessories
19.2. Going forward: the iPhone 4.0 SDK
19.2.2. User experience enhancements
Appendix A. iPhone OS class reference
Appendix B. External sources and references
Appendix C. Publishing your SDK program
Appendix D. Updating current applications for the iPad
D.2. Updating Info.plist to support multiple orientations
D.3. Adding iPad-specific interface components