The SwiftUI and Core Data Mastery Course

This course teaches you how to build a feature-rich and complex app for iOS and macOS. 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.

Why This Project?

  • Complexity and Learning: The Zettelkasten system’s complexity makes it a perfect case study for understanding SwiftUI’s potential in handling large-scale applications.
  • Personalization Opportunity: While we’ll build the core features together, you’ll have the chance to add your unique touch, creating an app you can be proud of and share with others.
  • Understanding MVVM: This project offers a practical context to grasp the Model-View-ViewModel (MVVM) pattern, demonstrating how different components interact in a substantial application.

Course Highlights:

  1. Cross-Platform Development: Learn to create an app compatible with iPhone, iPad, and Mac using SwiftUI.
  2. Master Core Data: Dive deep into Core Data, a powerful tool for local data storage, and learn to manage complex data models, including relationships, rich text, and images.
  3. SwiftUI in Depth: Challenge the misconception that SwiftUI isn’t suitable for complex apps. Through this project, you’ll see how SwiftUI’s declarative nature can efficiently manage data flow and user interfaces in a sophisticated application.

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

What you will learn in this course?

  • Be able to persists data locally with Core Data: create the data model and know how to use Core Data with SwiftUI
  • Know how to share the user data  on multiple devices by combining Core Data with iCloud
  • Know how to take advantage of ObservableObject and the environment to structure the data flow in SwiftUI
  • Be able to write clean readable code 
  • Be able to write Unit Tests
  • Know how to build professional iOS and macOS application
  • Know how to use SwiftUI for a macOS application: including window management, toolbar, and keyboard shortcuts
  •  Be able to respect State restoration and save the users data for the next app launch (including SwiftUI lifecycle)
  •  Be able to save the users preferences in User Defaults with @AppStorage
  • Know how to use drag and drop in your SwiftUI views to share data from lists, images and texts

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.

Learn macOS Development with SwiftUI

SwiftUI has evolved since its introduction in 2019. While most updates have priorities for iOS, we finally got much need APIs for macOS. New in macOS 13 are:

  • identifiable window types and the ability to programmatically open windows, 
  • window customization with default size and position 
  • focus management which is working so that you now can properly add menu items 
  • new navigation APIs with NavigationSplitView and NavigationStack
  •  menu bar extras
  • advanced search functionality with search tokens and scrap

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.