top of page

Code 401: Advanced Software Development for Mobile Applications

Overview

 

Create mobile games and apps for the Android and iOS operating systems. 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 mobile development. This course includes career development curriculum to get you ready for your job search, plus job search assistance after graduation.

This course includes career development curriculum to get you ready for your job search, plus job search assistance after graduation. The Daytime track is 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 Java for the Android operating system and Swift for the iOS operating system.

  • Use industry tools and frameworks, such as Cocoa, Xcode, UIKit, and Git.

  • Understand and know how to properly use UIKit, asynchronous code, CoreImage, NSURLSession and JSON, AutoLayout, Source Control, Core Data, Animation, and the app submission process.

 

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

  • Core Data

    • 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

  • 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

    • 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

 

Data Structures and Algorithms

  • Linked Lists

  • Stacks/Queues

  • Trees

  • Binary Search Trees

  • Sorting Algorithms

  • Hash Maps

  • Daily Whiteboard Interview Practice

 

Industry Readiness Training

 

Changing careers or building a business is about more than learning a new skill. In tandem with your software development education, you will receive powerful career-building, exposure to entrepreneurship and strategic training so you can confidently start your job search or begin building your own startup as soon as (or even before!) you graduate.

Our Career and entrepreneurship Transition Services provide training, mentoring, leadership, and introductions to industry partners to help you become a more well-rounded software developer, prospective founder and a leader in your field. These services, which start in Code 201 and continue after Code 401 graduation, involve a series of events, workshops, startup immersions and assignments that help you think holistically about your new career and take actionable steps towards success. Learn More »

 

Material Requirements

 

You are required to supply your own laptop that meets the below requirements. Chromebooks are not suitable for this course, since you can’t directly control installed software. Most students use Macs. You are responsible for the upkeep and maintenance of your computer throughout the course. The course pre-work will have specific instructions for configuring your computer to be ready for the first day of class.

  • 64-bit Operating System, like macOS or Windows 10.

  • Fully up to date, with the latest version of the operating system and all security updates installed.

  • At least 50GB of free space on the hard drive.

  • At least 8GB of RAM. 16GB RAM strongly preferred.

  • Free of viruses, and in general working order.

By the first day of class, you will need:

 

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 »

 

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.

Course Details

 

Length:

Daytime: 10-weeks

Evenings & Weekends: 20-weeks

Tuesday – Friday

5:30 – 8:30 p.m; Saturday, 9:00 a.m. – 6:00 p.m.

 

Tuition: $12,500 BDS

Get Tuition Financing>>

Upcoming Dates

Ready to enrol?

bottom of page