We may earn an affiliate commission when you visit our partners.
Course image
Don Patterson and Sam Kaufman

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.

Read more

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

Enroll now

What's inside

Syllabus

Welcome!
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!
Read more
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?
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.
Storing Data
In this week we look at method of securely storing data on the iOS platform called Core Data.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops professional skills in building secure web services and data storage for iOS applications
Builds a strong foundation in iOS networking and security principles
Taught by recognized experts in iOS development, Don Patterson and Sam Kaufman
Requires learners to come in with extensive background knowledge in iOS development

Save this course

Save Networking and Security in iOS Applications to your list so you can find it easily later:
Save

Reviews summary

Ios networking and security

Learners say this course is excellent and the practical assignments are a highlight.
Course assignments are engaging and practical.
"Excellent course, good assignments with real world practical usage."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Networking and Security in iOS Applications with these activities:
Review Objective-C Basics
Strengthen your foundation by revisiting Objective-C concepts to ensure a solid understanding before diving into the course material.
Browse courses on iOS App Development
Show steps
  • Review the basic syntax and structure of Objective-C.
  • Go through examples of classes, objects, and methods.
Review Core Data Basics
Refresh your knowledge of Core Data's key concepts and functionalities to enhance your understanding of data management in iOS apps.
Browse courses on iOS App Development
Show steps
  • Review the fundamentals of Core Data, including its data model and object management.
  • Refresh your understanding of Core Data's persistence mechanisms.
Compile iOS App Development Resources
Help yourself and others by gathering and organizing valuable iOS app development resources, tools, and tutorials.
Browse courses on iOS App Development
Show steps
  • Search for online resources, articles, and tutorials related to iOS app development.
  • Organize and categorize the resources based on their topics.
  • Create a document, website, or online forum to share the compilation with others.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Practice OAuth 2.0 Authorization
Strengthen your grasp of OAuth 2.0 by completing practice drills and exercises.
Browse courses on OAuth 2.0
Show steps
  • Review the OAuth 2.0 concepts covered in the course.
  • Find practice questions or exercises online.
  • Go through the drills and practice implementing OAuth 2.0 authorization flows.
Follow iOS App Tutorials
Enhance your understanding of iOS app development by following tutorials and building sample apps.
Show steps
  • Identify a topic you want to learn more about in the course.
  • Search for tutorials on that topic.
  • Follow the tutorial step-by-step.
  • Build the sample app and experiment with the code.
Review Each Other's Social Media Login Feature
Enhance your learning by collaborating with peers and providing feedback on implemented social media login features.
Browse courses on iOS App Development
Show steps
  • Pair up with a classmate.
  • Share your social media login feature implementation with your partner.
  • Review and provide constructive feedback on the code and design.
Build a Social Media Login Feature
Demonstrate your understanding by building a functional social media login feature for an iOS app.
Browse courses on iOS App Development
Show steps
  • Design the user interface for the login feature.
  • Implement the OAuth 2.0 authentication flow using the relevant APIs.
  • Handle user data and permissions.
  • Test the login feature thoroughly.
Create a Secure Data Storage App
Apply your knowledge by developing a comprehensive iOS app that securely stores user data using Core Data.
Browse courses on iOS App Development
Show steps
  • Plan the data model for the app.
  • Implement Core Data to store and manage user data.
  • Design and implement security measures to protect the stored data.
  • Test the app thoroughly to ensure data integrity and security.

Career center

Learners who complete Networking and Security in iOS Applications will develop knowledge and skills that may be useful to these careers:
Network Security Architect
A Network Security Architect designs, develops, and manages security measures to protect an organization's computer networks and systems. This course may be useful for Network Security Architects because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for designing and implementing secure network systems.
Security Analyst
A Security Analyst plans, implements, and manages security measures to protect an organization's computer networks and systems. This course may be useful for Security Analysts because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for understanding and defending against security threats.
Mobile Developer
A Mobile Developer designs, develops, and maintains mobile applications. This course may be useful for Mobile Developers because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for developing secure mobile applications.
Information Security Manager
An Information Security Manager plans, implements, and manages security measures to protect an organization's information assets. This course may be useful for Information Security Managers because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for understanding and managing information security risks.
Cybersecurity Consultant
A Cybersecurity Consultant provides advice and guidance to organizations on how to protect their computer networks and systems from security threats. This course may be useful for Cybersecurity Consultants because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for understanding and mitigating security risks.
Software Engineer
A Software Engineer designs, develops, and maintains software applications. This course may be useful for Software Engineers because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for developing secure software applications.
Web Developer
A Web Developer designs, develops, and maintains websites and web applications. This course may be useful for Web Developers because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for developing secure web applications.
IT Auditor
An IT Auditor reviews and assesses an organization's information systems and security controls to ensure compliance with regulations and standards. This course may be useful for IT Auditors because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for understanding and auditing information systems.
IT Manager
An IT Manager plans, implements, and manages an organization's information technology systems and services. This course may be useful for IT Managers because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for managing and securing information technology systems.
Security Engineer
A Security Engineer designs, develops, and manages security measures to protect an organization's computer networks and systems. This course may be useful for Security Engineers because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for designing and implementing secure systems.
Network Engineer
A Network Engineer designs, deploys, and maintains computer networks. This course may be useful for Network Engineers because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for designing and managing secure networks.
Data Scientist
A Data Scientist analyzes data to extract insights and make predictions. This course may be useful for Data Scientists because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for understanding and securing data.
Business Analyst
A Business Analyst analyzes business processes and systems to identify opportunities for improvement. This course may be useful for Business Analysts because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for understanding and improving business processes.
Systems Analyst
A Systems Analyst analyzes and designs computer systems. This course may be useful for Systems Analysts because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for designing and implementing secure systems.
Project Manager
A Project Manager plans, executes, and closes projects to achieve specific goals. This course may be useful for Project Managers because it provides a foundation in networking and security concepts. The course also covers topics such as secure web APIs, OAuth 2.0, JSON, and push notifications, which are all important for managing and securing projects.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Networking and Security in iOS Applications.
Provides a comprehensive overview of iOS security in depth. It is particularly useful for those who want to learn more about the security risks associated with iOS development and how to mitigate them.
Provides a comprehensive overview of cryptography and network security, with a focus on principles and practice. It is particularly useful for those who want to learn more about the mathematical foundations of cryptography and how to use cryptographic techniques to secure networks.
Provides a comprehensive overview of security engineering, with a focus on building dependable distributed systems. It is particularly useful for those who want to learn more about the principles and practices of secure software development.
Provides a comprehensive overview of iOS application security. It is particularly useful for those who want to learn more about the security risks associated with iOS development and how to mitigate them.
Provides a comprehensive overview of web application security, with a focus on finding and exploiting security flaws. It is particularly useful for those who want to learn more about the security risks associated with web applications and how to mitigate them.
Provides a comprehensive overview of network security, with a focus on applications and standards. It is particularly useful for those who want to learn more about the security risks associated with networking and how to mitigate them.
Provides a comprehensive overview of software security testing, with a focus on web applications. It is particularly useful for those who want to learn more about how to identify and fix security vulnerabilities in their own applications.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Networking and Security in iOS Applications.
Ionic - Build iOS, Android & Web Apps with Ionic & Angular
Most relevant
Building Mobile Apps with React Native
Most relevant
React Native Fundamentals
React Native - The Practical Guide [2024]
Building Android Apps with Kotlin: Getting Started
Preparing Docker Apps for Production
Progressive Web App Fundamentals
Progressive Web Apps (PWA) - The Complete Guide
Use Commands and Create a Remote Git Repository
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser