Core Data Mastery with SwiftUI

Master Core Data in SwiftUI with real-world projects—iCloud sync, relationships, predicates, async tasks, testing, rich media & more

 Building a complex SwiftUI app can feel like solving a never-ending jigsaw puzzle.

This course will teach you everything you need to know about how to build large, complex projects with a scalable app structure in SwiftUI. You'll work through an app that uses core data for data persistence. Core data makes it easy to save your user's data on device. In this course, everything is broken down into easy to understand, doable and reusable steps so you can quickly master one piece at a time!

With this knowledge, your apps can grow with ever more complex features, but your code will stay easy to understand and maintain.

Build a Great Note-Taking App with SwiftUI and Core Data

Create a large and complex app with SwiftUI, including Core Data and advanced data flow

Most courses teach simple concepts and give an overview of all the different features of SwiftUI. In order to master development, there is nothing better than building a fully fletched application. In this course, we will go through all the main steps. I want to showcase the whole development process with SwiftUI. From app idea to MVP. You will get to know my workflow and how I make my design decisions. Follow me along in creating this amazing app.

example for note taking app with SwiftUI

1. Setting up the project

First, you will create a new project with SwiftUI and Core Data. I will teach you the basics of Core Data, like how to fetch data and manipulate data in the database.

Duration: 2h 18m

2. Unit tests

In the second section, I will talk about unit tests. They can be very useful when you want to test code. You will practice Core Data operations with unit tests because they make it easy to implement one test case at a time.

Duration: 42m

3. Schema Attributes

Now, we will dive deeper in the ins and outs of Core Data. I will show you how to describe the model. You will learn how to work with types supported by Core Data. How to store enums, colors and images.  

Duration: 2h 13m

4. Relationships

In this section, you will learn about relationships. We will implement 1-1, 1-many and many-many relationships for our note-taking app. You will see how Core Data handles much more complex data.

Duration: 2h 29m

5. Fetch Request with Predicates

In this section, you will learn how to search for specific information in the database. You will get familiar with how to write queries with NSPredicate.

Duration: 2h 18m

6. Notes Sorting and Searching

You will use your new knowledge about NSPredicate to implement advanced search functionality in SwiftUI. I will show you how to use the searchable view modifier with search scope and tokens.

Duration: 2h 15m

Total Completion Time: 11h

Data Persistence with Core Data

Overall, Core Data is a powerful and flexible framework that provides many benefits to iOS app developers. By using Core Data, you can simplify data management in your app and focus on building the features that matter to your users.

 Here is a list of some of the key benefits of using Core Data in iOS app development:

Abstraction of storage: Core Data provides an abstraction layer over the underlying storage mechanism, allowing you to work with data at a higher level of abstraction.

Built-in support for relationships: Core Data provides built-in support for modeling relationships between entities, making it easy to build complex data models.

Automatic change tracking: Core Data automatically tracks changes to your data, making it easy to undo and redo changes.

Integration with other iOS frameworks: Core Data integrates well with other iOS frameworks, such as SwiftUI and UIKit, making it easy to build iOS apps.

Support for versioning: Core Data supports versioning of data models, making it easy to evolve your data model as your app evolves.

Easy to use: Core Data provides an easy-to-use interface for managing and persisting data, allowing you to focus on your app's functionality rather than the underlying storage mechanism.

Automatic memory management: Core Data automatically manages memory for you, loading and unloading data as needed.

Lightweight migration: Core Data supports lightweight migration, making it easy to migrate data between different versions of your data model.

Course Curriculum

Reviews

5

Top Rated
  • 5 100%
  • 4
  • 3
  • 2
  • 1
Steven Barnett

Excellent course

I've been 'messing around' with Mac programming for a long time (I'm a retired Windows programmer) and have been able to write iOS and MacOS apps using what I have learnt from that well known video site. However, I have always arrived at a point where I want to do something more significant and have failed to find a course that goes beyond the most basic of SwiftUI coding. That frustration ended when I took this course. The content goes well beyond anything I have watched before and delves into those more difficult areas that are important to a professional application. I am gratified to know that most of what I learnt previously is actually 'right' and am grateful to Karin for guiding me so well in those topics that I struggled with when learning alone. The course is not easy and will require you to think. That's a good thing. I now go away from this course with a list of changes that I need to do to my existing applications to implement features in a better way and to add usability that is so obviously lacking in my code. That alone makes this course worth every minute of the time it took and the cost. Thank you Karin for an excellent course.

