iOS and CoreData: Create Data Driven Apps with Swift 3
4.6 (100 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
609 students enrolled
Wishlisted Wishlist

Please confirm that you want to add iOS and CoreData: Create Data Driven Apps with Swift 3 to your Wishlist.

Add to Wishlist

iOS and CoreData: Create Data Driven Apps with Swift 3

Use the mighty Core Data framework to improve your apps and make your life easier
4.6 (100 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
609 students enrolled
Created by Brian Advent
Last updated 1/2017
Price: $75
30-Day Money-Back Guarantee
  • 4 hours on-demand video
  • 7 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?
What Will I Learn?
build a Core Data driven iOS App from start to finish
understand the advantages of a Core Data
creating data models
using relationships
integrate Core Data in real Apps
using the NSFetchedResultsController
using NSPredicate to search a database
using Sort Descriptors
use advanced iOS development techniques
View Curriculum
  • You should be familiar with the basics of the Swift programming language
  • You should have a basic understanding of the Xcode IDE

If you have never worked with Core Data before, this mighty framework can seem a little intimidating. But the fact is, once you understood the basics of the Core Data framework you will hardly believe that there was a time when you didn't want to use it. 

In this course you will learn exactly as much theory about databases as you need to get started with building your own data models with Xcode and Core Data. You are going to learn why relationships not only matter in real life, but also when talking about structuring data in your apps. You will learn all about the benefits that come with using Core Data and then put them into practice in easy examples. 

After learning all the necessary basics regarding Core Data, you will create a complex app that will combine everything you have learned so far. Creating this app will give you insights into other advanced iOS development techniques. 

Who is the target audience?
  • You should take this course if you want to bring your data driven application to the next level.
  • You should also take this course if you want to use one of the most advanced iOS frameworks to make your life a lot easier when it comes to save data locally or on iCloud.
  • This course requires a basic understanding of the Swift programming language and the Xcode IDE. This course is probably not for you if you're completely new to iOS development.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 45 Lectures Collapse All 45 Lectures 03:58:20
3 Lectures 09:50

See how to use this course to fit your needs.

Preview 01:33

Get to know our demo application and see what you will have created at the end of this course.

Preview 02:05

You can store data in different ways. Learn about advantages and disadvantages of different approaches.

How to Work with Data
All the Basics You Need
7 Lectures 37:06

Learn what Core Data is and why it's not really a database but an object relational mapper.

Preview 07:40

See how Core Data works seamlessly together with Xcode and learn about the concept of data models.

[UPDATE] Xcode and Our First Data Model

The core of every data model are its entities and their attributes. In this video you are going to learn how to add them to your own data model.

Entities and Attributes

Relationships are not only important in real life. In this video you are going to learn how relationships work and why they are vital when it comes to structuring data.

Preview 03:04

Create your first relationships with Xcode.

Adding Relationships to Our Data Model

After watching this video you will be able to setup the heart of every Core Data driven application: the Core Data Stack.

[UPDATE] Writing a CoreData Stack

This is an older version of this video that illustrates how complicated it used to be to create a core data stack

[DEPRECATED] Writing a CoreData Stack
Saving, Searching and Filtering
5 Lectures 20:41

The NSManagedObject is our best friend when it comes to dealing with records from our database.

[UPDATE] The NSManagedObject

Finally, you are going to save data to your Database.

[UPDATE] Creating and Saving Managed Objects

In this video you are going to learn how to get data out of your database and display information.

Preview 06:39

To present data to your users, you often have to give it structure first. In this video you are going to use the NSSortDescriptor class to sort data in an efficient way.

[UPDATE] Sorting Objects with NSSortDescriptor

Often, you don't want to retrieve every single record from your database. NSPredicates allow you to select exactly what information you want to get from your database.

[UPDATE] Filtering with NSPredicate
Relationships, Advanced Sorting and Complex Predicates
4 Lectures 15:29

Relationships are a powerful tool. In this video you will learn how easy it is to add notes to a notebook and thereby leverage our one-to-many relationship.

[UPDATE] One Notebook, Many Notes: Adding Notes to a Notebook

After completing this video you can access the records behind a to-many relationship.

[UPDATE] How to access Items of a To-Many Relationship

To present your users with an ordered set of data, this video shows you how to sort items with little effort.

[UPDATE] Sorting with Sets

Especially together with Core Data, key-value-coding is a powerful technique to access data fast.

[UPDATE] Complex NSPredicates and Key-Value-Coding
The Mighty NSFetchedResultsController
2 Lectures 10:08

In this video we are going to fulfil the necessary requirements to use the NSFetchedResultsController.

Preview 02:22

Using The NSFetchedResultsController is based on some very powerful delegate methods that we are going to implement in this video.

[UPDATE] Implement the NSFetchResultsController
Change Database Records
3 Lectures 12:24

It is very easy to update existing records in a Core Data database. In this video you learn how to do that with just a few lines of code.

[UPDATE] Update Records

Deleting is just as easy as changing existing records. See how to delete objects in this video.

[UPDATE] Delete Records

[NEW] Handle Updates with NSFetchedResultsController
Putting it All Together: Borrowmatic
17 Lectures 01:56:03

Let's start creating Borrowmatic by creating a Xcode project using a Master Detail Application template.

[UPDATE] Creating the Xcode Project

In this video we are going to set up the Storyboard and Autolayout to set some constraints for our app to run on different devices.

Setting Up the User Interface

In this video we are going to add our entities, attributes and define some relationships. 

Preview 04:20

In this video we prepare the user interface for adding our first items to the database.

Preview 02:40

In addition to adding the code to create a new borrow item we will also make some adjustments to the OverviewViewController

[UPDATE] Add a First Borrow Item

To display borrow items we need to make some adjustments to the NSFetchedResultsController

[UPDATE] Display Borrow Items

To transfer data from the OverviewViewController to the ItemViewController, we need to use Segues. 

[UPDATE] Selecting Borrow Items and Using Segues

Borrow items and persons have image attributes. To fill them with data we need to be able to access the photo library. In this video we will also deal with adding images to the user interface.

[UPDATE] Select and Scale Images from the Photo Library

This video deals with saving images as NSData objects and how to display them on the user interface again.

[UPDATE] Save and Display Images

To select a timeframe for a borrow item we need to add a new ViewController to our Storyboard. Also we are going to add a 3rd party library called GLCalendarView to make selecting data ranges easier.

[UPDATE] Preparations for a Calendar

In this video we are going to add a new protocol to the Timeframe ViewController. This will allow us to transfer the selected timeframe back to the DetailViewController.

[NEW] Delegation: Use a Calendar to Select Timeframes

As we did with the title of a borrow item and with associated images, we will now add and retrieve timeframes to and from our database. 

[UPDATE] Save and Display Timeframes

Using our one-to-many relationship between borrow items and persons we will now associate persons with borrow items.

[UPDATE] Associate a Person with a Borrow Item

To make it even easier to select already existing persons, we will add an auto completion feature for the user to easily select a person that is already saved to the database. 

[UPDATE] Autocompletion for Existing Persons

In this video we are going to reactivate some of NSFetchedResultsControllers template code to manage updates in the database really quickly.

[NEW] Adjust the NSFetchedResultsController to Mange Database Updates

We will now fill the segmented control we created at the beginning of this section with life. Users will now be able to choose between sorting by date and sorting by person.

[UPDATE] Sort Items by Person Using Tableview Sections

In this video we are going to add a 3rd party control to our project that will allow us to select timeframes very easily.

[OPTIONAL] Configuration of GLCalendarView
Core Data iCloud Support [Deprecated without replacement by Apple]
3 Lectures 15:03

To use iCloud in any application you need to configure your AppID and change some settings in Xcode. Thats what we are going to do in this video.

Setting up iCloud

Enabling iCloud for CoreData is easy. In this video we make the proper modifications in our CoreDataStack.

Enabling iCloud in the CoreDataStack

Once iCloud for CoreData is enabled, we need to listen for specific notifications that tell our application when to update the user interface.

Dealing with iCloud updates
Conclusion and Course Material
1 Lecture 01:36

You are now a Core Data Expert. But there is still something for us to do.

One More Thing ...
About the Instructor
Brian Advent
4.5 Average rating
317 Reviews
2,645 Students
5 Courses
iOS Developer and Trainer

I wrote my first line of code at the age of 10 by creating the simplest form of a Hello World Application within the Visual Basic Editor of Microsoft Word. For many years, programming was completely about the journey for me.

Starting off with Visual Basic and earning money by creating Access Databases for many clients was nice, but not the driving force behind my wish to know more about creating software.

After switching to the Mac, I started developing with Java, C++, and later ActionScript 3.0. After school I used my expertise in different scientifically used big data applications. My work was all about visualisation of large amounts of data and therefore creating the best user experience possible.

Although I do love programming, I chose a different path for my professional carrier. By becoming an educator I could follow my second passion which is sharing knowledge. Today and especially since the release of the iPhone SDK in 2008 my interest in programming mainly is focused on creating iOS Apps for educational use and finding ways to create software that can be used in classroom, at universities and by students themselves to make learning a great experience. Although my passion lies in educational software, I am also doing client work from time to time, which does not only include the development of iOS Applications but also the implementation of different iOS development trainings.