Advanced iOS Development (5 Days)

Learn advanced techniques used in developing sophisticated iOS apps. Covers persistence with Core Data, using the URL Loading System to work with REST services, advanced use of storyboards and nib files, and techniques for dramatically reducing size, complexity, and coupling in controller classes.

Audience

Current iOS developers who are interested in expanding their knowledge and abilities in important areas of the platform.

Prerequisites

Participants must have a minimum of six months of hands-on experience developing iOS apps, as well as a working knowledge of Swift.

Upcoming Public Classes

Enroll early and save.

Course Overview

Learn great techniques for using the Core Data framework, SQLite relational database, and RESTful web services to store, retrieve, and manage your app’s data. Discover optimal ways to manage concurrent operations with blocks, operation queues, and Grand Central Dispatch. And learn how to get the most out of storyboards and nib files, as well as the latest features of UIKit.

By the end of the class, you'll have mastered a range of topics that will give your iOS development abilities a significant boost. You'll also have learned approaches to thorny controller-layer design issues that will help you write cleaner, more reusable components and APIs, and that can dramatically reduce the amount of code it takes to implement new features.

  • Gain hands-on experience using Core Data to persist model objects.
  • Learn to use Core Data controllers to streamline code and improve your app's overall design.
  • Work with unit and functional test automation in Xcode.
  • Connect to RESTful services and marshal JSON data.
  • Use storyboards, nib files, and Auto Layout to design a responsive UI.
  • Learn to design loosely coupled controllers to simplify your app's logic.
  • Manage concurrent tasks in serial and concurrent queues
  • Learn how to integrate iOS and watchOS apps.

Course Outline

Xcode
Explore workspace, project, target, and build scheme configurations for complex projects with library and framework dependencies
Testing
Use Xcode to configure and execute unit and functional test suites, and to examine code coverage metrics.
Core Data
Learn Core Data fundamentals from the bottom up, step by step. Includes developing a guided series of unit tests to help you concretely understand essential Core Data features.
Interface Builder
Covers powerful techniques for combining multiple storyboards and nib files in a single project to dramatically streamline development tasks and boost maintainability.
Decoupled Design for View Controllers
Learn advanced techniques for reducing complexity and coupling, and increasing reuse in your app's controller layer.
Data Sources
Learn to design reusable custom classes that combine data source and `NSFetchedResultsControllerDelegate` protocol implementations to automate synchronization of model and view objects --- even for model data stored and retrieved via RESTful services.
RESTful Services
Covers the use of `NSURLSession` subclasses to access data and download files, as well as how to marshal data from JSON responses into Core Data managed objects.
Concurrency
Learn optimal techniques for leveraging Grand Central Dispatch APIs, `NSOperation` and `NSOperationQueue` and other framework mechanisms to help manage concurrency. Includes discussion of the role of run loops (instances of `NSRunLoop`).
Notifications
Covers best practices and pitfalls regarding the use of notification design patterns and mechanisms such as Delegation, Key-Value Observing (KVO), and notification centers (`NSNotificationCenter`).
The Responder Chain
Understand how to leverage the Responder Chain to dramatically simplify the implementation of global behaviors.
Auto Layout
Learn to take full advantage of size classes and Auto Layout to enable your user interface to adapt to various device sizes and orientations, as well as iPad multitasking's dynamically changing screen real estate.
UIAppearance API
Learn to use UIAppearance to globally 'theme' your app's visual appearance.
WatchKit and watchOS
Covers WatchKit app architecture, highlighting how a watchOS app collaborates with its parent iOS application.

Request a Class

Your class, your way.

Don't see what you're looking for? Use the form below to request a class that's better suited to your location and schedule.

I'd like to arrange an onsite class.