
Explore building a SwiftUI and Core Data reminders app, saving and displaying lists, modeling a one-to-many relationship, updating reminders, and adding search, local notifications, and dark/light mode support.
Master swift and gain familiarity with core data to build a reminders app clone, modeling one-to-many relationships, creating custom model files, and implementing fetch requests and property wrappers.
Download the exercise files for each lecture to follow along, or grab the complete final code from the last section. Use the lecture-specific files to maintain a smooth learning flow.
Take a quick tour of the reminders app you’ll build, exploring lists, searching items, adding new lists and items, scheduling notifications, and tracking progress with core data integration.
Create a singleton core data provider to set up core data stack with a persistent container named after Reminders model, load description, and fatal error if the model is missing.
Create a core data model with a my list entity (name and color) and a future reminder entity, then implement a manual MyList class with a ui color transformer.
Implement the add new list view to create a brand new list with a name and color, including a color picker control and validation to enable the save button.
Save a list to core data using a reminder service and the persistent container's view context; implement and register a UI color transformer, then call save with error handling.
Display and manage lists with the fetch request property wrapper in SwiftUI, showing live updates as lists are added, and refactoring into my list view and cell view.
Create a reminder model with a required title, optional notes, a completion flag, and optional date or time, and define a one-to-many relation from list to reminders with cascade delete.
Add a new reminder to a selected list using SwiftUI navigation links, a my list detail view, and a reminder service to save to Core Data.
Fetch reminders for the selected list using a fetch request and display them in a reminder list view, filtering by isCompleted false and updating the UI with fetch results.
Build a reminder cell view in SwiftUI, pass a reminder, show a checkbox, title, notes, and date and time, and enable tap-to-toggle and preview data.
Create a SwiftUI reminder detail view that edits reminders using a binding and edit config, capturing title, notes, date, time, and list changes with a details toolbar.
Implement a select list view to change a reminder’s assigned list using a fetch request and binding, wired through the reminder detail view with a visual checkmark for selection.
Expose reminder cell events in a SwiftUI list by using a single event enum and closures for on info, on check change, and on select to drive actions.
Update reminder completion status by triggering a check change, using an edit config and reminder service to mark completed, handle optional dates, and add a brief delay.
Implement a delay utility in Swift using a dispatch work item to run a closure after two seconds, with cancel support, and apply it in the cell view for reminders.
Update reminder notes, date, and time in a SwiftUI app; manage the selected reminder, reveal the info button on tap, and apply has date/time logic to default to current date/time.
Learn to delete a reminder in the reminder list by using on delete with for each, implementing a delete reminder function and service, and saving in Core Data.
Learn to implement a searchable reminders app clone in SwiftUI using the searchable modifier, onChange, and a fullscreen overlay for search results, powered by a case-insensitive predicate.
Create a reminders stats builder that aggregates fetch results across all lists, builds a reminders array, and computes today’s, scheduled, and completed counts into a reminder stat values structure.
Display a reminder stats view with squares for today, all, schedule, and completed counts, using an icon, title, count, and color in SwiftUI, enabling tap navigation to a detail screen.
Navigate reminder stats with simple navigation links for today, scheduled, all, and completed reminders, and build stat-based fetch requests for the reminder list view.
Learn to register and schedule local notifications in a SwiftUI reminder app using a notification manager, UNUserNotificationCenter, and calendar triggers, including authorization prompts and customizable content.
Explore how to implement light and dark mode in a SwiftUI reminders app, customize colors with environment color schemes, preview across modes, and persist data with Core Data.
Explore using AI to generate custom app icons with DALL-E, learn to create, download, and resize icons for the reminders app and App Store readiness, and save on designer costs.
Continue building apps with Core Data and SwiftUI, then explore different architectural patterns to find what fits your project.
Learn to build your own Apple Reminders app clone using the power of SwiftUI and Core Data. In this course, you'll gain a solid understanding of how to create a fully functional app that includes features such as sending notifications, utilizing the @FetchRequest property wrapper, and supporting both dark and light mode. This course will guide you through the entire process of creating an Apple Reminders app clone. Whether you're a beginner or an experienced developer looking to add a new skill to your toolbox, this course is perfect for you. Enroll now and start building your own Reminders app today!
What are the requirements of the course?
iOS 16 or above
Familiarity with Xcode
Familiarity with Swift and SwiftUI
Passion for learning and building iOS apps
What will you learn in this course?
This course will teach you how to build your own Apple Reminders app clone using SwiftUI and Core Data. Specifically, you will learn how to:
Use the latest features of SwiftUI to create an intuitive and user-friendly interface
Utilize Core Data to store, retrieve and manage data
Send local notifications to the user
Use the @FetchRequest property wrapper
Implement support for both dark and light mode
Learn how to work with a variety of different programming concepts and techniques to build a fully functional app.
100% money-back guarantee if not satisfied. Contact us within 30 days of purchase for a full refund.