- Getting started with the iPhone SDK
- Interface Builder: Xcode’s GUI for GUIs
- Introduction to UI Kit
- Multi-Touch Events and Geometry
- Layer Programming with Quartz Core
- Making a Racket: Audio Toolbox and AVFoundation
- Network Programming with CFNetwork
- Getting a Fix: Core Location
- Address Book Frameworks
- Advanced UI Kit Design
- Application Settings
- Cover Flow
- Page Flicking
- Media Player Framework
- Training & Performance Tracking
Getting started with the iPhone SDK
1. Anatomy of an Application
- Underneath Xcode
2. Installing the iPhone SDK
- What You’ll Need
- The iPhone Simulator
- Downloading and Installing the iPhone SDK
3. Provisioning an iPhone
4. Building and Installing Applications
- Model-View-Controller
- Application Templates
- Xcode Project Layout
- Prototypes
- Adding Frameworks
- Setting the Active SDK
- Building an Application
- Installing an Application
5. Transitioning to Objective-C
- Messaging
- Class and Method Declarations
- Implementation
- Properties
- Protocols
- Categories
- Posing
- Additional Resources
Interface Builder: Xcode’s GUI for GUIs
1. Windows, Views, and View Controllers
2. Existing Templates
- New Templates
3. User Interface Elements
- Controllers
- Data Views
- Inputs and Values
- Windows, Views, and Bars
4. The Inspector
5. Designing a UI
- The Window
- The View Controller
- Views
- Connecting the Views
- Adding Linkage to Code
6. Removing Interface Builder from a Project
Introduction to UI Kit
1. Basic User Interface Elements
2. Windows and Views
- Creating a Window and View
- Displaying the View
- HelloView: Most Useless Application Ever
- What’s Going On
- Deriving from UIView
- HelloWorld: The Traditionally Useless Application
- What’s Going On
3. View Controllers
- Creating a View Controller
- Loading from Interface Builder
- Orientation Changes
- Disposing of a View Controller
- ControllerDemo: Hello World, View Controller Style
- What’s Going On
- Further Study
4. Text Views
- Creating a Text View
- Assigning Content
- Displaying HTML
- Source Reader: Web Page Source Code Reader
- What’s Going On
- Further Study
5. Navigation Bars and Controllers
- Creating a Navigation Controller
- Navigation Controller Properties
- Adding a Segmented Control
- Adding a Toolbar
- Page Demo: Page Navigation Exercise
- What’s Going On
- Further Study
6. Transition Animations
- Creating a Transition
- Attaching a Transition
- FlipDemo: Page-Flipping Transitions
- What’s Going On
- Further Study
7. Action Sheets and Alerts
- Alerts
- Action Sheets
- Dismissing an Action Sheet
- End World: Ending the World (with Confirmation)
- What’s Going On
- Further Study
8. Table Views and Controllers
- Creating the Table
- Table Cells
- Implementing Multiple Select
- Editing and Swipe-to-Delete
- Reloading Tables
- TableDemo: Simple File Browser
- What’s Going On
- Further Study
9. Status Bar Manipulation
- Hiding the Status Bar
- Status Bar Style
- Status Bar Orientation
10. Application Badges
- Displaying an Application Badge
- Removing an Application Badge
- Further Study
11. Application Services
- Suspending and Resuming
- Program Termination
12. Invoking Safari
13. Initiating Phone Calls
Multi-Touch Events and Geometry
1. Introduction to Geometric Structures
- CGPoint
- CGSize
- CGRect
2. Multi-Touch Events Handling
- UITouch Notifications
- UIEvent
- Events Handling
- Example: Tap Counter
- Example: Tap and Drag
- Processing Multi-Touch
- PinchMe: Pinch Tracking
- TouchDemo: Multi-Touch Icon Tracking
- What’s Going On
- Further Study
Layer Programming with Quartz Core
1. Understanding Layers
- Layer Hierarchies
- Size and Offset
- Arrangement and Display
- Rendering
- Transformations
- Layer Animations
- Layer Transformations
- BounceDemo: Layer Fun
- What’s Going On
- Further Study
Making a Racket: Audio Toolbox and AVFoundation
1. AVFoundation Framework
- The Audio Player
- Player Properties
- Playing Sounds
- Delegate Methods
- Metering
2. AVMeter: Build a VU Meter
- What’s Going On
- Further Study
3. Audio Services
- What’s Going On
4. Audio Queues
- Audio Queue Structure
- Provisioning Audio Output
- Sound Buffers
- Callback Function
- Volume Control
- Example: PCM Player
- What’s Going On
- Further Study
5. Recording Sound
- Audio Queue Structure
- Provisioning Audio Input
- Sound Buffers
- Callback Function
- Accessing Raw Data
- Writing to a File
- Example: Sound Recorder
- What’s Going On
- Further Study
6. Vibrating
Network Programming with CFNetwork
1. Basic Sockets Programming
- Socket Types
- CFSocket
- CFSocketContext
- Socket Streams
- CFSocket Example: Joke Server
- Further Study
2. CFHTTP and CFFTP
- CFHTTP
- CFFTP
- Further Study
Getting a Fix: Core Location
1. The Core Location Manager
- Query Parameters
- Issuing a Query
- Receiving Updates
- Completing a Query
- Error Handling
- WhereYouAt: Redneck Core Location
- What’s Going On
- Further Study
Address Book Frameworks
1. Address Book Access
- Top-Level Address Book Functions
- Querying the Address Book
- Creating Records
- Working with Records
- Multivalue Properties
- Working with Dictionaries
- Image Data
- Further Study
2. Address Book UI
- Person Views
- People Pickers
- Further Study
Advanced UI Kit Design
1. Common Controls
- The UIControl Base Class
- Segmented Controls
- Switches
- Sliders
- Text Field Controls
- Buttons
- Page Controls
- Further Study
2. Preferences Tables
- Creating a Preferences Table
- Displaying the Preferences Table
- ShootStuffUp: Preferences Table Example
- What’s Going On
- Further Study
3. Section Lists
- Creating the Section List
- Adding an Index Bar
- Displaying the Section List
- TableDemo: A Better File Browser
- What’s Going On
- Further Study
4. Progress and Activity Indicators
- UIActivityIndicatorView: Things That Spin
- UIProgressView: When Spinny Things Are Tacky
- Network Activity Indicators
- Further Study
5. Images
- The Image Object
- ImageFun: Fun with Images and Patterns
- UIImageView: An Image with a View
- Image Pickers
6. Keyboard Properties
- Keyboard Style
- Keyboard Appearance
- Return Key
- Autocapitalization
- Autocorrection
- Secure Text Entry
7. Pickers
- Creating a Picker
- Displaying the Picker
- Reading the Picker
- NosePicker: Picking Your Nose
- What’s Going On
- Further Study
8. Date/Time Pickers
- Creating the Date/Time Picker
- Displaying the Date Picker
- Reading the Date
- DatePicker: Independence Day Picker
- What’s Going On
- Further Study
9. Tab Bars
- Tab Bar Controllers
- Building a Tab Bar Controller
- Customizable Buttons
- Navigation
- Delegate Actions
- Tab Demo: Another Textbook Approach
- What’s Going On
- Further Study
10. Sensors and Device Information
- Reading the Orientation
- Reading Device Information
- Reading the Accelerometer
- Proximity Sensor
- Further Study
11. Scroll Views
- Creating the Scroll View Properties
- Delegate Methods
- Big Image: Scrolling a Weather Map
- What’s Going On
- Further Study
12. Web Views
- Creating the Web View
- Displaying the Web View
- Loading Content
- Navigation
- Delegate Methods
- WebDemo: Google Search Utility
- What’s Going On
- Further Study
Application Settings
1. Dictionaries and Property Lists
- Creating a Dictionary
- Managing Keys
- Writing Property Lists
- Reading Property Lists
- Further Study
2. Preference Bundles
- Adding Keys
- Reading Preference Bundle Values
- Further Study
Cover Flow
1. Covert Flow: SDK Cover Flow Programming
- What’s Going On?
- Further Study
Page Flicking
2. Page Control: Page Flicking Example
- What’s Going On?
- Further Study
3. A Page Scroll View for Many Views
- What’s Going On?
Media Player Framework
1. Movie Player Controllers
- Properties
- Starting and Stopping the Movie
- Notifications
- Further Study