Advanced iOS Bootcamp

Suitable for students who have the basics under their belts, this class explores advanced iOS development topics including concurrency, rendering performance, view controller transitions and maximizing the performance of iOS applications.

NEW FOR iOS 7!
The Advanced iOS class is also a great way to get up to speed for iOS 7. Here is some new content we have added for the release of iOS 7:
* UI Dynamics -- making user interfaces that bounce, spin and other
physics based effects
* UI Motion Effects and Core Motion -- creating user interface effects
based on accelerometer and gyroscope input
* View Controller Transitions -- customizing view controller transitions
* Collection View Transitions -- custom layouts and transitions with
collection views
* JavaScriptCore -- Embedding and using a JavaScript engine in your
apps with JavaScriptCore
* TextKit -- Storing, laying out, and rendering text with the new iOS
7 TextKit engine
* AVFoundation -- Scanning barcodes and synthesizing speech with new
AVFoundation APIs
* Web Services -- Using the new NSURLSession API and AFNetworking 2.0
* Reverse Engineering and the Objective-C Runtime -- Peeking in to
private frameworks and taking control of what's under the covers

UPCOMING CLASSES

Date Course Instructor Total Price Status

Atlanta, Georgia

Jun 16 -
Jun 20
Instructor(s): Ward
$ 4,050

BNR West, California

Jul 21 -
Jul 25
Instructor(s): Dalrymple
$ 4,050

What You'll Learn

Upon completion of Advanced iOS Bootcamp, the student will be able to:

  • Store documents, application data, and settings in iCloud
  • Write concurrent applications using Grand Central Dispatch and NSOperationQueue
  • Customize Storyboard view transitions
  • Use GLKit based controllers for OpenGL 3D rendering
  • Process images and find faces using Core Image
  • Asynchronously communicate with and parse data from JSON based web services
  • Print, email and share from your app with the Social framework
  • Access the accelerometer, gyroscope and compass using Core Motion
  • Create and process audio in real time using Core Audio
  • Display real time video on 3D objects with AVFoundation and OpenGL ES
  • Display content on external displays using AirPlay streaming and wired video connections
  • Use web views to render content and pass information and events between Javascript and Objective-C
  • Master the iOS performance optimization tools and LLDB debugger
  • Pull-to-refresh and other Table View paradigms
  • Record video using AVFoundation
  • Use Collection Views with custom layouts
  • Understand the internals of the Objective-C runtime and message passing
  • Automating app testing with the UI Automation instrument

Advanced iOS Bootcamp SYLLABUS

Section Content
Advanced iOS BootcampOpen
XIBs and Storyboards
Writing apps that mix Storyboard, XIBs, and programmed GUIs
Motion Effects
Creating dynamic user interfaces that adjust based on the users movement
Core Image
Processing images and detecting faces with Core Image filters
Sharing, Printing, and AirDrop
Sharing text and images, printing content and sending data with AirDrop
Core Graphics
The 2D rendering system that UIKit is built on
Layers and Core Animation
Layer-based animations with 3D effects
UIDocument
Updating an application to use the UIDocument class for saving and loading
iCloud
Syncing document based apps with iCloud
View Navigation
Dynamic properties and the Objective-C runtime
TextKit
Storing, laying out, and rendering text with the new iOS 7 TextKit engine
JavaScriptCore
Embedding a JavaScript engine in your apps with JavaScriptCore
Objective-C and JavaScript
Calling JavaScript in UIWebViews and letting your embedded web pages talk to your app
UIKit Dynamics
Maintaining interfaces that act like real world objects using the UIKit Dynamics physics engine
Concurrency with NSOperation
Using NSOperation and NSOperationQueue to keep apps interactive
Concurrency with GCD
Writing concurrent apps with the low level, block-based Grand Central Dispatch
AVFoundation II
Detecting barcodes and speech synthesis with AV Foundation
OpenGLESTextureCache
Putting live video on OpenGL renderings
Modernizing Objective-C
Updating legacy apps to modern Objective-C, including properties, ARC, and Objective-C literals
Memory Profiling
Using Instruments to find and fix memory leaks
Debugging with LLDB
Managing breakpoints, scripting LLDB, and nifty tricks with Xcode and the LLDB debugger
Core Audio
Audio units and creating real time audio
NSURL Session
Using the new iOS 7 web services framework NSURL Session
JSON Parsing
Turning JSON data into Objective-C objects
Asnychronous Web Services
Accessing web services asynchronously
Table Views
Pull to refresh and other table view techniques
Collection Views
Creating collection views with custom layouts
UI Automation
Automated app interaction for testing using the Automation instrument
GLKit
Rendering with Apple's OpenGL helper library GLKit
Quartz
2D vector based rendering on layers
Custom Transitions
Creating custom view controller transitions with transition delegates
Container View Controllers
Creating reusable view controllers that can be embedded in other view controllers

Requirements

We expect students in the Advanced class to know:
1) The C programming language
2) The Objective-C programming language
3) Everything covered in "iOS Programming: The Big Nerd Ranch Guide

How to prepare your device for our class

Click here for more information on preparing your device.

Advice from the nerds

You will need to be able to deploy an application to your device before you come to class. For this class you should have a pretty good idea of the procedure for doing this. Xcode 5 and a device with iOS 7 will be necessary for this class. If Apple updates these versions before class begins, you may update to the current version. However, you must make absolutely sure you can still deploy to the device after you update.

If you are unsure of whether or not you are prepared, do not know how to deploy to the device, or will be using one of our computers or devices, we are happy to help.

IMPORTANT TELEPHONE NUMBERS

For information or to enroll in a class in United States: (770) 817-6373