Use when working with SwiftData - @Model definitions, @Query in SwiftUI, @Relationship macros, ModelContext patterns, CloudKit integration, iOS 26+ features, and Swift 6 concurrency with @MainActor — Apple's native persistence framework
View on GitHubSelect agents to install to:
npx add-skill https://github.com/CharlesWiltgen/Axiom/blob/main/.claude-plugin/plugins/axiom/skills/axiom-swiftdata/SKILL.md -a claude-code --skill axiom-swiftdataInstallation paths:
.claude/skills/axiom-swiftdata/# SwiftData ## Overview Apple's native persistence framework using `@Model` classes and declarative queries. Built on Core Data, designed for SwiftUI. **Core principle** Reference types (`class`) + `@Model` macro + declarative `@Query` for reactive SwiftUI integration. **Requires** iOS 17+, Swift 5.9+ **Target** iOS 26+ (this skill focuses on latest features) **License** Proprietary (Apple) ## When to Use SwiftData #### Choose SwiftData when you need - ✅ Native Apple integration with SwiftUI - ✅ Simple CRUD operations - ✅ Automatic UI updates with `@Query` - ✅ CloudKit sync (iOS 17+) - ✅ Reference types (classes) with relationships #### Use SQLiteData instead when - Need value types (structs) - CloudKit record sharing (not just sync) - Large datasets (50k+ records) with specific performance needs #### Use GRDB when - Complex raw SQL required - Fine-grained migration control needed **For migrations** See the `axiom-swiftdata-migration` skill for custom schema migrations with VersionedSchema and SchemaMigrationPlan. For migration debugging, see `axiom-swiftdata-migration-diag`. ## Example Prompts These are real questions developers ask that this skill is designed to answer: #### Basic Operations #### 1. "I have a notes app with folders. I need to filter notes by folder and sort by last modified. How do I set up the @Query?" → The skill shows how to use `@Query` with predicates, sorting, and automatic view updates #### 2. "When a user deletes a task list, all tasks should auto-delete too. How do I set up the relationship?" → The skill explains `@Relationship` with `deleteRule: .cascade` and inverse relationships #### 3. "I have a relationship between User → Messages → Attachments. How do I prevent orphaned data when deleting?" → The skill shows cascading deletes, inverse relationships, and safe deletion patterns #### CloudKit & Sync #### 4. "My chat app syncs messages to other devices via CloudKit. Sometimes messages conflict. How do I handle sync conf