NSPersistentCloudKitContainer in 2022
Steve Troughton-Smith: For the longest time, Core Data had a very bad rap for iCloud syncing, so I just never engaged with it even after the APIs were improved. What is the story in 2022? Is Core Data...
View ArticleSwift Regex
Meet Swift Regex: Learn how you can process strings more effectively when you take advantage of Swift Regex. Come for concise literals but stay for Regex builders — a new, declarative approach to...
View ArticleXcode 14 Announced
Apple: Discover the latest productivity and performance advancements in Xcode 14. We’ll introduce you to the fully redesigned SwiftUI canvas experience, explore enhancements to code completion and...
View ArticleUsing Lazy Properties for Views
Steve Landey: There are three patterns I use in most of my UIKit projects that I’ve never seen anyone else talk about. I think they help readability a lot, so I’m sharing them here[…][…]Additionally,...
View ArticleSwift Pitch: Predicates
Jeremy Schonfeld: We propose creating a new value type, Predicate, as part of the FoundationEssentials package, that addresses these problems. These new constructions of predicates will be expressed...
View ArticleFolders With High File Counts
Mike Bombich (Hacker News): Any time a folder has more than a few thousand items in it, the filesystem is going to be a lot slower when working with that folder. Adding a new file, for example,...
View ArticleNSPredicate, Core Data, and NULL
Douglas Hill (via Peter Steinberger): I’ve been implementing support for Apple Shortcuts in my reading app so users can create automated workflows. I noticed certain property-based article queries...
View ArticleBuilding Large-Scale Apps With SwiftUI
Mohammad Azam (via Christian Tietze): I have been experimenting with MV pattern to build client/server apps and wrote about it in my original article SwiftUI Architecture - A Complete Guide to MV...
View ArticleWWDC 2023 Links
General: Keynote (YouTube) Sessions Videos Beta OS Downloads (Installer, Xcode) Unofficial WWDC App (script to name videos by title) Sample Code What’s New: Apple API Changes List Apple Updates...
View ArticleSwiftData
Apple (Hacker News): Combining Core Data’s proven persistence technology and Swift’s modern concurrency features, SwiftData enables you to add persistence to your app quickly, with minimal code and no...
View ArticleTurning Off Core Data Persistent History Tracking
It’s not documented, but Core Data doesn’t like you to turn off persistent history tracking once it’s been enabled for a store. If you set NSPersistentHistoryTrackingKey to false after it had been set...
View ArticleCore Data Lab 2.4 Beta
Betamagic: However, the data model of a SwiftData project is based on Swift class files with a Model macro notation, instead of entities in a Core Data Object Model designer file. As a consequence of...
View ArticleSpamSieve 3.0
I’ve been away from blogging for a few days because I’ve been busy finishing up SpamSieve 3, getting it released, and responding to the onslaught of support e-mails. This is a major upgrade, which...
View Article@Model for CoreData
Helge Heß: ManagedModels is a package that provides a Swift 5.9 macro similar to the SwiftData @Model. It can generate CoreData ManagedObjectModel’s declaratively from Swift classes, w/o having to use...
View ArticleSpamSieve 3.0.1
SpamSieve 3.0.1 fixes almost all of the known issues with version 3.0. It also improves the workaround for the macOS bug where sometimes Mail extensions don’t work at all. So everything that the Mail...
View ArticleSpamSieve 3.0.2
SpamSieve 3.0.2 greatly improves the workaround for the macOS bug where sometimes Mail extensions don’t work at all. By reading Mail’s database directly, instead of using AppleScript, SpamSieve is able...
View ArticleSpamSieve 3.0.3
SpamSieve 3.0.3 is another maintenance update. The main focus is working around various cases where Apple Mail doesn’t behave properly, resulting in hangs or messages not being filtered or trained....
View ArticleSwiftData Fetching Pending Changes
Keith Harrison: If you don’t want the pending changes included in the fetch results you should be able to override the default by setting includePendingChanges to false in the fetch descriptor[…]...
View ArticleElegant Concurrency Operations in Core Data
Fatbobman: This article aims to explore how to introduce elegant and safe concurrency operations similar to those of SwiftData into Core Data, implementing a Core Data version of @ModelActor. […]...
View ArticleSpamSieve 3.0.4
SpamSieve 3.0.4 is a maintenance release for my Mac e-mail spam filter. In sending out the update notice to the SpamSieve mailing list, Amazon SES reported a huge number of bounces (almost 10x the...
View Article