WWDC WEEK
SALE
30
%
off
Subscribe now
WWDC WEEK
SALE
30
%
off
Subscribe now

Modern Persistence: Reminders Detail, Part 1

Episode #326 • May 26, 2025 • Subscriber-Only

We begin building the “reminders” part of Apple’s Reminders app, including listing, creating, updating, and deleting them. We will also add persistent filters and sorts, per list, all powered by a complex, dynamic query.

Previous episode
Modern Persistence: Reminders Detail, Part 1
Next episode
Locked

Unlock This Episode

Our Free plan includes 1 subscriber-only episode of your choice, plus weekly updates from our newsletter.

Sign in with GitHub

Introduction

Stephen

Our little reminders app is starting to really take shape. We now have the ability to display the reminders lists along with a count of the number of incomplete reminders lists. And we did that in a single, simple SQL query which unfortunately is not possible to do in SwiftData. And we have the ability to create new lists of reminders, edit existing lists of reminders, all the while the view is observing changes to the database and animating changes.

And if that wasn’t cool enough, we are able to use all the tools of our libraries in an @Observable model, which means everything we’ve done so far is 100% testable, and sadly this is not the case for SwiftData.

Brandon

So, we truly are starting to see what it means to have a “modern persistence” system in an iOS application. We get to leverage all of the powers of SQL, and let it shine, while also being able to leverage the powers of SwiftUI, and let it shine.

But we currently do not have a way to see the reminders that are in each list, nor do we have a way to create new reminders or edit existing ones. And in the process of implementing these features we are going to come across all types of advanced topics in crafting complex SQL queries, so let’s dig in!

The reminder row and detail


References

Downloads

Get started with our free plan

Our free plan includes 1 subscriber-only episode of your choice, access to 72 free episodes with transcripts and code samples, and weekly updates from our newsletter.

View plans and pricing