Chapter 1. Introducing iOS 4 with iPhone and iPad
1.1. All for one and one for all: the iOS platform
1.2. Understanding iPhone and iPad touch interaction
1.3. Getting ready for the SDK
1.6. How to make an application from an idea
Chapter 2. Learning Objective-C
3.2. Using Xcode 4 to create the HelloWorld application
3.3. Closer look at files under the Navigation area
3.3.2. Frameworks folder and Product folder
3.4. Using Interface Builder in Xcode 4
Chapter 4. Xcode and debugging
4.1. Creating a new class in Xcode
4.2. Creating objects with Interface Builder
Chapter 5. 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. 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
7.6. Combining view controllers in universal applications
7.6.1. Design universal applications for the iPhone and iPad
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
10.4.3. An example using altitude
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. Using Event Kit on the iPhone and iPad
16.1. An overview of the Event Kit frameworks
16.2. Adding new events to Calendar programmatically
16.2.1. Adding Event Kit frameworks to the Birthday application
16.3. Creating an event with the Event Edit view controller
16.5. Fetching events with GCD
Chapter 17. Local and Push notification services
17.1. What are local and push notifications?
17.2. Implementing local notifications on Timer application
17.3. An overview of Apple’s push notification system
17.4. Preparing your application to use push notifications
17.4.1. Setting up your application certificate
17.4.2. Setting up your provisioning profile
17.5. Creating a push notification provider in PHP
Chapter 18. The Map Kit framework
18.1. Adding a map view to an application
18.1.1. Adding the map using Interface Builder
Chapter 19. In-app purchasing using Store Kit
19.1. Setting up a sandbox testing environment
19.2. Creating a simple store interface
19.2.2. Adding Store Kit interface
Chapter 20. Making money with iAd
20.1. Adding a banner ad into your application
20.2. Supporting both portrait mode and landscape mode
20.3. How to handle advertisement downloading errors
Chapter 21. Introducing multitasking
21.1. Overview of multitasking
21.3. Using fast app switching
21.3.1. Building a simple application for fast app switching
21.4. Task completion in the background
21.5. Monitoring location changes in the background
21.5.1. An overview of the location service in the background
Chapter 22. Multitasking in depth
22.1. Using the location-monitoring service
22.2. Building an audio-playing application with the Audio Toolbox framework
22.3. Enabling audio playing in the background
Appendix A. iOS class reference
Appendix B. External sources and references
Appendix C. Publishing your application
Appendix D. Updating current applications for the iPad
D.2. Updating Info.plist to support multiple orientations
D.3. Adding iPad-specific interface components