iOS Networking with Swift
iOS Networking with Swift
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.
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.
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.
What Will I Learn?
On the Map
By incorporating networking, apps truly become “mobile” -- interacting with interesting data using popular web services. In this project, you’ll build your first networked app that displays information posted by other Udacity students. You’ll create a map view with pins representing student locations, and by tapping a pin, the app will display a custom URL posted by a student.
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.
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.
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.
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.
Lesson 5: Preparing for “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.