Code 401: Advanced Software Development in iOS

Apply

Overview

Create iOS games and apps with Swift and Objective-C. Take your app ideas from concept to completion and learn the tools, frameworks, and best practices used by mobile developers around the world.

Throughout this intensive course, you will study professional techniques and practices as you advance your skills in iOS development. This course includes career development curriculum to get you ready for your job search, plus job search assistance after graduation.

Daytime and Nights & Weekend tracks are each 400 hours total. Course hours include lecture, lab, and coworking.

Outcomes

At the end of this course, you will be able to:

  • Create mobile apps in Objective-C and Swift, Apple's new programming language.
  • Use industry tools and frameworks such as Cocoa, Xcode, UIKit, Git, and more.
  • Understand and know how to properly use UIKit, asynchronous code, CoreImage, NSURLSession and JSON, MapKit and CoreLocation, AutoLayout, Source Control, Core Data, Animation, and the app submission process.
  • Given a series of career development workshops and the web development knowledge, experience, habits, and practices learned in this course, students will create an online brand, network, and resume; and will demonstrate aptitude in personal and technical interviews of varying formats, in order to conduct a successful job search and obtain a job as an iOS Developer.

Prerequisites

  • Code 301
    • Students with previous mobile development experience can test out of this requirement in their application. If you'd like to test straight into this course, you will need to showcase at least one live web or mobile app that shows off your skills as a developer
  • All students are expected to complete the prework for this course before the first day of class

Topics

Cocoa Touch

  • UIKit
    • View Hierarchy
    • Responding to Touch Events
    • Animation / Custom Interactive Transitions
    • UITableView / UICollectionView
    • Container View Controllers
  • Foundation
    • Collection Classes Under the Hood
    • Strings and String Manipulation
    • Networking with NSURLSession and AFNetworking
  • Core Data
    • Document Based Applications
    • Create and Design Model Objects in a Relational Database (SQLite)
    • Optimize Your Code for Complex, Lightning-Quick Database Lookups
    • Migrating your Data
    • Concurrency and Core Data
  • CoreLocation/CoreMotion/MapKit
    • Utilize Available Sensor Data to Make ‘Location-Aware’ Apps
    • Region Monitoring
    • Map Annotations and Local Search with MapKit
  • Web APIs
    • HTTP Protocol
    • REST API
    • JSON
    • Callbacks
    • OAuth

Swift

  • Types
    • Primitives - Integer, Float, String, and Boolean
    • Collections - Arrays and Dictionaries
    • Classes and Structs
    • Enums
  • Functions
    • Global Functions
    • Methods
    • Nested Functions
    • Closures and Closure Expressions
  • Essential & Advanced Swift Features
    • Optionals
    • Initializers
    • Nested Types
    • Extensions
    • Generics
    • Advanced Operators and Overloading
    • Pattern Matching

Xcode

  • Design patterns
    • MVC
    • Target Action
    • Delegation
    • Notifications
  • Projects
    • File Structure
    • Navigation
    • Build Settings
    • Property Lists
    • Bundles
  • Interface Builder
    • Storyboards
    • Size Classes
    • Autolayout
    • Xibs
    • Outlets and Actions
    • Tags
  • Debugging
    • Breakpoints
    • Logging
    • LLDB
    • Profiling Apps with Instruments
  • Testing
    • Unit Testing with XCTest
    • Continuous Integration with Xcode Server
    • Optimizing Method Calls with Performance Tests

Collaboration

  • Collaboration-Based Environment
  • Pair Programming
  • Group Projects
  • Agile Work Environment
  • Cocoa Pods / Carthage
  • Source Control
    • Repositories
    • Forking
    • Cloning
    • Pull Requests
    • Collaborators
  • SDKs and Frameworks
    • Facebook
    • Twitter
    • Parse
    • Github
    • Stack Overflow

Objective-C

  • Interface and Implementation Files
  • Objective-C Runtime
  • Message Sending
  • Memory Management
  • Properties and Ivars
  • Foundation Objects - NSString, NSArray, NSDictionary
  • Blocks
  • Constants

Career Development Curriculum

Two full days of Code 401 are dedicated to workshops and presentations that teach students the skills they'll need for their job search, such as personal branding techniques, effective networking practices, how to create an attractive resume, mastering personal and technical interviews, job search best practices, and more.

Additionally, during each Project Week, students present projects that will go into their professional portfolio. Learn More »

Learn with Stacked Modules

Concepts in each of our courses are taught using stacked modules, where a new concept is introduced in each class session, building upon what came before it. This is a challenging style that requires persistence, practice, and collaboration, but allows more concepts to be introduced over the length of the course. This method helps students learn and retain more information in a short period of time. Learn more about stacked modules »

Computer & Material Requirements

Students are required to bring their own Mac laptop with plenty of free space on the hard drive. By the first day of class, students will need:

Homework Policy

In order to pass the class, students must attain at least 90% of available points.

Professionalism

Punctuality, participation in discussions, completion of assignments, and demonstration of professional courtesy to others are required, in accordance with our Code of Conduct. Attendance will be taken at the beginning of every class. Passing requires at least 90% attendance. Students should always contact the instructors ahead of time if they are unable to attend all or part of published class / lab hours.

Contact Us to Apply