0% found this document useful (0 votes)
333 views18 pages

iOS Developer: Nanodegree Program Syllabus

This document outlines the syllabus for a Nanodegree program to become an iOS developer. The 6-month program is self-paced and teaches the Swift programming language, Xcode, and iOS app development. Students will learn to declare variables, control program flow, define functions and classes, work with collections and optionals, and develop their first iOS apps. The capstone project involves building a voice recording app. The prerequisites are a desire to learn - no prior experience is required. Students receive coaching from professional iOS developers and have their code reviewed throughout the program.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
333 views18 pages

iOS Developer: Nanodegree Program Syllabus

This document outlines the syllabus for a Nanodegree program to become an iOS developer. The 6-month program is self-paced and teaches the Swift programming language, Xcode, and iOS app development. Students will learn to declare variables, control program flow, define functions and classes, work with collections and optionals, and develop their first iOS apps. The capstone project involves building a voice recording app. The prerequisites are a desire to learn - no prior experience is required. Students receive coaching from professional iOS developers and have their code reviewed throughout the program.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

NANODEGREE PROGR AM SYLL ABUS

iOS Developer

Need Help? Speak with an Advisor: www.udacity.com/advisor


Overview
The journey to becoming an iOS developer begins in your imagination—that moment when you first dream
up a great idea for an app. This Nanodegree program will prepare you to publish your first iOS app, whether
you’re already programming or just beginning. As you master the Swift programming language and create a
portfolio of apps to showcase your skills, you’ll benefit from detailed code reviews, valuable career advice,
and coaching from professional iOS developers.

You will start by learning the basics of iOS app development using the Swift programming language and
Xcode, Apple’s development environment. You’ll develop your first iOS apps using layouts, views, UIKit,
and more. Then, you’ll progress to build more complex and advanced applications, using networking, and
Apple’s Grand Central Dispatch and Core Data, and will be ready to publish your capstone project to the App
Store.

Estimated Time: Prerequisites:


6 Months at No experience
10 hours / week required

Flexible Learning: Need Help?


Self-paced, so udacity.com/advisor
you can learn on Discuss this program
the schedule that with an enrollment
works best for you advisor.

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 2


Course 1: Learn Swift Programming
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.

LEARNING OUTCOMES

• Declare variables and constant values with basic Swift


types like Bool, Int, Double, and Float
• Access and modify values from variables and constants
LESSON ONE Variables and Types • 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.

• Compute new values using existing variables and


constants.
Operators and • Use comparison operators to determine equality between
LESSON TWO
expressions two values.
• Use boolean operators to build expressions that use truth
values.

• Write boolean expressions that convey decision making


logic.
• Combine boolean expressions with logical operators.
• Utilize boolean expressions alongside if, else-if, and else
LESSON THREE Control Flow 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.

• Encapsulating existing code into reusable functions.


• Properly define and call functions.
• Specify function parameters and return types.
LESSON FOUR Functions • Differentiate between values that are in-scope and out-of-
scope.
• Correctly use local and external parameters.
• Identify parameter types and return types.

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 3


• Group multiple values together into structs.
• Create instances of structs.
• Add functions (known as methods) to structs.
Structures and • Access properties and call methods of structs.
LESSON FIVE
Enum • Define computed properties that calculate their value
based on other values..
• Define enums and assign raw values to different cases.
• Use enums in conjunction with switch statements.

• Understand when a value can be nil and when to use an


optional type.
• Declare variables and constants as explicit or implicitly
LESSON SIX Optionals unwrapped optionals.
• Unwrap optionals both safely and unsafely.
• Use optional chaining and the nil coalescing operator to
safely access optional values.

• Define and manipulate Strings using their built-in


properties and methods
• Perform common String operations like concatenation and
LESSON SEVEN Strings
finding substrings.
• Perform common String manipulation such as adding,
removing, and replacing substrings.

• Store unordered data of the same type using arrays.


• Access and modify array contents.
LESSON EIGHT Collections • Store pairs of keys and values using dictionaries.
• Access and modify dictionary contents.
• Store unordered data of the same type using sets.

• Understand the difference between value and reference


types, and how this applies to structs and classes.
• Make one class inherit the properties and methods of
another class.
Object Oriented
LESSON NINE • Understand polymorphism - how one type can be
Programming
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.

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 4


Course 2: Intro to iOS App Development with
Swift
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.

You will create an iPhone app that records audio and plays it back
Course Project using various audio filters and modes including adjusted rate and
Pitch Perfect pitch, echo, and reverb.

LEARNING OUTCOMES

• Navigate the major components of the Xcode development


environment including the Navigator, Debug Area, and Utilities
Introduction and
LESSON ONE • Create an Xcode project for a new iOS application
Xcode
• Express the goals and architecture of the Model View
Controller (MVC) design pattern

