swiftdata

Implement SwiftData persistence with @Model, @Query, and @Relationship in SwiftUI apps.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/derKlinke/codex-config --skill swiftdata-derklinke
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: swiftdata
Source: https://github.com/derKlinke/codex-config/tree/main/skills/ios-swiftdata
Command: npx skills add https://github.com/derKlinke/codex-config --skill swiftdata-derklinke

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers often struggle with integrating native persistence in SwiftUI apps without boilerplate. This skill provides a clear path to model data with SwiftData, perform reactive queries, and manage relationships safely across the app lifecycle.

Core Features & Use Cases

  • Modeling: Define data with @Model and primary keys using @Attribute, enabling robust persistence.
  • Querying & Reactivity: Use @Query for live-updating lists in SwiftUI and easy filtering/sorting.
  • Relationships & CloudKit: Establish relationships with @Relationship and enable CloudKit sync for private databases.
  • Concurrency Patterns: Safe background data imports and Task-based concurrency with ModelContext.

Quick Start

  • Create a simple @Model class, e.g. Track with id, title, and duration.
  • Use ModelContainer and ModelContext to insert and fetch data.
  • Display results in SwiftUI with @Query and observe automatic UI updates.

Frequently Asked Questions about swiftdata

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up native SwiftData persistence in a SwiftUI app?

Set up SwiftData persistence by defining data models with @Model, configuring a ModelContainer, and inserting data via ModelContext. Display live-updating results in SwiftUI views using the @Query macro.

What is the difference between @Model and @Relationship in SwiftData?

@Model defines persistent data classes with attributes, while @Relationship establishes connections between model objects. Both enable robust persistence and reactive querying within your SwiftUI app lifecycle.

Can I use SwiftData with CloudKit for private database sync?

Yes, SwiftData supports CloudKit sync for private databases. You can establish model relationships and enable synchronization across iOS 17+ devices using native CloudKit integration patterns.

How do I perform safe background data imports using SwiftData concurrency?

SwiftData concurrency uses Task-based patterns with ModelContext to safely import data in the background. This approach manages faulting and prefetching efficiently without blocking the main UI thread.

What Swift and iOS versions are required for SwiftData?

SwiftData requires Swift 5.9+ and iOS 17+. It leverages native SwiftData primitives like ModelContainer and ModelContext to enable persistence and querying across iOS 26+ environments.

Why does my SwiftData @Query not update my SwiftUI list automatically?

SwiftData @Query provides live-updating lists in SwiftUI with automatic UI updates. If filtering or sorting fails, ensure your ModelContainer is properly configured and your @Model classes use correct @Attribute primary keys.