Core Data remains in active use in 2026 despite being 21 years old, but it increasingly clashes with modern Swift idioms. Three core pain points are identified: the model layer's expressiveness lags behind modern Swift (NSManagedObject carries heavy Objective-C legacy), the concurrency model is stuck in the GCD era with unsafe patterns and nested perform closures, and the tension between flexibility, type safety, and schema drift grows as projects evolve. The author argues that experience-based workarounds are no longer sufficient, especially as AI-assisted coding generates generic patterns rather than project-specific conventions. The proposed solution is an open-source library called CoreDataEvolution, which uses Swift Macros to modernize model declarations, introduces SwiftData-style actor isolation, improves type safety in predicates and sort descriptors, and provides a CLI tool to keep source declarations aligned with the Core Data model — all without replacing Core Data itself.

9m read timeFrom fatbobman.com
Post cover image
Table of contents
Why People Still Use Core Data in 2026Where Core Data and Modern Swift Projects DivergeThe Real Problem Isn’t Just That the API Is Old — It’s the Growing Dependence on Experience and DisciplineIf You’re Not Replacing Core Data, What Can You Do?

Sort: