Networking and Security in iOS Applications

Networking and Security in iOS Applications

University of California, Irvine

About this course: You will learn to extend your knowledge of making iOS apps so that they can securely interact with web services and receive push notifications. You'll learn how to store data securely on a device using Core Data. You’ll also learn to securely deploy apps to the App Store and beta users over-the-air.
The format of the course is through a series of code tutorials. We will walk you through the creation of several apps that you can keep as a personal app toolbox. When you make your own apps after this course, you can bring in these capabilities as needed. When necessary we pop out of the code tutorials to talk about concepts at a higher level so that what you are programming makes sense.
Upon completing this course, you will be able to:
1. Post Facebook, Twitter, Sina Weibo, Tencent Weibo messages to social media using single sign-on on behalf of a user.
2. Use OAuth 2.0 to securely authenticate to Instagram and retrieve photos on behalf of a user
3. JSON
4. Describe JSON’s syntax
5. Write well-formed JSON
6. Work with JSON data objects in Objective-C
7. Appropriately set the security settings for App Transport Security in iOS 9.0
8. Use http, https and https with perfect forward secrecy to fetch web resources
9. Obtain permissions to receive local push notifications
11. Write an app that can send and receive local push notifications
12. Obtain permissions to receive remote push notifications
13. Write an app that can receive remote push notifications
14. Authenticate using Apple’s cryptographic services such that the developer can use 3rd party infrastructure to send remote push notifications to their app.
15. Securely store data on the user’s device.
16. Authenticate using Apple’s cryptographic services such that they can deploy an app to the app store

Welcome to this course on Networking and Security in iOS Applications. Our focus in this course is very practitioner oriented. We want to get you up and running using social networking integration with single sign-on, basic OAuth2 functionality, secure JSON web APIs, cryptographically secured push notifications, and secure data storage so that you can get apps into the iTunes ecosystem and out into the marketplace. This course will have several code sessions in which we walk you through the process of building apps, some of which you will also build for peer review assignments. Interspersed with the tutorials we will take time-outs to cover the basics of some concepts that might be mysterious without a more formal treatment. Our hope is that you come out of this course knowing more (of course!) and having several projects that you can refer to in the future when you want to incorporate these techniques into your apps - your personal app toolbox. The intensity picks up from the previous course in this Specialization, so get ready!

15 videos, 6 readings

Reading: Course Overview

Video: Welcome!

Reading: Pre-Course Survey

Reading: Getting Help

Reading: Twitter App Orientation

Video: Twitter App: Setting up the User Interface

Video: Twitter App: Connecting the U/I

Video: Twitter App: Styling the U/I via ".layer"

Video: Twitter App: Social.Framework and building a UIAlertController

Video: Twitter App: Closing a window with UIAlertAction

Video: Twitter App: Checking for "Single Sign On"

Video: A general pattern for pop-up alerts

Video: Twitter App: Tweet with SLComposeViewController

Video: Twitter App: Reviewing what we accomplished

Reading: Facebook Orientation

Video: Facebook: Adding an additional UIAlertAction

Video: Facebook: Using SLComposeViewController to Post

Reading: Future proofing

Video: Future Proofing with the UIActivityViewController

Video: Simplifying the Interface - Less Clicks!

Video: Peer-Review 01: Your turn!

Graded: Social Networking App

WEEK 2

Using Secure Web APIs: an Instagram Case Study

Now it's time to consider what we are going to do if we want to work with web services that aren't deeply integrated into iOS. There are hundreds (thousands?!?!) of them. Most of them require authentication via the OAuth 2.0 protocol. In this week's lessons we will walk through an example of getting a photo from Instagram on behalf of a user. This week is also a code tutorial in preparation for your peer review assignment, but in the middle we need to step back from coding to cover some basics: How do we use a UIImageView? What is OAuth 2.0 anyway? What is JSON and how do we read it? What's the big deal about http vs https anyway?