• Use Storyboards, Xcode’s visual editing tool, to position, size,


and configure user interface objects.
• Link user interface objects in a Storyboard to their
corresponding controller using IBOutlets.
AutoLayout and
LESSON TWO • Specify callback functions called IBActions that are invoked as a
Buttons
result of user interaction
• Create AutoLayout constraints to ensure UI elements are sized
and positioned correctly regardless of device size and
dimensions

• Configure application state at the appropriate customizations


points in a view’s lifecycle
ViewController and • Create and navigate multiple-view applications using a
LESSON THREE
Multiple Views UINavigationController
• Manipulate user interface objects by utilizing IBOutlets and
IBActions

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 5


• Write protocols to express functionality that can be adopted by
Swift classes.
• Use protocols to delegate the responsibilities of a particular
Delegation and
LESSON FOUR task or set of tasks to another object.
Recording
• 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

• Create and configure StackViews which contain and


automatically configure layout constraints for its subviews
Playback and • Playback audio using objects defined in the AVFoundation
LESSON FIVE
Effects framework
• Apply audio playback effects using audio nodes exposed by a
custom interface

• Version Control with Git.


LESSON SIX Suggested Electives
• GitHub & Collaboration.

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 6


Course 3: UIKit Fundamentals
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.

You will create a first version of the MemeMe app that enables a
Course Project
user to take a picture, and add text at the top and bottom to form
MemeMe 1.0: The Meme a meme. The user will be able to share the photo on Facebook and
Editor Twitter and also by SMS or email.

You will create an app that enables a user to take a picture, and add
Course Project text at the top and bottom to form a meme. The user will be able to
MemeMe 2.0: The Final share the photo on Facebook and Twitter and also by SMS or email.
Product Memes will appear in a tab view with two tabs: a table view and a
collection view.

LEARNING OUTCOMES

• Understand how to connect outlets and actions using only


code and graphically using storyboard.
LESSON ONE Outlets and Actions
• Use core UIKit classes like UIButton, UILabel and UISwitch.
• Practice debugging problems with IBOutlets and IBActions.

• See how Apple distinguishes between modal presentation


and
View Presentations navigation.
LESSON TWO
and Segues • Learn how to present views modally.
• Use powerful UIKit classes like UIImagePickerController,
UIAlertController and UIActivityViewController.

• Learn how delegates make important connections between


the model, view, and controller
• Implement UIKit components that make use of the delegate
LESSON THREE The Delegate Pattern
pattern, UITextField and UITextFieldDelegate
• Demonstrate your understanding by building a series of
challenge apps.

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 7


• Learn the essential UITableViewDelegate and
UITableViewDatasource methods.
LESSON FOUR Table Views • Explore the code for several apps with tables, and then
implement your own UITableView.
• Practice manipulating table cells

• Learn how iOS uses navigation stacks to manage multiple


views in an app.
• Create the navigation that enables a user to tap a row of a
LESSON FIVE Navigation
table and view the details of an item.
• Learn navigation classes like UINavigationControll and
UIBarButtonItem.

LESSON SIX Suggested Electives • AutoLayout

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 8


Course 4: Network Requests and GCD
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.

You will create an app with a map that shows information posted
by other students. The map will contain pins that show the location
Course Project where other students have reported studying. By tapping on the pin
On the Map users can see a URL for something the student finds interesting. The
user will be able to add their own data by posting a string that can
be reverse geocoded to a location, and a URL.

LEARNING OUTCOMES

• Express the flow of data from a client to a server when a


client makes an HTTP request.
• Create a network request in Swift and receive and consume
a data response.
Making a Network • Switch execution from a background thread to a (main)
LESSON ONE
Request 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

• Make requests to a web service (API) using documented


endpoints and parameters.
• Make a GET request to access data stored on a remote
Using Web Services and
LESSON TWO server.
APIs
• 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
LESSON THREE
Parsing • Access data from a locally defined JSON file

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 9


Chaining Asynchronous • Perform multiple network requests in sequence using
LESSON FOUR
Requests callbacks and closures.

• Perform an authorization flow that mimics OAuth.


• Authenticate a network request using tokens.
Authenticating
LESSON FIVE • Secure network requests by ensuring the use of HTTPS
Requests
• Make a HTTP POST request to modify data stored by a
remote server

• Refactor an existing application to separate network


functionality into its correct role within the MVC design
Improving Networking
LESSON SIX pattern.
with MVC
• Create a usable interface that controllers can use to make
network requests

• Create closures by assigning functions to a constant or


variable
• Specify closure (function) types for use as values and
LESSON SEVEN Closures Reloaded parameters
• Define functions which accept closure parameters
• Use type aliasing to simplify the use of complex types
• Define and use functions within functions

