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

    Section

    Content

    • Collections
    • Array and Dictionary
    • Optionals
    • Optional Types, binding and chaining
    • Structs and Classes
    • Similarities, differences and use cases of these
    • Properties
    • Declare properties, setters and getters, computed vs. stored
    • Control Flow
    • if/else; switch; loops
    • Structs and Classes
    • Similarities, differences, and use cases of these
    • ARC
    • Introduction to memory management and lifetime qualifiers, discuss implications for closures
    • The Tools
    • Using Xcode and the iPhone Simulator
    • Swift
    • Learn the language used in all iOS development
    • Memory Management
    • Use the reference counting mechanism correctly to prevent memory leaks and premature deallocation
    • Functions and Closures
    • Syntax, best practices and hands-on examples
    • Initialization
    • Work with init and deinit
    • Functional Programming
    • Use 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
    • Use Xcode and the iPhone Simulator
    • Simple iOS App
    • Develop a simple iOS app using UIKit
    • Delegates
    • Use 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
    • Core Graphics
    • Draw with Quartz
    • Multi-Touch Events
    • Deal with multi-touch events
    • Table View
    • Use 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
    • Animations
    • Use animations to create unique user interfaces
    • Toolbars and View Controllers
    • Create applications with more than one view
    • Navigation Controller
    • Use navigation controllers to display multiple user interfaces
    • Debugging
    • Use the IIdb debugger from Xcode
    • Auto Layout
    • Use Auto Layout to create user interfaces that work on any device
    • Dynamic Type
    • Resize your text to suit the user’s preference
    • Archiving and Unarchiving
    • Use NSCoder for data persistence
    • Introduction
    • Meet the instructor, get settled with Xcode
    • let and var
    • Constants and Variables
    • Control Flow
    • if/else; switch; loops
    • Web Services
    • Use NSURLSession to access web services
    • Camera
    • Access the camera and using the Image Picker
    • Low-memory Warnings
    • How to deal with low-memory warnings
    • Localization
    • Make internationalized iOS apps
    • Preferences
    • Let the user store preferences for an application
    • Instruments
    • Use Instruments to locate performance problems and memory leaks
    • Split View Controllers
    • Use split view controller to show side-by-side interfaces on the iPad
    • Core Data
    • Use Core Data for data persistence
    • Gesture Recognizers
    • Detect gestures with UIGestureRecognizer
    • Storyboarding
    • Create application flows with UIStoryboard

Requirements

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 West, California

Big Nerd Ranch, Georgia