Objectives

  • Understand iOS application development architecture
  • Gain familiarity with Xcode and other Apple development tools
  • Learn proper use of techniques and patterns in Objective-C
  • Design app UIs using storyboards
  • Explore techniques for custom drawing and animation
  • Build an app that communicates with a web service
  • Use best practices for targeting both iPhone and iPad devices

Prerequisites

All attendees should have substantial previous programming experience using an object oriented C-based language such as Objective-C, C#, Java, or C++

Duration

5 Days

Outline for iOS 9 Development with Objective-C Training

Introduction

  • iOS Devices
  • iOS Architecture
  • Languages and Tools
  • SDKs and Frameworks
  • iOS Developer Program
  • Building a Simple iOS App

Objective-C (Part I)

  • Introduction
  • Data Types and Variables
  • Message Passing
  • Basic Types
  • User Defined Types

Unit Testing

  • Introduction
  • XCTest Framework
  • Xcode Service

iOS App Architecture

  • Introduction
  • Model-View-Controller (MVC)
  • View Controllers
  • Storyboards
  • Outlets
  • Actions

Auto Layout

  • Introduction
  • Constraints
  • Insufficient Constraints
  • Misplaced Views
  • Conflicting Constraints
  • Content Hugging and Compression Resistance
  • Size Classes

Objective-C (Part II)

  • Automatic Reference Counting (ARC)
  • Object Initialization

Storyboards

  • Scenes
  • Segues
  • Moving Data Between Controllers
  • Navigation Controller

Table Views

  • Introduction
  • Data Source and Delegate

Objective-C (Part III)

  • Protocols
  • Categories
  • Blocks

Networking

  • URL Loading System
  • NSURLSession
  • Asynchronous Downloads
  • Strings and Images
  • JSON
  • XML
  • HTTP POST Requests

Local Storage

  • User Defaults
  • Sandboxing
  • Working with Files
  • Archiving
  • UIDocument
  • SQLite
  • Core Data

Multitouch, Taps, and Gestures

  • Introduction
  • Touch Notification Methods
  • Gesture Recognizers

Drawing

  • Core Graphics and Quartz 2D
  • Points, Coordinates, and Pixels
  • Graphics Context

Animation

  • Core Animation
  • UIView Core Animation Blocks
  • Animation Curves
  • Transformations

App States

  • Introduction
  • Best Practices
  • App States
  • App Lifecycle
  • Moving to the Background
  • Memory Usage
  • Background Execution

Notifications

  • Local Notifications
  • Push Notifications

Core Location Framework

  • Basics
  • Location Accuracy
  • Distance Filter
  • Calculating Distances
  • Compass
  • MapKit Framework

Localization

  • Introduction
  • Resources
  • Language and Region
  • NSLocale
  • Text, Dates, and Numbers

Running on a Physical Device

  • Introduction
  • Project Configuration
  • Launching an App

Performance and Power Optimization

  • Introduction
  • Measuring Performance
  • Responsiveness
  • Memory Usage
  • Networking
  • Core Location

Deployment

  • Icons and Launch Images
  • Archiving
  • Distribution
  • iTunes Connect

Conclusion