Lesson 01_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.

Lesson 01_Variables and Types

Part 02-Module 01-Lesson 02_Operators and Expressions

Part 02-Module 01-Lesson 03_Control Flow

Part 02-Module 01-Lesson 04_Functions

Part 02-Module 01-Lesson 05_Structures and Enums

Part 02-Module 01-Lesson 06_Optionals

Part 02-Module 01-Lesson 07_Strings

Part 02-Module 01-Lesson 08_Collections

Part 02-Module 01-Lesson 09_Object-Oriented Programming

Part 03-Module 01-Lesson 01_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.

Part 03-Module 01-Lesson 02_AutoLayout and Buttons

Part 03-Module 01-Lesson 03_ViewController and Multiple Views

Part 03-Module 01-Lesson 04_Delegation and Recording

Part 03-Module 01-Lesson 05_Playback and Audio Effects

Part 03-Module 02-Lesson 01_Brainstorm Ideas for Your Final App!

Part 03-Module 03-Lesson 01_Pitch Perfect

Part 04-Module 01-Lesson 01_What is Version Control

Git course.

Part 04-Module 01-Lesson 02_Create A Git Repo

Part 04-Module 01-Lesson 03_Review a Repo’s History

Part 04-Module 01-Lesson 04_Add Commits To A Repo

Part 04-Module 01-Lesson 05_Tagging, Branching, and Merging

Part 04-Module 01-Lesson 06_Undoing Changes

Part 05-Module 01-Lesson 01_Working With Remotes

Part 05-Module 01-Lesson 02_Working On Another Developer’s Repository

Part 05-Module 01-Lesson 03_Staying In Sync With A Remote Repository

Part 06-Module 01-Lesson 01_Develop Your Personal Brand

Part 06-Module 01-Lesson 02_LinkedIn Review

Part 06-Module 02-Lesson 01_GitHub Review

Part 07-Module 01-Lesson 01_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.

Part 07-Module 01-Lesson 02_View Presentations and Segues

Part 07-Module 01-Lesson 03_The Delegate Pattern

Part 07-Module 01-Lesson 04_Build V1.0 of the MemeMe App

Part 07-Module 02-Lesson 01_MemeMe 1.0 The Meme Editor

Part 07-Module 03-Lesson 01_Table Views

Part 07-Module 03-Lesson 02_Navigation

Part 07-Module 03-Lesson 03_Complete the MemeMe App

Part 07-Module 04-Lesson 01_MemeMe 2.0 The Final Product

Part 07-Module 05-Lesson 01_Suggested Electives

Part 08-Module 01-Lesson 01_Introduction to AutoLayout

Part 08-Module 01-Lesson 02_Using AutoLayout

Part 08-Module 01-Lesson 03_View Properties used by AutoLayout

Part 08-Module 01-Lesson 04_Beginning StackViews

Part 08-Module 01-Lesson 05_Positioning Views Constraints

Part 08-Module 01-Lesson 06_Horizontal Layouts

Part 08-Module 01-Lesson 07_Vertical Layouts

Part 08-Module 01-Lesson 08_Beyond AutoLayout

Part 09-Module 01-Lesson 01_Sketch UI Elements for Your Final App!

Part 10-Module 01-Lesson 01_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.

Part 10-Module 01-Lesson 02_Using Web Services and APIs

Part 10-Module 01-Lesson 03_Problem Set JSON Parsing

Part 10-Module 01-Lesson 04_Chaining Asynchronous Requests

Part 10-Module 01-Lesson 05_Authenticating Requests

Part 10-Module 01-Lesson 06_Improve Networking with MVC

Part 10-Module 01-Lesson 07_Preparing for On the Map

Part 10-Module 02-Lesson 01_Closures Reloaded

Part 10-Module 02-Lesson 02_GCD and Queues

Part 10-Module 02-Lesson 03_Backgrounding Lengthy Tasks

Part 10-Module 03-Lesson 01_On the Map

Part 10-Module 04-Lesson 01_Suggested Electives

Part 11-Module 01-Lesson 01_Conduct a Job Search

Part 11-Module 02-Lesson 01_Refine Your Entry-Level Resume

Part 11-Module 02-Lesson 02_Refine Your Career Change Resume

Part 11-Module 03-Lesson 01_Craft Your Cover Letter

Part 12-Module 01-Lesson 01_Find Web APIs for Your Final App

Part 13-Module 01-Lesson 01_Debugging, Printing, and Logging

Part 13-Module 01-Lesson 02_Stepping Through Code

Part 13-Module 01-Lesson 03_LLDB and Breakpoint Actions

Part 13-Module 01-Lesson 04_Breakpoints and Visual Tools

Part 14-Module 01-Lesson 01_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.

Part 14-Module 01-Lesson 02_iOS File System and Sandboxing

Part 14-Module 01-Lesson 03_Introducing Core Data

Part 14-Module 01-Lesson 04_The Core Data Stack

Part 14-Module 01-Lesson 05_Simpler Code with Core Data

Part 14-Module 01-Lesson 06_Rounding Out Core Data

Part 14-Module 02-Lesson 01_Optional Elective Firebase in a Weekend – Saturday

Part 14-Module 02-Lesson 02_Optional Elective Firebase in a Weekend – Sunday

Part 14-Module 02-Lesson 03_Optional Elective Firebase in a Weekend – Monday

Part 14-Module 03-Lesson 01_Virtual Tourist

Part 16-Module 01-Lesson 01_Introduction to Digital Analytics

Part 16-Module 01-Lesson 02_Introduction to Firebase Analytics

Part 16-Module 01-Lesson 03_Implementing In-App Analytics

Part 16-Module 01-Lesson 04_Analytics Integration

Part 17-Module 01-Lesson 01_Research

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.

Part 17-Module 01-Lesson 02_Build

Part 17-Module 01-Lesson 03_Reflect

Part 17-Module 02-Lesson 01_You Decide!

Part 18-Module 01-Lesson 01_Ace Your Interview

Part 18-Module 01-Lesson 02_Practice Behavioral Questions

Part 18-Module 01-Lesson 03_Interview Fails

Part 18-Module 01-Lesson 04_Land a Job Offer

Part 18-Module 01-Lesson 05_Interview Practice (iOS)

Part 19-Module 01-Lesson 01_Objective-C vs. Swift

Part 19-Module 01-Lesson 02_Writing Classes in Objective-C

Part 19-Module 01-Lesson 03_Methods and Messages in Objective-C

Part 19-Module 01-Lesson 04_Porting from Objective-C to Swift (Part 1)

Part 19-Module 01-Lesson 05_Porting from Objective-C to Swift (Part 2)

Part 19-Module 01-Lesson 06_Common Interop Challenges

Part 19-Module 02-Lesson 01_Interoperability Problem Set

Part 20-Module 01-Lesson 01_Principles of Software Design

Part 20-Module 01-Lesson 02_Creational Design Patterns

Part 20-Module 01-Lesson 03_Structural Design Patterns

Part 20-Module 01-Lesson 04_Behavioral Design Patterns

Part 20-Module 01-Lesson 05_Software Anti-Patterns

Part 21-Module 01-Lesson 01_Please Read Before Taking this Course

Part 21-Module 01-Lesson 02_Introduction and Efficiency

Part 21-Module 01-Lesson 03_List-Based Collections

Part 21-Module 01-Lesson 04_Searching and Sorting

Part 21-Module 01-Lesson 05_Maps and Hashing

Part 21-Module 01-Lesson 06_Trees

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.