Advanced iOS Bootcamp

Hold on tight and batten down your cranial hatches: this class explores advanced iOS development topics including concurrency, custom drawing, animated and interactive view controller transitions and maximizing the performance of iOS applications. In short, prepare your brain for an influx of iOS knowledge, in both Swift and Objective-C.

What You'll Learn

Upon completion of our Advanced iOS course, you will be able to:

  • Process images and find faces using Core Image
  • Create custom web service configurations for authenticating with OAuth 2 and downloading files in the background
  • Improve application performance by performing work concurrently with NSOperationQueue and Grand Central Dispatch
  • Access the accelerometer, gyroscope and compass using Core Motion
  • Automate application user-testing with the UI Automation Instrument
  • Display content on external displays using AirPlay streaming and wired video connections
  • Build a custom collection view layout to present your content to your users your way
  • Use web views to render content and pass information and events between Javascript and Objective-C
  • Debug applications with LLDB
  • Master Xcode’s performance-tuning Instruments, including CPU Profiler, Leaks and Zombies
  • Record video, process barcodes, and synthesize speech using AVFoundation
  • Store credentials securely using the keychain
  • Understand the internals of the Objective-C runtime and message passing
  • Build animated and user-driven transitions between view controllers
  • Create iOS extensions with embedded frameworks
  • Syllabus

    Section

    Content

      • Custom Transitions
      • Create custom animations for transitions between view controllers
      • Interactive Transitions
      • Drive your custom animations interactively based on user input
      • LLDB
      • Get friendly with the LLDB tool for debugging
      • Instruments and View Debugging
      • Profile your application for memory, CPU, and view hierarchy issues.
      • Unit Testing
      • The foundations of XCTest for ensuring code correctness
      • Quartz
      • Custom drawing/rendering for views, printing, and PDF needs
      • Layer Transforms
      • Understand what's under the hood of the animation framework
      • Collection View Layouts
      • Build fully-custom layouts for use with UICollectionView
      • JavaScriptCore
      • Run javascript within a virtual machine within your app
      • UI Testing
      • Use Xcode 7's new UI testing capabilities
      • NSOperation
      • Multithread your app using a high-level Obj-C API
      • GCD
      • Dig below NSOperation with the Grand Central Dispatch C API
      • UIDocument
      • Explore a powerful, alternative model management architecture
      • Extensions
      • Understand how iOS's extensions allow talking to other apps
      • Motion Effects
      • Get gyro and accelerometer data, and add parallax and motion-driven effects to your views
      • Core Image
      • Process images with filters and face detection
      • OAuth2 with NSURLSession
      • Understand web authentication flows and iOS' keychain in the context of custom NSURLSessions
      • AVFoundation
      • Audio/Video recording and processing, barcode reading, and speech synthesis
      • Objective-C Runtime
      • Understand what's under the hood of Objective-C, and how to leverage its power and quirks to your advantage.

Our Nerds, Your Place

No matter where you are, our instructors can come to you. Need to take your team to the next level?

Learn More

Requirements

Advanced iOS students should be current iOS developers who are looking expand their knowledge of frameworks and know what's happening under the hood of an iOS app.

Students in this class are usually full-time iOS devs, have a side business already up, an app in the store or have helped shipped an app with a team. We recommend at least three months of working iOS development experience prior to class.

While many of the Advanced iOS students have taken our Beginning iOS courses in Objective-C and Swift, plenty of others have learned iOS programming on their own or through another class. What matters is that you’re willing to devote yourself to learning the material. It’s important to make sure you’re comfortable with iOS basics so you won’t be overwhelmed by day one.

With that in mind, you’ll need the following before you embark on this path to Nerdvana:

  • A working understanding of both Objective-C and Swift.*
  • An understanding of the content in our Beginning iOS class; you can work through this pre-class workbook to make sure you're ready.
  • The ability to run code on your own iOS device.

*We are happy to supply course registrants who only know one of the two languages with a copy of our programming guide for the other language in advance of the course, so that you can be prepared for exercises in both languages.

How to prepare your device for our class

Get yourself ready using these handy instructions.

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 how to do so. If Apple updates Xcode or iOS 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 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.

Upcoming Classes

Big Nerd Ranch West

Big Nerd Ranch Lodge at Callaway