iOS Persistence and Core Data
Summary
Persisting data is a core skill for any iOS developer. This course will teach you three techniques for storing data to your device’s hard drive: NSUserPreferences for small amounts of data, the Sandbox for files and Core Data when you have to play in the Big Leagues!
Expected Learning
Just like computers, your iPhone has two types of memory: main memory (RAM) and the hard drive. In all the apps you’ve written, you’ve interacted with RAM, but this memory is limited, and it’s important that the apps you design use it as efficiently as possible. To use the RAM efficiently it is important to be able to store data on the hard drive.
It is also important for your apps to maintain state when they are turned off. The apps you’ve built probably aren’t persistent, meaning that they don’t save their state to the device’s hard drive. As RAM is volatile, data is lost when the app stops running. In this course, you’ll learn how to persist the state of the device using NSUserDefaults and Core Data.
Syllabus
Lesson 1: Simple Persistence
In this lesson, you’ll learn about simple persistence and how to save small pieces of data, like user preferences, using NSUserDefaults.
Lesson 2: The iOS File System
In this lesson, we’ll discuss the iOS File System, the "sandbox", and how to access these files using NSFileManager.
Lesson 3: Comprehensive Persistence: Core Data (Part 1)
IIn this lesson, you’ll be introduced to the Core Data framework, Apple’s favorite framework for the model class. We’ll learn about the Core Data stack, how to create a model and managed model objects, and begin work on our very own note-taking app.
Lesson 4: Comprehensive Persistence: Core Data (Part 2)
In this lesson, we’ll continue our implementation of Core Data and learn how tableviews adjust their display, how a user can add new notes to the app, how we actually save and persist changes, and the important role Core Data plays in memory management.
Lesson 5: Important Extras
In this lesson, we’ll wrap up Core Data and discuss some important aspects of maintaining a persistent app.
Lesson 6: Core Data & Concurrency
Some tasks in Core Data can take pretty long, especially if your data model is complex or have a huge amount of data. Back in the Grand Central Dispatch course, we've seen how to send lengthy tasks to a background queue. In this lesson, we'll learn how Core Data tasks can run in different queues in a safe and efficient way.
Required Knowledge
This course assumes extensive iOS experience. Specifically, you’ve built several apps, know how to use core iOS libraries, and are familiar with networking and MVC design principles. Introduction to iOS App Development with Swift, UIKit Fundamentals, and iOS Networking with Swift 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.9 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.
Free
Advanced
8 weeks
Fernando Rodriguez
Coursearena