Beginning iOS (iPhone/iPad) with Swift

The beginning is a great place to start. If you're an iOS developer who wants to build applications that run on the iPhone or iPad, our Beginning iOS Bootcamp, fully updated for iOS 8, is just what you need.

Kick off your quest for knowledge with two days devoted to learning Swift, then dive headfirst into our five-day iOS bootcamp. In just seven challenging days, we’ll have you building your first iOS application. You'll become an active participant in the iOS programming community, allowing you to continue learning even past day eight, when you emerge a better, stronger Nerd.

This is the fun stuff, but there’s hard work involved. After two days of learning the Swift language and Foundation framework, we delve into important toolchains and the classes that make up the iOS UI framework. Learn how to lay out interfaces using Auto Layout, tackle multi-touch event handling and take on custom drawing and animations.

We’ve taught this bootcamp for Facebook, Cisco, AT&T, SAS and many more. We’d be delighted to bring it to you, too.

What You'll Learn

  • Use and understand Swift’s basic types.
  • Declare and use variables and constants.
  • Develop and use simple to more nuanced functions.
  • Create closures and effectively use them.
  • Work effectively with properties.
  • Implement Swift’s functional patterns.
  • Utilize extensions to incorporate Swift’s “out-of-the-box” functionality.
  • Create and conform to protocols to develop a blueprint of functionality.
  • Create generics to increase our code’s flexibility and power.
  • Write a program in Swift.
  • Properly manage memory using ARC while preventing memory leaks and retain cycles.
  • Set up elegant user interfaces easily, using Interface Builder and in code.
  • Set up text input fields on the iPhone and move the virtual keyboard onto the screen.
  • Localize applications for international use.
  • Swap out different interfaces (views) with animation.
  • Display editable tables of data.
  • Handle warnings from the phone so applications don't get shut down.
  • Handle touch and complex multi-touch sequences.
  • Draw with UIKit.
  • Animate user interfaces.
  • Pull data from a web service for use in an application.
  • Create an application that can access the user's photos or use the camera to take new photos for use within the application.
  • Maintain a preference file for an application.
  • Leverage Swift’s control flows and looping constructs.
  • Create and use collections.
  • Know the power and use case of optionals.
  • Understand the similarities and differences between enums, structs and classes (and their usages).
  • Understand Swift’s new initializer pattern.
  • Use the Instruments tool to profile an application's resource usage for performance.
  • Store data on the device using multiple techniques.
  • Properly configure your user interface to handle multiple device orientations and device rotation.
  • Architect large applications with many sources of data and interfaces.
  • Adopt Dynamic Type to scale text to the user’s preferences.
  • Syllabus



      • Introduction
      • Meet the instructor, get settled with Xcode
      • let and var
      • Constants and variables
      • Control Flow
      • if/else; switch; loops
      • Collections
      • Array and Dictionary
      • Optionals
      • Optional Types, binding, and chaining
      • Structs and Classes
      • Similarities, differences, and use cases of these
      • Properties
      • Declaring properties, setters and getters, computed vs. stored
      • Functions and Closures
      • Syntax, best practices, and hands on examples
      • Initialization
      • Working with init and deinit
      • Functional Programming
      • Using Swift’s functional patterns: map, reduce, filter
      • Extensions
      • Create extensions that modify and add behavior to existing types
      • Protocols
      • Create and conform to protocols that define the rules of engagement for a conforming class
      • Generics
      • Demonstrate the power and flexibility of generics by creating a new collection type
      • The Tools
      • Using Xcode and the iPhone Simulator
      • Simple iOS App
      • Develop a simple iOS app using UIKit
      • Swift
      • Learn the language used in all iOS development
      • Memory Management
      • Use the reference counting mechanism correctly to prevent memory leaks and premature deallocation
      • Delegates
      • Using the delegate design pattern
      • Custom UIView Subclasses
      • Subclass UIView for custom drawing and event handling
      • UIScrollView
      • Use a scroll view to display views that can't all fit onto the screen
      • Animations
      • Using animations to create unique user interfaces
      • Multi-touch Events
      • Dealing with Multi-touch events
      • Gesture Recognizers
      • Detecting gestures with UIGestureRecognizer
      • Table View
      • Using table views, table view controllers and creating custom table view cells
      • Rotation and Modal View Controllers
      • Adapt applications to multiple orientations and present interfaces using a form sheet
      • Toolbars and View Controllers
      • Create applications with more than one view
      • Navigation Controller
      • Using navigation controllers to display multiple user interfaces
      • Debugging
      • Using the lldb debugger from Xcode
      • Auto Layout
      • Using Auto Layout to create user interfaces that work on any device
      • Archiving and Unarchiving
      • Using NSCoder for data persistence
      • Camera
      • Accessing the camera and using the image picker
      • Low-memory Warnings
      • Learn how to deal with low-memory warnings
      • Localization
      • Making internationalized iOS apps
      • Storyboarding
      • Create application flows with UIStoryboard
      • Debugging
      • Use basic debugging
      • Web Services
      • Using NSURLSession to access web services
      • Collection Views
      • Use a flow layout to display a grid of items
      • Core Data
      • Using Core Data for data persistence


Without prior experience in either a procedural programming language (such as C, Pascal, VB, or PHP) or another object-oriented platform (such as Java or C#), this class may prove to be extremely challenging.

Excellent typing skills are necessary to successfully complete this course.

How to prepare your device for our class

Confirmed students will be asked to complete a pre-reading assignment of Swift Programming: The Big Nerd Ranch Guide to prepare for class. This will be provided as a PDF before class. A solid understanding of the concepts in this programming guide has proven to greatly improve students' class experience.

Get your device ready using these handy instructions.

Upcoming Classes

Big Nerd Ranch, Georgia

Big Nerd Ranch West, California