Introduction
The Anatomy of an iPad 2
The Anatomy of an iPad 2
- iOS 4
- Display
- Wireless Connectivity
- Wired Connectivity
- Memory
- Cameras
- Sensors
- Location Detection
- Central Processing Unit (CPU)
- Graphics Processing Unit (GPU)
- Speaker and Microphone
- Battery
- iPhone OS becomes iOS
- An Overview of the iOS 4 Architecture
- The Cocoa Touch Layer
- UIKit Framework (UIKit.framework)
- Map Kit Framework (MapKit.framework)
- Push Notification Service
- Message UI Framework (MessageUI.framework)
- Address Book UI Framework (AddressUI.framework)
- Game Kit Framework (GameKit.framework)
- iAd Framework (iAd.framework)
- Event Kit UI Framework
- The iOS Media Layer
- Core Video Framework (CoreVideo.framework)
- Core Text Framework (CoreText.framework)
- Image I/O Framework (ImageIO.framework)
- Assets Library Framework (AssetsLibrary.framework)
- Core Graphics Framework (CoreGraphics.framework)
- Quartz Core Framework (QuartzCore.framework)
- OpenGL ES framework (OpenGLES.framework)
- iOS Audio Support
- AV Foundation framework (AVFoundation.framework)
- Core Audio Frameworks (CoreAudio.framework, AudioToolbox.framework and AudioUnit.framework)
- Open Audio Library (OpenAL)
- Media Player framework (MediaPlayer.framework)
- Core Midi Framework (CoreMIDI.framework)
- The iOS Core Services Layer
- Address Book framework (AddressBook.framework)
- CFNetwork Framework (CFNetwork.framework)
- Core Data Framework (CoreData.framework)
- Core Foundation Framework (CoreFoundation.framework)
- Core Media Framework (CoreMedia.framework)
- Core Telephony Framework (CoreTelephony.framework)
- EventKit Framework (EventKit.framework)
- Foundation Framework (Foundation.framework)
- Core Location Framework (CoreLocation.framework)
- Mobile Core Services Framework (MobileCoreServices.framework)
- Store Kit Framework (StoreKit.framework)
- SQLite library
- System Configuration Framework (SystemConfiguration.framework)
- Quick Look Framework (QuickLook.framework)
- The iOS Core OS Layer
- Accelerate Framework (Accelerate.framework)
- External Accessory framework (ExternalAccessory.framework)
- Security Framework (Security.framework)
- System (LibSystem)
- Identifying if you have an Intel or PowerPC based Mac
- Installing Xcode 4 and the iOS 4 SDK
- Starting Xcode 4
- Starting Xcode 4
- Creating the iOS App User Interface
- Changing Component Properties
- Adding Objects to the User Interface
- Building and Running an iPad App in Xcode 4
- Dealing with Build Errors
- Joining the iOS Developer Program
- Creating an iOS Development Certificate Signing Request
- Submitting the iOS Development Certificate Signing Request
- Installing an iOS Development Certificate
- Assigning Devices
- Creating an App ID
- Creating an iOS Development Provisioning Profile
- Enabling an iPad Device for Development
- Associating an App ID with an App
- iOS and SDK Version Compatibility
- Installing an App onto a Device
- Creating the New Project
- Creating the User Interface
- Building and Running the Sample Application
- Adding Actions and Outlets
- Connecting the Actions and Outlets to the User Interface
- Building and Running the Finished Application
- Creating the Example App
- Hiding the Keyboard when the User Touches the Return Key
- Hiding the Keyboard when the User Taps the Background
- An Overview of Views
- The UIWindow Class
- The View Hierarchy
- View Types
- The Window
- Container Views
- Controls
- Display Views
- Text and Web Views
- Navigation Views and Tab Bars
- Alert Views and Action Sheets
- Setting up the Example
- iPad Screen Resolution
- Enabling Rotation
- Testing Rotation Behavior
- Configuring View Autosizing
- Coding Layout and Size Changes
- An Overview of the Tab Bar
- Understanding View Controllers in a Multiview Application
- Setting up the Tab Bar Example Application
- Configuring the App Delegate
- Creating the UITabBarController
- Connecting the App Delegate Outlet to the Tab Bar Controller
- Creating the Content Views and View Controllers
- Associating Content Views with Tabs
- Testing the Multiview Application
- An Overview of the Table View
- The Table View Delegate and dataSource
- Table View Styles
- Table View Cell Styles
- Setting up the Project
- Adding the Table View Component
- Making the Delegate and dataSource Connections
- Implementing the dataSource
- Building and Running the Application
- Adding Table View Images and Changing Cell Styles
- Understanding the Navigation Controller
- An Overview of the Example
- Setting up the Project
- Reviewing the Project Files
- Setting up the Data in the Root View Controller
- Writing Code to Display the Data in the Table View
- Creating the Second View Controller
- Connecting the Second View Controller to the Root View Controller
- Creating the NIB File for the Second Table View
- Implementing the Functionality of the Second View Controller
- Popping the View Controller off the Navigation Controller Stack
- Adding the Navigation Code
- An Overview of Split View and Popovers
- About the Example iPad Split View and Popover Project
- Creating the Project
- Reviewing the Project
- Configuring Master View Items
- Configuring the Detail View Controller
- Connecting Master Selections to the Detail View
- Popover Implementation
- Testing the Application
- The DatePicker and PickerView Components
- A DatePicker Example
- Designing the User Interface
- Coding the Date Picker Example Functionality
- Releasing Memory
- Building and Running the iPad Date Picker Application
- Creating the iPad PickerView Project
- UIPickerView Delegate and DataSource
- The pickerViewController.h File
- Designing the User Interface
- Initializing the Arrays
- Implementing the DataSource Protocol
- Implementing the Delegate
- Releasing Memory
- Testing the Application
- The Application Documents Directory
- The Objective-C NSFileManager, NSFileHandle and NSData Classes
- Understanding Pathnames in Objective-C
- Creating an NSFileManager Instance Object
- Identifying the Current Working Directory
- Identifying the Documents Directory
- Identifying the Temporary Directory
- Changing Directory
- Creating a New Directory
- Deleting a Directory
- Listing the Contents of a Directory
- Getting the Attributes of a File or Directory
- Creating an NSFileManager Instance
- Checking if a File Exists
- Comparing the Contents of Two Files
- Checking if a File is Readable/Writable/Executable/Deletable
- Moving/Renaming a File
- Copying a File
- Removing a File
- Creating a Symbolic Link
- Reading and Writing Files with NSFileManager
- NSFileHandle File Offsets and Seeking
- Reading Data from a File
- Writing Data to a File
- Truncating a File
- The Example iPad Application
- Setting up the Application project
- Designing the User Interface
- Checking for the Data File on Application Startup
- Implementing the Action Method
- An Overview of Archiving
- The iPad Object Archiving Example Application
- Implementing the Actions and Outlets
- Releasing Memory
- Designing the iPad User Interface
- Checking for the Existence of the Archive File on Startup
- Archiving Object Data in the Action Method
- Testing the Application
- What is SQLite?
- Structured Query Language (SQL)
- Trying SQLite on MacOS X
- Preparing an iPad Application Project for SQLite Integration
- Key SQLite Functions
- Declaring a SQLite Database
- Opening or Creating a Database
- Preparing and Executing a SQL Statement
- Creating a Database Table
- Extracting Data from a Database Table
- Closing a SQLite Database
- About the Example SQLite iPad Application
- Creating and Preparing the SQLite Application Project
- Importing sqlite3.h and declaring the Database Reference
- Creating the Outlets and Actions
- Releasing Memory
- Creating the Database and Table
- Implementing the Code to Save Data to the SQLite Database
- Implementing Code to Extract Data from the SQLite Database
- Designing the User Interface
- Building and Running the Application
- The Core Data Stack
- Managed Objects
- Managed Object Context
- Managed Object Model
- Persistent Store Coordinator
- Persistent Object Store
- Defining an Entity Description
- Obtaining the Managed Object Context
- Getting an Entity Description
- Creating a Managed Object
- Getting and Setting the Attributes of a Managed Object
- Fetching Managed Objects
- Retrieving Managed Objects based on Criteria
- The iPad Core Data Example Application
- Creating a Core Data based iPad Application
- Creating the Entity Description
- Adding a View Controller
- Connecting the View
- Adding Actions and Outlets to the View Controller
- Designing the User Interface
- Saving Data to the Persistent Store using Core Data
- Retrieving Data from the Persistent Store using Core Data
- Releasing Memory
- Building and Running the Example Application
- The Responder Chain
- Forwarding an Event to the Next Responder
- Gestures
- Taps
- Touches
- Touch Notification Methods
- touchesBegan method
- touchesMoved method
- touchesEnded method
- touchesCancelled method
- The Example iOS iPad Tap and Touch Application
- Creating the Example iPad Touch Project
- Creating the Outlets
- Designing the user Interface
- Enabling Multitouch on the View
- Implementing the touchesBegan Method
- Implementing the touchesMoved Method
- Implementing the touchesEnded Method
- Getting the Coordinates of a Touch
- Building and Running the Touch Example Application
- The Example iOS 4 iPad Gesture Application
- Creating the Example Project
- Creating Outlets
- Designing the Application User Interface
- Implementing the touchesBegan Method
- Implementing the touchesMoved Method
- Implementing the touchesEnded Method
- Building and Running Gesture Example
- The UIGestureRecognizer Class
- Recognizer Action Messages
- Discrete and Continuous Gestures
- Obtaining Data from an iPad Gesture
- Recognizing Tap Gestures
- Recognizing Pinch Gestures
- Detecting Rotation Gestures
- Recognizing Pan and Dragging Gestures
- Recognizing Swipe Gestures
- Recognizing Long Touch (Touch and Hold) Gestures
- Creating the Gesture Recognition Project
- Configuring the Label Outlet
- Designing the User Interface
- Configuring the Gesture Recognizers
- Adding the Action Methods
- Testing the Gesture Recognition Application
- Introducing Core Graphics and Quartz 2D
- The drawRect Method
- Points, Coordinates and Pixels
- The Graphics Context
- Working with Colors in Quartz 2D
- The iPad Drawing Example Application
- Creating the New Project
- Creating the UIView Subclass
- Locating the drawRect Method in the UIView Subclass
- Drawing a Line
- Drawing Paths
- Drawing a Rectangle
- Drawing an Ellipse or Circle
- Filling a Path with a Color
- Drawing an Arc
- Drawing a Cubic Bézier Curve
- Drawing a Quadratic Bézier Curve
- Dashed Line Drawing
- Drawing an Image into a Graphics Context
- UIView Core Animation Blocks
- Understanding Animation Curves
- Receiving Notification of Animation Completion
- Performing Affine Transformations
- Combining Transformations
- Creating the Core Animation Project
- Implementing the Interface File
- Drawing in the UIView
- Detecting Screen Touches and Performing the Animation
- Building and Running the Animation Application
- Making Money from an iPad Application
- iOS iPad Advertising Options
- iAds Advertisement Formats
- Basic Rules for the Display of iAds
- Creating an Example iAds iPad Application
- Adding the iAds Framework to the Xcode Project
- Configuring the View Controller
- Designing the User Interface
- Creating the Banner Ad
- Displaying the Ad
- Changing Ad Format during Device Rotation
- Implementing the Delegate Methods
- bannerViewActionShouldBegin
- bannerViewActionDidFinish
- bannerView:didFailToReceiveAdWithError
- Understanding iOS Application States
- A Brief Overview of the iPad Multitasking Application Lifecycle
- Disabling Multitasking for an iPad Application
- Checking for Multitasking Support
- Supported Forms of Background Execution
- The Rules of Background Execution
- Scheduling Local Notifications
- Creating the Local Notification iPad App Project
- Locating the Application Delegate Method
- Adding a Sound File to the Project
- Scheduling the Local Notification
- Testing the Application
- Cancelling Scheduled Notifications
- Immediate Triggering of a Local Notification
- The Basics of Core Location
- Configuring the Desired Location Accuracy
- Configuring the Distance Filter
- The Location Manager Delegate
- Obtaining Location Information from CLLocation Objects
- Longitude and Latitude
- Accuracy
- Altitude
- Calculating Distances
- Location Information and Multitasking
- Creating the Example iOS iPad Location Project
- Adding the Core Location Framework to the Project
- Configuring the View Controller
- Designing the User Interface
- Creating the CLLocationManager Object
- Implementing the Action Method
- Implementing the Application Delegate Methods
- Releasing Memory
- Building and Running the iPad Location Application
- About the MapKit Framework
- Understanding Map Regions
- About the iPad MKMapView Tutorial
- Creating the iPad Map Tutorial
- Adding the MapKit Framework to the Xcode Project
- Declaring an Outlet for the MapView
- Creating the MKMapView and Connecting the Outlet
- Adding the Navigation Controller
- Changing the MapView Region
- Changing the Map Type
- Testing the iPad MapView Application
- Updating the Map View based on User Movement
- Adding Basic Annotations to a Map View
- The iOS 4 UIImagePickerController Class
- Creating and Configuring a UIImagePickerController Instance
- Accessing the iPad Camera Roll and Photo Library
- Configuring the UIImagePickerController Delegate
- Detecting Device Capabilities
- Saving Movies and Images
- An Overview of the Application
- Creating the Camera Project
- Adding Framework Support
- Configuring Protocols, Outlets and Actions
- Designing the User Interface
- Adding Buttons to the Toolbar
- Implementing the Camera Action Method
- Implementing the useCameraRoll Method
- Writing the Delegate Methods
- Releasing Memory
- Building and Running the Application
- An Overview of the MPMoviePlayerController Class
- Supported Video Formats
- The iPad Movie Player Example Application
- Adding the MediaPlayer Framework to the Project
- Declaring the Action Method
- Designing the User Interface
- Adding the Video File to the Project Resources
- Implementing the Action Method
- The Target-Action Notification Method
- Build and Run the Application
- Accessing a Network based Video File
- Supported Audio Formats
- Receiving Playback Notifications
- Controlling and Monitoring Playback
- Creating the iPad Audio Example Application
- Adding the AVFoundation Framework
- Adding an Audio File to the Project Resources
- Creating Actions and Outlets
- Implementing the Action Methods
- Updating the Playback Time
- Creating Initializing the AVAudioPlayer Object
- Implementing the AVAudioPlayerDelegate Protocol Methods
- Designing the User Interface
- Releasing Memory
- Building and Running the Application
- An Overview of the iPad AVAudioRecorder Tutorial
- Creating the Recorder Project
- Creating the AVAudioRecorder Instance
- Implementing the Action Methods
- Implementing the Delegate Methods
- Designing the User Interface
- Releasing Memory
- Testing the Application