iOS 9 Development using Objective-C

$2,895.00

Duration Five Days

Description

Duration: 5 Days

Description

This five-day course explores the language, tools, and libraries required to build “native” iPhone/iPad applications with iOS 9. Developers can choose from three different starting points depending upon previous iOS experience (from no experience to minimal view controller experience).  This course starts at the beginning of the development process, identifying what is needed to obtain the iOS SDK and continuing with a thorough exploration of Objective-C, the native programming language for iOS. After all of the necessary foundations are established, the iOS 9 SDK and its related development tools are introduced, providing a detailed examination of views, controls, view controllers, and their event based lifecycle.

Throughout the course, concepts are reinforced through “hands-on” lab exercises.  The culmination of these exercises result in an iPhone / iPad app that is intended to be used by attendees of a software development seminar (including a “master-detail” schedule of sessions, attendee notes, map / directions to the venue location, and display of a live website).

Learning Objectives

  •  Build iPhone and iPad applications with the iOS 9 SDK
  •  Master the underlying programming language, Objective-C
  •  Discover the tools and APIs used to build dynamic user interfaces
  •  Delve into the methods in which user input is collected
  •  Improve code quality through Unit Testing
  •  Explore advanced programming concepts including Persistence and Concurrency

Audience

Experienced object oriented software developers who are new to, or have minimal experience with, Objective-C and the iOS SDK.

Prerequisites

Strong development experience in any Object Oriented programming language.  Students should feel very comfortable with concepts such as Inheritance and Polymorphism.

Course Outline

Module 1 – Introduction to iOS Development

  •  Introducing iOS
  •  Apple Developer Membership
  •  iOS SDK
  •  Xcode
  •  Interface Builder
  •  The iOS Simulator
  •  Instruments
  •  Documentation
  •  iOS APIs
  •  Getting Started

Module 2 – Objective-C: Basic Data Types

  •  Introduction and Brief History of Objective-C
  •  The Main Function
  •  NSString Literal & NSLog
  •  Primitive Data Types
  •  Structs and Enumerated Data Types
  •  NS_ENUM & NS_OPTIONS

Module 3 – Objective-C: Working with Objects

  •  Foundation Classes
  •  Object Creation: Overview and Messaging
  •  Object Creation: Alloc / Init
  •  Object Creation: Factory Methods
  •  More on Strings

Module 4 – Objective-C:  Collections

  •  Arrays, Dictionaries, and Sets
  •  Class Clusters & Introspection
  •  Fast Enumeration
  •  Wrappers: NSNumber

 Module 5 – Objective-C: Custom Classes

  •  Custom Class Overview
  •  Class Header File
  •  Class Implementation File
  •  Self and Super
  •  Automatic Reference Counting (ARC)
  •  Properties
  •  Overriding NSObject Methods
  •  Access Control

Module 6 – iOS Basics

  •  Architecture of an App (The Main Run Loop)
  •  Creating a Project & Target Settings
  •  UIApplication and the App Delegate
  •  UIKit Framework: Views and Controls
  •  Storyboards and Scenes
  •  Build Actions (Run, Test, Profile, Analyze, Archive)
  •  Frameworks & Cocoapods

Module 7 – View Controllers: Definition, Lifecycle, and Navigation

  •  View Controller Overview
  •  Life Cycle Methods
  •  Connecting a Scene to a View Controller
  •  Segues
  •  Segue Methods
  •  Unwind Segues
  •  Programmatic Segues
  •  IBOutlet and IBOutletCollection
  •  The Target-Action Pattern & IBAction
  •  Programmatic View Controllers

Module 8 – Adaptive Layout

  •  Storyboard Assistant Preview
  •  Device Rotation
  •  Auto Layout
  •  Size Classes
  •  NSLayoutConstraint
  •  NSLayoutAnchor
  •  Visual Format Language

Module 9 – View Controllers: Common Controllers

  •  Navigation Controllers
  •  Tab Bar Controllers
  •  Objective-C:  Protocols & Delegates
  •  Table View Controllers: Prototype
  •  Deleting and Moving Rows
  •  Troubleshooting Tips
  •  Table View Controllers: Static

Module 10 – Collection Views

  •  Collection View Overview
  •  Data Source and Delegate Protocols
  •  Flow Layout
  •  Custom Layout Options
  •  Programmatic Instantiation

Module 11 – Animation, Images, and Common Views

  •  Blocks
  •  UIView Animation
  •  Image Views & the Asset Catalog
  •  Scroll Views
  •  Web Views
  •  Map Views

Module 12 – Handling User Input

  •  Text Fields & Views, Keyboards, and “First Responders”
  •  UIAlertController
  •  Gestures (Pinch, Pan, Swipe, etc.)

Module 13 – Data Persistence

  •  User Defaults
  •  File System
  •  Object Archiving
  •  SQLite

Module 14 – Notifications

  •  Key-Value Observing (KVO)
  •  NSNotification

Module 15 – Concurrency

  •  Threads and @synchronized
  •  Dispatch Queues and Grand Central Dispatch (GCD)
  •  GCD and a RESTful Web Service (NSData/JSON)

Module 16 – Testing

  •  XCTest Framework
  •  Navigators & Assistant Editor Categories
  •  Functional Tests
  •  Performance Tests
  •  Asynchronous Tests

Demo – Device Provisioning & Distribution

  •  Development Build: Deploying to Your Own Device
  •  Overview of the Provisioning Portal
  •  Development and Distribution Certificates
  •  Approved Devices
  •  App IDs
  •  Provisioning Profiles
  •  Targets, Configurations, and Schemes
  •  Ad Hoc Build: Archiving and Distributing
  •  Public Build: iTunes App Store

Appendix A – Core Data

  •  Persistence Options in iOS
  •  Core Data Architecture
  •  Schema Design in Xcode
  •  Generating Model Classes
  •  Basic Stack Configuration
  •  CRUD Operations

Appendix B – Additional Objective-C Topics

  •  Wrappers: NSValue
  •  Control Structures: Conditonals
  •  Control Structures: Loops
  •  Categories
  •  The “Address Of” Operator

Appendix C – Additional iOS Topics

  •  Touch ID & Passcode
  •  Settings App (User Defaults)
  •  UILocalNotifications
  •  Push Notifications
  •  Operations & NSOperationQueue
  • User Interface Tests