Introduction
- Anatomy of an iOS Device
- iOS Architecture and Available SDKs
- Version Compatibility
- Apple Developer Programs
New APIs and Service in iOS 8
- Touch ID
- PhotoKit
- HealthKit
- HomeKit
Xcode 6
- Tour of the IDE
- Templates, Projects, and Workspaces
- Creating a New Project
- LLVM and LLDB
- Debug Gauges
- Asset Management
- XCTest Testing Framework
- Continuous Integration and Bots
- Automatic Configuration
Swift for Experienced Programmers
- Statements, Constants, and Variables
- Data Types
- Collection Types
- Functions and Closures
- Classes and Structures
- Automatic Reference Counting (ARC)
- Optionals
- Protocols
- Generics
- Interoperability with Objective-C
Application Patterns and Architecture
- Model View Controller (MVC)
- IBOutlets and IBActions
- Subclassing and Delegation
AViews and Windows
- The View Hierarchy
- Containers
- Controls
- Text and Web Views
- Navigation View and Tab Bars
- Alert Views and Action Sheets
- Controlling Rotation Behavior
- View Autosizing
- Autolayout
Storyboards
- Adding Scenes
- Segues
- Transitions
- Using in a Tab Bar Application
Table Views
- Static and Dynamic Table Views
- Delegates and DataSources
- Table View Styles
- Custom Cells
Navigation Based Applications
- Adding the Root View Controller
- Creating the Navigation Controller
- Controlling the Stack Navigation Programmatically
UIPickerView and UIDatePicker
- Designing the UI
- Coding for the Data Picker
- Hiding the Keyboard
- Memory Management
Directories and Files
- NSFileManager, NSFileHandle, and NSData
- Problems Solved by ADO.NET Entity Framework
- Pathnames in Swift
- Working with Directories
- Working with Files
- Reading and Writing from a File
- iCloud
- Key-Value Data
- Archiving
CloudKit
- Authentication
- Private and Public Databases
- Structured and Asset Storage
Working with Data
- SQLite Integration
- Using SQLite Directly
- Overview of Core Data
- Managed Objects
- Persistent Store Coordinator
- Entity Descriptions
- Retrieving and Modifying Data
Multitouch, Taps, and Gestures
- The Responder Chain
- Touch Notification Methods
- Enabling Multitouch on the View
- Gesture Motions
- Gesture Recognizers
Drawing
- Core Graphics and Quartz 2D
- Lines, Paths, andShapes
Animation
- Core Animation Blocks
- Animation Curves
- Transformations
- SpriteKit
- SceneKit
- Metal
Multitasking
- Application States
- Background Execution
- Background App Refresh
- State Restoration
Notifications
- Location Accuracy
- Obtaining Location Information
- Calculating Distances
- MapKit Framework and MKMapView
Concurrency
- Grand Central Dispatch (GCD)
- Serial and Concurrent Queues
- Main Dispatch Queue
- Completion Blocks
- Operation Queues
Networking
- Reachability
- Synchronous Downloads
- Asynchronous Downloads
- Handling Timeouts
- Sending HTTP GET and POST Requests
- Parsing JSON
- Parsing XML
- AirDrop
Targeting Multiple Devices
- iPhone vs. iPad
- Universal Apps
- Multiple SDK Support
- Detecting Device Capabilities
- Supporting Multiple iOS Versions
Handoff
- Interactions
- App Framework Support
- Implementing Handoff
- Continuation Streams
- Best Practices
App Extensions
- Extension Types
- Creating an Extension
- Common Scenarios
Localization
- Resources
- Language and Region
- NSLocale
- Text
- Dates
- Numbers
Running on a Physical Device
- Development Certificates
- Assigning Devices
- Creating an App ID
- Provisioning Profiles
- Running
Performance and Power Optimization
- Measuring Performance
- Instruments
- Responsiveness
- Memory Usage, Spikes, and Leaks
- Networking and Power
Deployment
- Icons and Launch Images
- Distribution Certificates
- Distribution Provisioning Profiles
- Archiving an Application
- App Store Distribution
- AdHoc and Enterprise Distribution
- iTunes Connect