IPad iOS 6 Development Essentials
Table of Contents
- About iPad iOS 6 Development Essentials
- Joining the Apple iOS 6 Developer Program
- Installing Xcode 4 and the iOS 6 SDK
- Creating a Simple iPad iOS 6 App
- iPad iOS 6 Architecture and SDK Frameworks
- Testing iOS 6 Apps on the iPad – Developer Certificates and Provisioning Profiles
- 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
- The Basics of Objective-C Programming
- The Basics of Object Oriented Programming in Objective-C
- What is an Object?
- What is a Class?
- Creating the Example Project
- Declaring an Objective-C Class Interface
- Adding Instance Variables to a Class
- Defining Instance Methods
- Declaring an Objective-C Class Implementation
- Declaring and Initializing a Class Instance
- Calling Methods and Accessing Instance Data
- How Variables are Stored
- An Overview of Indirection
- Indirection and Objects
- Indirection and Object Copying
- Creating the Program Section
- Compiling and Running the Program
- Objective-C - Data Encapsulation, Synthesized Accessors and Dot Notation (iOS 6)
- The Basics of Modern Objective-C (iPad)
- Creating an Interactive iOS 6 iPad App
- Writing iOS 6 Code to Hide the iPad Keyboard
- Establishing iOS 6 Outlets and Actions using the Xcode Assistant Editor (iPad)
- An Introduction to iPad Auto Layout in iOS 6
- Working with iPad iOS 6 Auto Layout Constraints in Interface Builder
- An iPad iOS 6 Auto Layout Example
- Implementing iPad iOS 6 Auto Layout Constraints in Code
- Implementing iPad Cross-Hierarchy Auto Layout Constraints in iOS 6
- Understanding the iPad iOS 6 Auto Layout Visual Format Language
- Using Xcode Storyboarding with iOS 6 (iPad)
- Creating the Storyboard Example Project
- Accessing the Storyboard
- Adding Scenes to the Storyboard
- Configuring Storyboard Segues
- Configuring Storyboard Transitions
- Associating a View Controller with a Scene
- Passing Data Between Scenes
- Unwinding Storyboard Segues
- Triggering a Storyboard Segue Programmatically
- Using Xcode Storyboards to create an iOS 6 iPad Tab Bar Application
- An Overview of the Tab Bar
- Understanding View Controllers in a Multiview Application
- Setting up the Tab Bar Example Application
- Reviewing the Project Files
- Renaming the Initial View Controller
- Adding the View Controller for the Second Content View
- Adding the Tab Bar Controller to the Storyboard
- Adding a Second View Controller to the Storyboard
- Designing the View Controller User interfaces
- Configuring the Tab Bar Items
- Building and Running the Application
- An Overview of iPad iOS 6 Table Views and Xcode Storyboards
- Using Xcode Storyboards to Build Dynamic iOS 6 iPad TableViews with Prototype Table View Cells
- Creating the Example Project
- Adding the TableView Controller to the Storyboard
- Creating the UITableViewController and UITableViewCell Subclasses
- Declaring the Cell Reuse Identifier
- Designing a Storyboard UITableView Prototype Cell
- Modifying the CarTableViewCell Class
- Creating the Table View Datasource
- Downloading and Adding the Image Files
- Compiling and Running the Application
- Implementing iPad iOS 6 TableView Navigation using Xcode Storyboards
- Using an Xcode Storyboard to Create a Static iPad iOS 6 Table View
- An iPad iOS 6 Split View and Popover Example
- An Overview of Split View and Popovers
- About the Example iPad Split View and Popover Project
- Creating the Project
- Reviewing the Project
- Reviewing the Application Delegate Class
- Configuring Master View Items
- Configuring the Detail View Controller
- Connecting Master Selections to the Detail View
- Popover Implementation
- Testing the Application
- Working with Directories on iOS 6 (iPad)
- 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
- Working with iPad Files on iOS 6
- Creating an NSFileManager Instance
- Checking for the Existence of a File
- 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
- Working with Files using the NSFileHandle Class
- Creating an NSFileHandle Object
- NSFileHandle File Offsets and Seeking
- Reading Data from a File
- Writing Data to a File
- Truncating a File
- iOS 6 iPad Directory Handling and File I/O – A Worked Example
- Preparing an iOS 6 iPad App to use iCloud Storage
- What is iCloud?
- iCloud Data Storage Services
- Preparing an Application to Use iCloud Storage
- Creating an iOS 6 iCloud enabled App ID
- Creating and Installing an iCloud Enabled Provisioning Profile
- Creating an iCloud Entitlements File
- Manually Creating the Entitlements File
- Accessing Multiple Ubiquity Containers
- Ubiquity Container URLs
- Managing Files using the iOS 6 UIDocument Class
- An Overview of the UIDocument Class
- Subclassing the UIDocument Class
- Conflict Resolution and Document States
- The UIDocument Example Application
- Creating a UIDocument Subclass
- Designing the User Interface
- Implementing the Application Data Structure
- Implementing the contentsForType Method
- Implementing the loadFromContents Method
- Loading the Document at App Launch
- Saving Content to the Document
- Testing the Application
- Using iCloud Storage in an iPad iOS 6 Application
- iCloud Usage Guidelines
- Preparing the iCloudStore Application for iCloud Access
- Configuring the View Controller
- Implementing the viewDidLoad Method
- Implementing the metadataQueryDidFinishGathering: Method
- Implementing the saveDocument Method
- Enabling iCloud Document and Data Storage on an iPad
- Running the iCloud Application
- Reviewing and Deleting iCloud Based Documents
- Making a Local File Ubiquitous
- Synchronizing iPad iOS 6 Key-Value Data using iCloud
- An Overview of iCloud Key-Value Data Storage
- Sharing Data Between Applications
- Data Storage Restriction
- Receiving Notification of Key-Value Changes
- An iCloud Key-Value Data Storage Example
- Enabling the Application for iCloud Key Value Data Storage
- Designing the User Interface
- Implementing the View Controller
- Modifying the viewDidLoad Method
- Implementing the Notification Method
- Implementing the saveData Method
- iOS 6 iPad Data Persistence using Archiving
- iOS 6 iPad Database Implementation using SQLite
- 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
- An Example SQLite based iOS 6 iPad Application
- About the Example SQLite iPad Application
- Creating and Preparing the SQLite Application Project
- Importing sqlite3.h and declaring the Database Reference
- Designing the User Interface
- Creating the Database and Table
- Implementing the Code to Save Data to the SQLite Database
- Implementing Code to Extract Data from the SQLite Database
- Building and Running the Application
- Working with iOS 6 iPad Databases using Core Data
- 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
- An iOS 6 iPad Core Data Tutorial
- The iPad Core Data Example Application
- Creating a Core Data based iPad Application
- Creating the Entity Description
- Adding a View Controller
- Designing the User Interface
- Saving Data to the Persistent Store using Core Data
- Retrieving Data from the Persistent Store using Core Data
- Building and Running the Example Application
- An Overview of iOS 6 iPad Multitouch, Taps and Gestures
- An Example iOS 6 iPad Touch, Multitouch and Tap Application
- The Example iOS 6 iPad Tap and Touch Application
- Creating the Example iOS Touch Project
- 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
- Detecting iOS 6 iPad Touch Screen Gesture Motions
- Identifying iPad Gestures using iOS 6 Gesture Recognizers
- The UIGestureRecognizer Class
- Recognizer Action Messages
- Discrete and Continuous Gestures
- Obtaining Data from a 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
- An iPad iOS 6 Gesture Recognition Tutorial
- An Overview of iPad iOS 6 Collection View and Flow Layout
- An Overview of Collection Views
- The UICollectionView Class
- The UICollectionViewCell Class
- The UICollectionReusableView Class
- The UICollectionViewFlowLayout Class
- The UICollectionViewLayoutAttributes Class
- The UICollectionViewDataSource Protocol
- The UICollectionViewDelegate Protocol
- The UICollectionViewDelegateFlowLayout Protocol
- Cell and View Reuse
- An iPad iOS 6 Storyboard-based Collection View Tutorial
- Creating the Collection View Example Project
- Removing the Template View Controller
- Adding a Collection View Controller to the Storyboard
- Adding the Collection View Cell Class to the Project
- Designing the Cell Prototype
- Implementing the Data Model
- Implementing the Data Source
- Testing the Application
- Setting Sizes for Cell Items
- Changing Scroll Direction
- Implementing a Supplementary View
- Implementing the Supplementary View Protocol Methods
- Deleting Collection View Items
- Subclassing and Extending the iOS 6 Collection View Flow Layout (iPad)
- About the Example Layout Class
- Subclassing the UICollectionViewFlowLayout Class
- Extending the New Layout Class
- Implementing the layoutAttributesForItemAtIndexPath: Method
- Implementing the layoutAttributesForElementsInRect: Method
- Implementing the modifyLayoutAttributes: Method
- Adding the New Layout and Pinch Gesture Recognizer
- Implementing the Pinch Recognizer
- Avoiding Image Clipping
- Adding the QuartzCore Framework to the Project
- Testing the Application
- Basic iOS 6 iPad Animation using Core Animation
- UIView Core Animation Blocks
- Understanding Animation Curves
- Receiving Notification of Animation Completion
- Performing Affine Transformations
- Combining Transformations
- Creating the Animation Example Application
- Implementing the Interface File
- Drawing in the UIView
- Detecting Screen Touches and Performing the Animation
- Building and Running the Animation Application
- An Overview of iPad iOS 6 Application State Preservation and Restoration
- An iOS 6 iPad State Preservation and Restoration Tutorial
- Creating the Example Application
- Trying the Application without State Preservation
- Opting-in to State Preservation
- Setting Restoration Identifiers
- Encoding and Decoding View Controller State
- Adding a Navigation Controller to the Storyboard
- Adding the Third View Controller
- Creating the Restoration Class
- Integrating Maps into iPad iOS 6 Applications using MKMapItem