About This Course
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](https://www.udacity.com/course/nd003).
Why Take This?
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](https://www.udacity.com/course/cs101) and [Programming Foundations with Python](https://www.udacity.com/course/ud036) 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.9 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.)
Take the first step in becoming an iOS Developer by learning about Swift and writing your first app.
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.