2 years ago

This is exactly what I need. I've already mentally transitioned to using SwiftUI as my UI framework, since it is much more manageable for non-designers like myself, but I also want to use Core Data for any serious application collecting reasonable amount of data. CloudKit is also required, since I can not see any meaningful application not synchronizing between the several devices a user will typically have. Very good combination of technologies and right on the spot for me. The pace is a bit relentless but up to now the tutorial solved a couple of issues that I had with Core data. UI elements are very simplistic, but I guess the focus is on how to use Core Data in a serious application

Levent Mollamustafaoğlu

So far so good, great to find a course that is focusing more on intermediate/advanced topics as there are tons of simple beginners courses that don't help much with creating a proper production app. Thanks!

Jordi Kitto

This was a really good course. The project is complex and Karin presented a lot of advanced concepts both for macOS and iOS. For me the explanations in the iOS section were a bit less clear but there was still a lot of valuable information there. All in all a really good learning experience. Keep in mind that it is not a beginners course, but I think intermediate to advanced users will find it both interesting and beneficial to upgrading their skill set.

Roy Frieband

Here's what you're getting:

  • Comprehensive Video Course: 11+ hours of in-depth content. Learn Core Data step-by-step.
  • Complete Project Files: Ready to use in your own future apps. Practical, real-world examples.
  • Extensive PDF Guidebook: 200+ pages of detailed instructions. Covers all course lessons for easy reference
  • Lifetime Access: Learn at your own pace. Future updates included.
  • 30 Days Money Back Guarantee. No questions asked.

Frequently Asked Questions

In this project-based course, we'll be using Core Data to save and retrieve the user's data. Core Data is a powerful and flexible framework that allows us to manage and persist data in our iOS apps.

Throughout the course, we'll cover the basics of Core Data, including setting up a data model, creating managed objects, and working with fetch requests. We'll also explore advanced Core Data topics, such as implementing relationships between entities and filtering with NSPredicate. By the end of the course, you'll have a solid understanding of Core Data and how to use it to save and retrieve data in your iOS apps.

Core Data is a tool that helps app developers manage and store data in their iOS apps. It lets you create a model of what your app's data should look like, and then automatically saves and retrieves that data for you. With Core Data, you can create complex relationships between different pieces of data, and easily change your data model as your app evolves. Core Data also keeps track of changes to your data, so you can undo or redo them if needed. In short, Core Data helps developers focus on building the features of their app, while handling the hard work of managing and storing data in the background.

Whether or not to use Core Data in an iOS app depends on the complexity and requirements of the app. If the app involves managing a significant amount of data with complex relationships or requires advanced features like undo and redo, Core Data is an excellent choice. However, if the app requires only basic data storage and retrieval or is a small and simple app, using Core Data may be overkill.
Because you will build a complex note-taking app in this course, Core Data is a great choice..

Yes, Core Data and SwiftUI work very well together. In fact, Apple recommends using Core Data to manage data in SwiftUI apps. Core Data provides a layer of abstraction between your app's data and the underlying storage mechanism, which is essential for building scalable and flexible apps. Additionally, SwiftUI provides a declarative way of building user interfaces, making it easy to display data managed by Core Data.  

With Core Data and SwiftUI, you can create complex data models and relationships, and easily display that data in your app's user interface. SwiftUI has special features like the  @FetchRequest property wrapper which allows you to fetch data from your data store and display it in your app's UI. SwiftUI's built-in state management makes it easy to keep your UI in sync with changes to your data.

Overall, using Core Data and SwiftUI together is a powerful combination for building data-driven iOS apps. It allows you to focus on building great user experiences, while Core Data takes care of the complex data management tasks..

Karin Prater

I have a Ph.D. in physicist, during which I started to love software engineering. Since I am also passionate about learning I started to build my own learning app. 

I am also very enthusiastic about design, which is a bit unusual for most physicists, I am putting a strong focus on the UI part.  In my courses, you will jump right into the subject and learn to design by actually designing.

From my former teaching experiences, I know that learning by trying is the most fun. So I will encourage you to use the tools I am showing you directly in your own projects. May they be small or grant.