Intermediate

Approx. {{courseState.expectedDuration}} {{courseState.expectedDurationUnit}}

Assumes 6hr/wk (work at your own pace)

Join {{1587 | number:0}} Students
view course trailer
View Trailer

Course Summary

Important: This course is for students enrolled in a Nanodegree. If you are not currently enrolled in a Nanodegree, please access the course content here: Intro to iOS App Development with Swift.

In this course we will build an iPhone app that records a conversation between you and a friend, and then makes your voices sound like a Chipmunk or Darth Vader.

This course will introduce you to iOS app development in Swift, a new programming language from Apple, and serves as your launching point into the iOS Developer Nanodegree.

Why Take This Course?

This course will set you on your way to becoming an iOS Developer, where you’ll establish a basic understanding of the iOS ecosystem. You’ll also have working knowledge of Swift, Apple’s custom programming language created exclusively for the mobile developer.

Prerequisites and Requirements

This course assumes prior programming experience. Specifically, you should have a strong understanding of programming concepts like variables, if statements, loops, functions, and classes. Lesson 1 of Intro to Computer Science and Programming Foundations with Python are good courses to take if you are completely new to programming.

You will also need access to a Mac computer running OS X 10.10 or later.

We have designed this course such that you will not need a physical device (i.e. an iPhone or an iPad) to build your app. We will be using a simulator on your mac that will imitate the features of a phone on your computer. Towards the end of the course we will provide instructions on how to download your app on an iPhone (in case you do have access to a physical device.)

See the Technology Requirements for using Udacity.

What Will I Learn?

Syllabus

Lesson 1: Introduction and Xcode

Introduction to Swift and Xcode, taking the first steps in becoming an iOS developer.

Lesson 2: AutoLayout and Buttons

Learn Storyboard, AutoLayout, UIButtons and UILabels. Start developing the Pitch Perfect App and creating the user interface.

Lesson 3: ViewController & Multiple Views

View Controllers, View Controller Lifecycle, and Multiple Views. Learn how to react to touch events and change the user interface based on those events.

Lesson 4: Delegation and Recording

Introduction to AVAudioRecorder, Delegation, and programatic segues. Setup audio recording in the Pitch Perfect App.

Lesson 5: Playback and Effects

Setup audio playback including rate, pitch, echo, and reverb. Learn about UIStackViews and class extensions.

Final App Submission (1 hour)

In this final lesson, you will ensure that your app works according to a rubric we have designed, and will also have an opportunity to add new features to your app. We will also share with you a Code Review document that contains suggestions from an external reviewer on how to improve your code. We will request that you implement those suggestions to enhance your code and make it ready for the app store. Finally, to complete the course, you will submit your app to a Udacity coach for a thorough evaluation of your work.

Instructors & Partners

Frequently Asked Questions


Before course development started, we asked you what questions you had about Apple's Swift language. Here are the answers to your most burning questions:

Why is the language called Swift?

The language was designed with two goals in mind: to be (1) swift to code, and (2) swift to execute. In terms of speed, Swift compiles Swift code to optimized native code depending on target device. In terms of learning curve, the Swift syntax was designed to be clean and easy to read.

Should I learn Swift or Objective-C?

Swift! Apple has made it clear that Swift is the cornerstone of the future of iOS development. Plus, you can still utilize Objective-C files alongside Swift code, so you won’t miss out on any pre-existing libraries and code.

How easy is Swift to learn?

Swift was designed to be friendly for new programmers, and as a result it is incredibly easy to learn. According to Apple, Swift is the “first industrial-quality systems programming language that is as expressive and enjoyable as a scripting language.” Some have even called Swift the new BASIC.

Is it fast?

Apple boasts that Swift is up to 2.6x faster than Objective-C and 8.4x faster than Python 2.7. And why should you care about how quickly code executes? Well, faster running code makes for more efficient and smoother running apps, which makes for a better experience for your user.

Why did Apple decide to create a new language?

Objective-C has been Apple’s primary programming language for app writing since OS X was created. In that time, programming languages and practices changed drastically, especially in mobile development. Rather than adopt a new, already existing language, Apple created a new language tailored specifically for development on their own hardware.

Can I create an app in Swift and submit it to the App Store?

Absolutely! In fact, you were able to as soon as Xcode 6 and iOS 8 launched.

Why was there a need to go from Objective-C to Swift?

As mentioned in the answer to question five, after 20 years, Objective-C was starting to show it’s age. Plus, Objective-C is a difficult language for new programmers to learn, so the barrier to entry is pretty high. Swift provides a modern language tailor-made for Apple hardware.

How Stable is Swift?

As with any new language, there is a potential for bugs. While you may encounter some trouble with the Swift language, the majority of issues were addressed before the 1.0 release.

The thing to most look out for is changes to the Swift language during each update. For example, when updating from 1.0 to 1.1, Apple introduced a new feature: failable initializers. You can expect that the language will change as more people use it and give feedback to Apple. Stay apprised of changes using the revision history for The Swift Programming Language.

What other languages is it similar to?

Swift is probably most similar in look and feel to Ruby or Python. Though you’ll also probably recognize some C syntax.

Is it compatible with iOS 6 & 7?

Swift can be run on iOS 7, but not iOS 6.