SQLiteData
I have not been this excited about anything in a long time. Over the past several weeks, I worked through more than 16 hours of content in the Modern Persistence series available through a Point-Free subscription. https://www.pointfree.co/
Brandon Williams and Stephen Celis are exceptional developers, well known for their deep-dive video series on advanced Swift topics. Point-Free is not a beginner resource, but as your skills and career grow, it becomes incredibly valuable.
In the Modern Persistence series, they explore modern, best-practice approaches to persisting application data and state. They do this by rebuilding Apple’s Reminders app from scratch using SQLite, the most widely deployed database in software. Along the way, they cover powerful SQL features such as foreign keys, triggers, common table expressions, and more.
What impressed me most was their SQLiteData package. It accomplishes something that no other solution has managed to do cleanly: syncing data across multiple devices using CloudKit without forcing you to think about CloudKit at every step. It works astonishingly well.
As a personal challenge, I built my own app alongside the series, applying many of the same techniques they used while building Reminders. My app, My Stuff, lets me track items I care about by location and room. It is still a work in progress, but it is already syncing reliably between my iPhone and iPad.
Next up is sharing selected content with my wife using CloudKit containers, something that is simply not possible with SwiftData today.
Here is a quick demo of My Stuff running on an iPhone and an iPad and syncing data between them.