iOS Networking with Swift

Web Services, APIs, and JSON


Need help getting started?


Contents


Course Resources

Downloadable Materials

You can download Supplemental Materials, Lesson Videos and Transcripts from Downloadables (bottom right corner of the Classroom) or from the Dashboard (first option on the navigation bar on the left hand side).

Course Syllabus

Lesson 1: Networking and Web Services

In this lesson, you’ll learn all about networks and how they work. You’ll also build your first app that utilizes a web service: “Sleeping in the Library.” This app uses the Flickr API to pull pictures of people sleeping in libraries.

Terms Covered

  • Networking
  • Hypertext Transfer Protocol (HTTP)
  • Uniform Resource Locator (URL)
  • HTTP GET method
  • Web services and APIs

Concepts Covered

  • Identifying web services by the data they expose
  • Registering for a web service (Flickr)
  • Exploring a web service's API (Flickr)
  • Running a web service method from an iOS app

Helpful Resources

Lesson 2: Building “Flick Finder”

In this lesson, you’ll learn how to parse JSON data and display it to a user. You’ll demonstrate these new skills by building the “Flick Finder” app, which displays Flickr images based on a phrase or location.

Terms Covered

  • Javascript Object Notation (JSON)

Concepts Covered

  • Building a networking app step-by-step
  • Constructing and calling web service methods
  • Parsing JSON data from HTTP responses
  • Populating viewa using data from HTTP responses
  • Reading an API's documentation to solve an issue

Helpful Resources

Lesson 3: The MovieDB and Authentication

In this lesson, you’ll learn the difference between user and anonymously accessed data. You’ll do so by building the “My Favorite Movies” app that utilizes the Movie Database API.

Terms Covered

  • Anonymously-accessed and user-accessed data
  • Authentication
  • Authorization
  • HTTP POST method

Concepts Covered

  • Introducing and using a new web service
  • Authenticating against a web service
  • Adding security to web requests using HTTPS
  • Performing HTTP POST request

Helpful Resources

Lesson 4: Improving Networking with MVC

In this lesson, you’ll improve on your “My Favorite Movies” app to build the “Movie Manager” app. For this app, we’ll be sure to use good MVC design, and learn what this means from a networking perspective.

Concepts Covered

  • Designing an API client by identifying the high-level tasks associated with a web service and creating abstractions for them
  • Implementing an authorization flow similiar to OAuth
  • Refactoring networking code using the MVC design approach
  • Extending the functionality of an existing application

Helpful Resources

Lesson 5: Reliability and “On the Map”

In this lesson, you’ll start on your final project app, “On the Map.” You’ll also learn about network reliability, and how your app should behave if a network can’t be reached.

Concepts Covered

  • Demonstrating use of the Network Link Conditioner tool for varying networking performance when testing apps
  • Identifying persistence as a solution for handling networking connectivity problems

Helpful Resources

Extended Topics