12 videos, 1 reading

Video: Overview of Instagram App

Video: Building the project with Cocoapods

Video: Intro to UIImageView

Video: Laying out the Interface

Video: OAuth 2.0

Video: Accessing a web service API

Video: JSON

Video: Custom URL Schemes

Video: NSAppTransport in iOS 9

Video: Network Security Considerations

Video: Getting data with NSURLSession

Video: Calling and Parsing API JSON data

Reading: Two Updates on the Instagram API

Graded: 02 Instagram Network API App

WEEK 3

Don't be so pushy!

In this week we will look at several aspects of push notifications. Those are those alerts that show up at the top of your iOS interface when an app wants to get your attention. There are several ways that they can be initiated. They can be initiated from an app on a local device, or they can be initiated by a remote server somewhere on the internet. Obtaining permission to post those notifications requires lots of steps, certificates, passwords etc. We'll walk you through it all. This week we start with a high-level overview of the iOS app lifecycle. Then we will do three code tutorials. The first will be the one that you will need to do the peer-review assessment. It's a basic countdown timer that sends a notification at a specific time. The second will show you how to make it all fancy with custom actions. The final one will be for remote notifications. Since remote notifications require an Apple developer account ($$$) we won't assess you on it, but if you have one you can try it out on your own and add it to your personal app toolbox.

11 videos, 1 reading

Video: App Lifecycle

Video: Push notifications: local Part 1

Video: Push notifications: local Part 2

Video: Push notifications: actions

Reading: Remote Push Notification Has Changed

Video: Push notifications: remote Part 01

Video: Push notifications: remote Part 02

Video: Push notifications: remote Part 03

Video: Push notifications: remote Part 04

Video: Push notifications: remote Part 05

Video: Push notifications: remote Part 06

Video: Intro to Peer Review Assignment 03

Graded: 03 Push Notification Alarm

WEEK 4

Storing Data

In this week we look at method of securely storing data on the iOS platform called Core Data.

9 videos, 1 reading

Video: Core Data: Introduction

Video: Core Data: Setting Up Your Project

Video: Core Data: Building the Model

Video: Core Data: Wiring the UI to CoreData

Reading: The Full Core Data Example

Video: Enrichment: The Full Core Data Example 1

Video: Enrichment: The Full Core Data Example 2

Video: Peer Review 04 Instructions: Storing Data App

Video: Deploying to the App Store

Video: App Store Analytics

Graded: 04 Secure Data Storage App

Graded: Final Exam

FAQs

How It Works

Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material,
and get help mastering concepts.

Certificates

Earn official recognition for your work, and share your success with friends,
colleagues, and employers.

Creators

University of California, Irvine

Since 1965, the University of California, Irvine has combined the strengths of a major research university with the bounty of an incomparable Southern California location. UCI’s unyielding commitment to rigorous academics, cutting-edge research, and leadership and character development makes the campus a driving force for innovation and discovery that serves our local, national and global communities in many ways.

Pricing

Audit

Purchase Course

Access to course materials

Available

Available

Access to graded materials

-

Not available

Available

Receive a final grade

-

Not available

Available

Earn a shareable Course Certificate

-

Not available

Available

Ratings and Reviews

Rated 4.6 out of 5 of 217 ratings

Great Class. Material needs to be updated according to new social media restrictions, however.

Professor Patterson guides you through all the basics of Networking in iOS. The content is well structured and easy to understand. I highly recommend taking this course if you want to know how to use web services to fetch data and use core data for persistent storage.

Very detailed course that contains lots of practice. Some information is changed for the current versions iOS and XCode, but despite this I like the course! Thank you.

KM

Overall, a good solid course. There are some difficult times when the video lectures do not respond well with newer versions of Xcode. It takes some extra effort to find things in Xcode8 vs 5. I relied heavily on the course website, Discourse. Great information about the next stages of iOS app building.