The SwiftUI and Core Data Mastery Course

This course teaches you how to build a feature-rich and complex app with Core Data. Write code that is simple, scalable, and a joy to work with.

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.

Learn how to build large and feature rich SwiftUI apps!

What app will we build together in this course?

In this course, we’ll create a digital version of the Zettelkasten note-taking system, originally developed by German social scientist Niklas Luhmann. This system, which helped Luhmann publish numerous books and papers, involves an intricate network of notes linked together, functioning like a “second brain.” Our project will transform this concept into a digital format, making it an ideal challenge to explore the capabilities of SwiftUI and Core Data.

Project-Based Course

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.

Join us to build not just an app, but a comprehensive learning experience that will elevate your skills in SwiftUI and Core Data.

Mastering Core Data is still a very popular skill for iOS developers. Because Core Data is built on top of SQLite, it is a great and powerful local data storage option. Thankfully, Apple made working with Core Data in SwiftUI super convenient. They provide us with environmental support and property wrappers like @FetchReqest. It is a little tricky to get started with, but once I show you a lot of tips and tricks, you will be able to handle Core Data with ease.

 The application we are building is a note-taking system with keyword tags and links to other notes. It will become quite a complicated data model. We will work with relationships and see how to store rich text and images in core data. We will take advantage of the database to implement advanced search functions.

In 2023, SwiftData was introduced, which is meant to replace Core Data. Unfortunately, it remains buggy and has limited features compared to Core Data. Therefore, I don’t recommend using SwiftData. In the future, if you target iOs 18+, it might be worth a look. Choose carefully. You might miss a lot of opportunities going with SwiftData.

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

Use one codebase to build for the iPhone and iPad. You are going to use SwiftUI´s new Navigation API.

NavigationSplitView with 3 columns works great for larger screens like the Mac and iPad in landscape mode.
Tapping on a linked note, opens the note. We will use NavigationStack on iOS to create a continues navigation.

What you will learn in this course?

  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. Learn how to sync data with iCloud sync.
  2. Unit tests: In the second section, I will discuss 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
  3. Schema Attributes: Now, we will dive deeper into 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 and how to store enums, colors, and images.  
  1.  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 and see how Core Data handles much more complex data.
  2. 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.
  3. 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.

Frequently Asked Questions

This course is designed and taught by an experienced iOS developer who has built and published apps in the App Store. The course content is practical, relevant, and based on real-world examples, making it a valuable resource for any iOS developer looking to supercharge their SwiftUI skills.

This is not an absolute beginner course. You will need a good knowledge of the Swift programming language and SwiftUI.

Absolutely! This course is regularly updated to ensure it includes all the new SwiftUI features and enhancements. I strive to provide you with the most up-to-date content, including any updates introduced in iOS 16. By enrolling in this course, you can be confident that you will learn the latest SwiftUI layout techniques and stay ahead of the curve in iOS app development.

No. I will update this course in the future and you will have access to it without additional costs. You pay once and all future updates are included.

Yes, by the end of this course, you will have one large project that includes a variety of SwiftUI examples. This project can serve as a valuable reference when you build your next amazing app, saving you time and allowing you to focus on the success of your app.

Yes, of course. If you are not happy with my course, I will give you a full refund. You have a 30 day money-back guarantee.

Karin Prater

iOS Developer and Educator

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.