Skip to content

iOS Networking with Swift

Free Course

Web Services, APIs, and JSON

Related Nanodegree Program

Introduction to Programming

About this course

In this course, you’ll learn how to incorporate networking into your apps, so they can access data from around the world. You’ll learn how to harness the power of APIs to display images and retrieve movie data. At the end of the course, you’ll build the "On the Map" app which allows you to share interesting links, projects, or other information with fellow Udacity students.

What you will learn

  1. Making a Network Request
    • Learn the basics of the web and using web services.
    • Experiment making requests and seeing their responses.
    • Make a simple request to download an image using a URL.
  2. Using Web Services and APIs
    • Learn how to parse JSON data and display it to a user.
    • Build your first app that utilizes a web service: “Sleeping in the Library.”
    • Learn how to use the Flickr API to download pictures from a gallery.
  3. Chaining Asynchronous Requests
    • Use closures to chain multiple web requests together.
    • Demonstrate these new skills by building the “Flick Finder” app.
    • Use the Flickr API to search for images based on a search string or location.
  4. Authenticating Requests
    • Learn the difference between user and anonymously accessed data.
    • Build the “My Favorite Movies” app that utilizes the Movie Database API.
    • Securely access data using HTTPS and tokens.
  5. Improving Networking with MVC
    • Improve on your “My Favorite Movies” app to build the “Movie Manager” app.
    • Use good MVC design, and learn what this means from a networking perspective.
    • Reduce code duplication and refactor code for more simple network requests.
  6. Preparing for "On the Map"
    • Start on your final project app, “On the Map.”
    • Learn about network reliability.
    • How your app should behave if a network cannot be reached.

Prerequisites and requirements

This course assumes prior iOS experience. Specifically, you’ve built several apps, know how to use core iOS libraries, and are familiar with MVC design principles. Introduction to iOS App Development with Swift and UIKit Fundamentals are good courses to take if you need to familiarize yourself with these concepts.

The course also assumes basic familiarity with Git. Specifically, you will need to be able to clone Git repositories and checkout branches specific to each lesson. How to Use Git & GitHub is a great option if you need to brush up on these skills.

You will need access to a Mac computer running OS X 10.10 or later. However, you do not need an iPad or iPhone to complete the activities. All exercises can be completed using the iOS simulator built into Xcode.

See the Technology Requirements for using Udacity.

Why take this course?

Without networking, mobile apps can only perceive, process, and present the data that is local to the host device. This greatly restricts the scope of problems which apps can solve and limits their overall utility. By incorporating networking, apps truly become "mobile" -- they can interact with interesting data using popular web services, coordinate multi-user activities, and build experiences that bring users together.

This course will cover concepts fundamental to communication over the network like HTTP, JSON, and authentication. These concepts are also highly transferrable to other platforms, languages, and applications. Additionally, it will mold your understanding of app design, especially when networking constraints are involved.

Learn with the best.

  • Jarrod Parkes
    Jarrod Parkes

    Instructor