• Define and utilize queues for grouping related processes


• Run code asynchronously using Grand Central Dispatch
LESSON EIGHT GCD and Queues
• Avoid common pitfalls by ensuring the use of the main
thread for situations involving UIKit and CoreData

• Download large files from the network synchronously.


Backgrounding
• Download large files from the network asynchronously.
LESSON NINE Lengthy
• Use completion handlers to update the user interface after
Tasks
a network request.

LESSON TEN Suggested Electives • iOS Debugging

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 10


Course 5: Data 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.

You will create an app that downloads and stores images from
Flickr. The app will allow users to drop pins on a map, as if they were
Course Project
stops on a tour. Users will then be able to download pictures for the
Virtual Tourist location and persist both the pictures, and the association of the
pictures with the pin.

LEARNING OUTCOMES

• Learn about simple persistence and how to save small


pieces of data.
LESSON ONE Simple Persistence
• How to set user preferences, using NSUserDefaults.
• Practice setting simple preferences to an existing app.

• Learn about the iOS File System, the “sandbox”


iOS File System and
LESSON TWO • See how to access these files using NSFileManager.
Sandboxing
• Use the file manager to save and read a file.

• Meet Core Data, Apple’s framework for managing the data


layer.
LESSON THREE Introducing Core Data • Explore what a data layer is.
• Convert a non-Core Data note-taking app to have a Core
Data model.

• Set up the classes we need to get Core Data up and


running.
• Use the stack to manage model object creation and
LESSON FOUR The Core Data Stack
deletion.
• Persist changes so that data stays put when you restart
the app or device.

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 11


• Enable user interfaces to reactively update whenever the
model changes.
• Set up an NSFetchedResultsController to observe data
Simpler Code with Core changes and notify the UI.
LESSON FIVE
Data • 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.

• Update the data model and safely migrate user data


between versions.
Rounding Out Core • Work with multiple managed object contexts for different
LESSON SIX
Data types of tasks.
• Keep the user interface responsive by sending lengthy
tasks to a background queue.

• Objective-C for Swift Developers


• Project 0-C: Interoperability Problem Set (Optional)
LESSON SEVEN Selective Electives
• Firebase in a Weekend
• Firebase Analytics

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 12


Course 6: Final Project
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.

Course Project This is your chance to let your iOS Developer skills shine! For this
You Decide! (Capstone final project, you’ll design your own iOS app, taking the design from
drawing board to App Store.
Project)

LEARNING OUTCOMES

• Brainstorm app ideas and decide on an app and feature list


that is realistic and exciting.
• Sketch UI storyboards and outline expected app use cases
LESSON ONE Research
and flows.
• Research and experiment with APIs, web services, and
libraries that could be useful for an app idea.

• Adhere to a proven development process to create quality


iPhone and iPad apps.
LESSON TWO Build
• Build an app and collect user feedback.
• Fix crashes and bugs to improve the quality of an app.

• Reflect on development, what has been learned, and what


LESSON THREE Reflect should change for future development.
• Monitor App Store feedback.

• Technical Interview Prep.


LESSON FOUR Selective Electives
• Mobile Design Patterns.

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 13


Our Classroom Experience
REAL-WORLD PROJECTS
Build your skills through industry-relevant projects. Get
personalized feedback from our network of 900+ project
reviewers. Our simple interface makes it easy to submit
your projects as often as you need and receive unlimited
feedback on your work.

KNOWLEDGE
Find answers to your questions with Knowledge, our
proprietary wiki. Search questions asked by other students,
connect with technical mentors, and discover in real-time
how to solve the challenges that you encounter.

STUDENT HUB
Leverage the power of community through a simple, yet
powerful chat interface built within the classroom. Use
Student Hub to connect with your fellow students in your
Executive Program.

WORKSPACES
See your code in action. Check the output and quality of
your code by running them on workspaces that are a part
of our classroom.

QUIZZES
Check your understanding of concepts learned in the
program by answering simple and auto-graded quizzes.
Easily go back to the lessons to brush up on concepts
anytime you get an answer wrong.

CUSTOM STUDY PLANS


Preschedule your study times and save them to your
personal calendar to create a custom study plan. Program
regular reminders to keep track of your progress toward
your goals and completion of your program.

PROGRESS TRACKER
Stay on track to complete your Nanodegree program with
useful milestone reminders.

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 14


Learn with the Best

Jarrod Parkes Gabrielle Miller-Messner


I N S T R U C TO R I N S T R U C TO R
Jarrod is an experienced iOS developer Gabrielle earned her Ph.D. in Population
with a passion for reinventing how Biology from UC Davis, where she
students learn. He holds a BS in Computer discovered the joys of programming while
Science from the University of Alabama. analyzing DNA sequences. She has a
background in teaching, and worked as an
iOS Engineer before joining Udacity.

Kate Rotondo Owen LaRosa


I N S T R U C TO R I N S T R U C TO R
Kate is an iOS developer, speaker, Owen is an iOS and Android app developer,
author, and teacher who has spoken at and is the Student Experience Lead for iOS
conferences across the globe from AltConf programs at Udacity. He graduated from
in San Francisco to Mobile Central Europe the iOS Developer Nanodegree program in
in Poland. She also has hosted a podcast 2015.
on work-life integration for parents in tech.

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 15


All Our Nanodegree Programs Include:

EXPERIENCED PROJECT REVIEWERS


RE VIE WER SERVICES

• Personalized feedback & line by line code reviews


• 1600+ Reviewers with a 4.85/5 average rating
• 3 hour average project review turnaround time
• Unlimited submissions and feedback loops
• Practical tips and industry best practices
• Additional suggested resources to improve

TECHNICAL MENTOR SUPPORT


M E N TO R S H I P S E R V I C E S

• Questions answered quickly by our team of


technical mentors
• 1000+ Mentors with a 4.7/5 average rating
• Support for all your technical questions

PERSONAL CAREER SERVICES


C A R E E R CO A C H I N G

• Personal assistance in your job search


• Monthly 1-on-1 calls
• Personalized feedback and career guidance
• Interview preparation
• Resume services
• Github portfolio review
• LinkedIn profile optimization

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 16


Frequently Asked Questions
PROGR AM OVERVIE W

WHY SHOULD I ENROLL?


This Nanodegree program will prepare you to publish your first iOS app,
whether you’re already a developer or relatively new to programming.

In this program, you’ll not only learn how to build iOS apps, you’ll also learn
best practices in mobile development, and gain mastery of Swift, an open-
sourced object-oriented programming language. Through 6 hands-on,
reviewed projects, you’ll gain the skills you need to become an iOS Developer.

According to the 2017 Stack Overflow Job Trends Report, iOS Developers
are among the Top-3 most in-demand developer positions in the job market.
Enroll in this program today, and start building your future as an iOS
Developer.

HOW DO I KNOW IF THIS PROGRAM IS RIGHT FOR ME?


This program is designed to prepare you for a job as a professional, junior-
level iOS Developer within a wide range of organizations and environments:
from large corporations where you’d likely be part of a development team, to
entrepreneurial start-ups and contract projects where you could be working
independently to deliver an application.

ENROLLMENT AND ADMISSION

DO I NEED TO APPLY? WHAT ARE THE ADMISSION CRITERIA?


No. This Nanodegree program accepts all applicants regardless of experience
and specific background.

WHAT ARE THE PREREQUISITES FOR ENROLLMENT?


In order to succeed in this program, we recommend having the following
experience:

• You are self-driven and motivated to learn. Participation in this program


requires consistently meeting deadlines and devoting at least 10 hours
per week to your work.
• Collaboration with peers and interactive feedback are critical to
the success of the program. You must be a committed and contributing
participant of the community.

Technical Requirements:

• Access to a Mac computer running macOS 10.14.3 or later

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 17


FAQs Continued
IF I DO NOT MEET THE REQUIREMENTS TO ENROLL, WHAT SHOULD I DO?
No programming experience is required, but if you’d like to try the Swift
programming language, you may enjoy our free course, Swift for Beginners.
This Nanodegree program includes coursework on using git and GitHub, but
if you’d like exposure to git and GitHub before enrolling, you may wish to take
our free course, How to Use Git and GitHub.

TUITION AND TERM OF PROGR AM

HOW IS THIS NANODEGREE PROGRAM STRUCTURED?


The iOS Nanodegree program is comprised of content and curriculum to
support six (6)projects. We estimate that students can complete the program
in six (6) months, working 10 hours per week.

Each project will be reviewed by the Udacity reviewer network. Feedback will
be provided and if you do not pass the project, you will be asked to resubmit
the project until it passes

HOW LONG IS THIS NANODEGREE PROGRAM?


Access to this Nanodegree program runs for the length of time specified in
the payment card above. If you do not graduate within that time period, you
will continue learning with month to month payments. See the Terms of Use
and FAQs for other policies regarding the terms of access to our Nanodegree
programs.

CAN I SWITCH MY START DATE? CAN I GET A REFUND?


Please see the Udacity Nanodegree program FAQs for policies on enrollment in
our programs.

S O F T WA R E A N D H A R D WA R E

WHAT SOFTWARE AND VERSIONS WILL I NEED IN THIS PROGRAM?


Access to a Mac computer running macOS 10.14.3 or later

Need Help? Speak with an Advisor: www.udacity.com/advisor iOS Developer | 18

You might also like