Become An iOS Developer Nanodegree Program Syllabus: Before You Start
Become An iOS Developer Nanodegree Program Syllabus: Before You Start
Support Options
We are here to support you every step of the way.
The Study Group feature found in the Udacity classroom helps student, like you, connect with their peers,
mentors, and project reviewers. Students can also seek help, network, and collaborate with their classmates
throughout their program!
The Knowledge platform helps students engage with their peers & mentors, ask and answer questions, and
overcome learning roadblocks quickly.
While going through the program if students experience any issues or have questions regarding our product
offerings we encourage them to send us an e-mail at [email protected]
TERM 1
Variables and Types ➔ Declare variables and constant values with basic Swift types like
Bool, Int, Double, and Float
➔ Access and modify values from variables and constants
➔ Debug compiler issues related to the incorrect use of variables
and constants
➔ Use escape characters and string interpolation to format variable
and constant values within strings.
Operators and ➔ Compute new values using existing variables and constants.
expressions ➔ Use comparison operators to determine equality between two
values.
➔ Use boolean operators to build expressions that use truth values.
Control Flow ➔ Write boolean expressions that convey decision making logic
➔ Combine boolean expressions with logical operators
➔ Utilize boolean expressions alongside if, else-if, and else
statements to control the flow of your code's execution.
➔ Use switch statements to run code based on multiple values of a
single variable.
➔ Use for, while, and repeat while loops to control the flow of your
code's execution.
Optionals ➔ Understand when a value can be nil and when to use an optional
type.
➔ Declare variables and constants as explicit or implicitly
unwrapped optionals.
➔ Unwrap optionals both safely and unsafely.
➔ Use optional chaining and the nil coalescing operator to safely
access optional values.
Strings ➔ Define and manipulate Strings using their built-in properties and
methods
➔ Perform common String operations like concatenation and
finding substrings
➔ Perform common String manipulation such as adding, removing,
and replacing substrings.
Object Oriented ➔ Understand the difference between value and reference types,
Programming and how this applies to structs and classes.
➔ Make one class inherit the properties and methods of another
class.
➔ Understand polymorphism - how one type can be substituted for
another type, and how this relates to inheritance.
➔ Write classes that conform to the same protocol.
➔ Add additional functionality to classes using extensions.
AutoLayout and ➔ Use Storyboards, Xcode’s visual editing tool, to position, size, and
Buttons configure user interface objects
➔ Link user interface objects in a Storyboard to their corresponding
controller using IBOutlets
➔ Specify callback functions called IBActions that are invoked as a
result of user interaction
➔ Create AutoLayout constraints to ensure UI elements are sized
and positioned correctly regardless of device size and dimensions
Delegation and ➔ Write protocols to express functionality that can be adopted by
Recording Swift classes
➔ Use protocols to delegate the responsibilities of a particular task
or set of tasks to another object
➔ Create and interface with an AVAudioRecorder to capture and save
audio with an iOS device’s microphone
➔ Use segues to transition between views in an application
Playback and ➔ Create and configure StackViews which contain and automatically
Effects configure layout constraints for its subviews
➔ Playback audio using objects defined in the AVFoundation
framework
➔ Apply audio playback effects using audio nodes exposed by a
custom interface
Outlets and Actions ➔ Understand how to connect outlets and actions using only code
and graphically using storyboard
➔ Use core UIKit classes like UIButton, UILabel and UISwitch.
➔ Practice debugging problems with IBOutlets and IBActions
View Presentations ➔ See how Apple distinguishes between modal presentation and
and Segues navigation.
➔ Learn how to present views modally.
➔ Use powerful UIKit classes like UIImagePickerController,
UIAlertController and UIActivityViewController.
The Delegate ➔ Learn how delegates make important connections between the
Pattern model, view, and controller.
➔ Implement UIKit components that make use of the delegate
pattern, UITextField and UITextFieldDelegate.
➔ Demonstrate your understanding by building a series of challenge
apps.
Navigation ➔ Learn how iOS uses navigation stacks to manage multiple views
in an app.
TERM 2
Making a Network ➔ Express the flow of data from a client to a server when a client
Request makes an HTTP request
➔ Create a network request in Swift and receive and consume a
data response
➔ Switch execution from a background thread to a (main)
foreground thread to avoid blocking an app’s UI
➔ Abide by Apple’s App Transport Security protocol to ensure
user safety when access data over a network
➔ Download and display an image using a simple network request
Using Web Services ➔ Make requests to a web service (API) using documented
and APIs endpoints and parameters
➔ Make a GET request to access data stored on a remote server
➔ Use a web service to download JSON data
➔ Convert raw byte data into JSON-like data that can be
consumed by an app
Problem Set: JSON ➔ Extract values from JSON objects and arrays
Parsing ➔ Access data from a locally defined JSON file
GCD and Queues ➔ Define and utilize queues for grouping related processes
➔ Run code asynchronously using Grand Central Dispatch
➔ Avoid common pitfalls by ensuring the use of the main thread
for situations involving UIKit and CoreData
Simple Persistence ➔ Learn about simple persistence and how to save small pieces of
data.
➔ How to set user preferences, using NSUserDefaults.
➔ Practice setting simple preferences to an existing app.
iOS File System and ➔ Learn about the iOS File System, the “sandbox”.
Sandboxing ➔ See how to access these files using NSFileManager.
➔ Use the file manager to save and read a file.
Introducing Core Data ➔ Meet Core Data, Apple’s framework for managing the data layer.
➔ Explore what a data layer is.
➔ Convert a non-Core Data note-taking app to have a Core Data
model.
The Core Data Stack ➔ Set up the classes we need to get Core Data up and running.
➔ Use the stack to manage model object creation and deletion.
➔ Persist changes so that data stays put when you restart the app or
device.
Simpler Code with ➔ Enable user interfaces to reactively update whenever the model
Core Data changes.
➔ Set up an NSFetchedResultsController to observe data changes
and notify the UI.
➔ Modify a table view to work with a fetched results controller as its
data source.
➔ Turn on caching to reduce how often apps ask the store for data.
Rounding Out Core ➔ Update the data model and safely migrate user data between
Data versions.
➔ Work with multiple managed object contexts for different types of
tasks.
➔ Keep the user interface responsive by sending lengthy tasks to a
background queue.