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.
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.
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.
Introduction to Swift and Xcode, taking the first steps in becoming an iOS developer.
Learn Storyboard, AutoLayout, UIButtons and UILabels. Start developing the Pitch Perfect App and creating the user interface.
View Controllers, View Controller Lifecycle, and Multiple Views. Learn how to react to touch events and change the user interface based on those events.
Introduction to AVAudioRecorder, Delegation, and programatic segues. Setup audio recording in the Pitch Perfect App.
Setup audio playback including rate, pitch, echo, and reverb. Learn about UIStackViews and class extensions.
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.
Rod has worked on many types of software development, from helping architect large scale enterprise applications for IBM’s biggest customers, to mobile development on iOS. Rod is a published author on iOS development, with a focus on 2D physics games. Before joining Udacity he had been teaching iOS for companies in Europe, Brazil, and Asia. In his spare time, Rod enjoys sailing, video games, and spending time with his wife and kids.
View more courses in
iOS
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:
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.
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.
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.
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.
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.
Absolutely! In fact, you were able to as soon as Xcode 6 and iOS 8 launched.
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.
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.
Swift is probably most similar in look and feel to Ruby or Python. Though you’ll also probably recognize some C syntax.
Swift can be run on iOS 7, but not iOS 6.