Intro – 01_Objective-C vs. Swift

Intro – 02_Writing Classes in Objective-C

Intro – 03_Methods and Messages in Objective-C

Intro – 04_Porting from Objective-C to Swift (Part 1)

Intro – 05_Porting from Objective-C to Swift (Part 2)

Intro – 06_Common Interop Challenges

Intro – 01_Interoperability Problem Set

Get Ready to Learn iOS

You will complete a series of coding exercises to test your understanding of Swift. There will be exercises for variables, strings, if (else-if and else) statements, and functions.

Variables and Types

Operators and Expressions

Control Flow


Structures and Enums




Object-Oriented Programming

Introduction and Xcode

Build your first app with Swift and Xcode, Apple’s programming environment for app development. You’ll learn how to use AutoLayout, UIButtons, and UILabels to create an interface, and how to react to touch events in an app using ViewController and multiple views. You’ll also learn how to set up audio recording and playback in a voice recording app.

AutoLayout and Buttons

ViewController and Multiple Views

Delegation and Recording

Playback and Audio Effects

Brainstorm Ideas for Your Final App!

Pitch Perfect

What is Version Control

Git course.

Create A Git Repo

Review a Repo’s History

Add Commits To A Repo

Tagging, Branching, and Merging

Undoing Changes

Working With Remotes

Working On Another Developer’s Repository

Staying In Sync With A Remote Repository

Develop Your Personal Brand

LinkedIn Review

GitHub Review

Outlets and Actions

You will create a first version of the MemeMe app that enables a user to take a picture, and add text at the top and bottom to form a meme. The user will be able to share the photo on Facebook and Twitter and also by SMS or email.

View Presentations and Segues

The Delegate Pattern

Build of the MemeMe App

MemeMe The Meme Editor

Table Views


Complete the MemeMe App

MemeMe 2.0 The Final Product

Suggested Electives

Introduction to AutoLayout

Suggested Electives AutoLayout

Using AutoLayout

View Properties used by AutoLayout

Beginning StackViews

Positioning Views Constraints

Horizontal Layouts

Vertical Layouts

Beyond AutoLayout

Sketch UI Elements for Your Final App!

Making a Network Request

Incorporate networking into your apps, and harness the power of APIs to display images and retrieve data. Use Apple’s Grand Central Dispatch, or GCD, framework to create asynchronous apps, ensuring a smooth user experience, even while your apps run lengthy operations in the background.

Using Web Services and APIs

Problem Set JSON Parsing

Chaining Asynchronous Requests

Authenticating Requests

Improve Networking with MVC

Preparing for On the Map

Closures Reloaded

GCD and Queues

Backgrounding Lengthy Tasks

On the Map

Suggested Electives

Conduct a Job Search

Refine Your Entry-Level Resume

Refine Your Career Change Resume

Craft Your Cover Letter

Find Web APIs for Your Final App

Debugging, Printing, and Logging

Suggested Electives • iOS Debugging.

Stepping Through Code

LLDB and Breakpoint Actions

Breakpoints and Visual Tools

Simple Persistence

Learn about simple persistence, the iOS File System, and the “sandbox.” Set up the classes we need to get Core Data up and running so that we can create, save, and delete model objects. Enable user interfaces to reactively update whenever the model changes, and safely migrate user data between versions.

iOS File System and Sandboxing

Introducing Core Data

The Core Data Stack

Simpler Code with Core Data

Rounding Out Core Data

Optional Elective Firebase in a Weekend – Saturday

Optional Elective Firebase in a Weekend – Sunday

Optional Elective Firebase in a Weekend – Monday

Virtual Tourist

Introduction to Digital Analytics

Introduction to Firebase Analytics

Implementing In-App Analytics

Analytics Integration


This is your chance to let your iOS Developer skills shine! For this final project, you’ll design and build your own iOS app, taking the design from the drawing board to the App Store.



You Decide!

Ace Your Interview

Practice Behavioral Questions

Interview Fails

Land a Job Offer

Interview Practice (iOS)

Principles of Software Design

Selective Electives • Mobile Design Patterns.

Creational Design Patterns

Structural Design Patterns

Behavioral Design Patterns

Software Anti-Patterns

Please Read Before Taking this Course

Introduction and Efficiency

List-Based Collections

Searching and Sorting

Maps and Hashing


01. Introduction to Operators and Expressions

By now, you will have needed to finish downloading and installing Xcode. To follow along with the examples in this lesson, open up the playground file titled Operators and Expressions from the Learn Swift Programming playground collection. Play around with the examples and see what you can get Swift to do!

The first thing you need to know about operators and expressions are their simple definitions:

  • Operators are special symbols or phrases that can be used to check, change, or combine values.
  • Expressions are statements that can be reduced to a single value. In programming lingo, you’d say expressions are statements that return a single value.

To really capture these concepts, let’s look at a fictitious calculation for an adventure game:

This calculation reads that totalPoints are calculated by taking gamePoints, adding some points for the numberOfLives, removing some points for the numberOfDeaths, and then adding some random bonus.

Between the variables, are arithmetic operators. Most of these operators you’ve probably seen before in a math class — like addition (+), subtraction (-), and multiplication (*). We also have the equals sign (=) which is known as the assignment operator. Most of these operators work as you might expect, and we can really see this once we start substituting values into the calculation.

Operators in Action


Here is our calculation again, and we’ll use it as an example:

In the upcoming examples, we’ll use the same “totalPoints” calculation.

Let’s assume that before we calculate this, we have 3 lives (numberOfLives), 0 deaths (numberOfDeaths), and 1000 gamePoints. Also, let’s assume the pointsPerLife is 100 and the pointsPerDeath is 300 (or -300 once we subtract it). So, we can substitute those values, and we get the following result:

The initial values are 1000 game points, 3 lives, 100 points per life, 0 deaths, and 300 points per death.

What are we seeing here? Well, each time we substitute a value for its corresponding variable name, we are seeing our first type of expression: a literal expression. For example, when the variable numberOfLives is reduced to its actual value of 3—that is a literal expression. We call it a literal expression because the resulting value (in this case 3) is a literal value. Remember a literal is just another word for a fixed value.

First, the randomBonus is evaluated, and then the result is computed.

As we reduce the rest of this statement, the randomBonus is reduced just like the other expressions. Right now, we won’t talk about the randomBonus expression, called a function call expression, (more on functions in a later lesson) but just assume functions also reduce to a single value. And, as you can see, the result is 1320, which will be assigned to totalPoints.

Have questions? Head to Knowledge for discussion with the Bootcamp AI Community.