← ClaudeAtlas

ios-datalisted

iOS data persistence expert skill covering SwiftData (@Model, ModelContainer, @Query, #Predicate, migrations, CloudKit), Core Data (NSPersistentContainer, NSFetchRequest, batch operations, CloudKit), UserDefaults/@AppStorage, FileManager (app sandbox directories), Keychain for sensitive data, iCloud key-value storage, and SQLite/GRDB. Use this skill whenever the user needs to persist data, create data models, query databases, handle migrations, sync with iCloud, or choose a storage strategy. Triggers on: SwiftData, Core Data, @Model, @Query, #Predicate, ModelContainer, NSManagedObject, NSFetchRequest, UserDefaults, @AppStorage, FileManager, documents directory, Keychain, iCloud sync, SQLite, GRDB, persistence, database, migration, schema, data model, fetch, save, delete, storage, cache, offline, or any iOS data storage question.
ebbaunqualified520/ios-agent-skills · ★ 0 · AI & Automation · score 72
Install: claude install-skill ebbaunqualified520/ios-agent-skills
# iOS Data Persistence Skill ## Storage Selection Guide | Data Type | Storage | Why | |-----------|---------|-----| | User preferences | UserDefaults / @AppStorage | Simple, auto-loaded at launch | | Preferences synced across devices | NSUbiquitousKeyValueStore | Simple iCloud sync, <1MB | | Passwords, tokens, API keys | Keychain | Encrypted, survives reinstall | | Structured app data (iOS 17+) | SwiftData | Modern, declarative, queryable | | Structured app data (iOS 16-) | Core Data | Mature, proven, stable | | Large files (images, video, PDFs) | FileManager | Direct file I/O, no DB overhead | | Complex queries, cross-platform | SQLite (GRDB) | Full SQL control, lightweight | | Public/shared CloudKit data | Core Data + NSPersistentCloudKitContainer | SwiftData only supports private DB | ## Decision Flowchart ``` Is the data sensitive (tokens, passwords, keys)? YES → Keychain (NEVER UserDefaults) NO ↓ Is it a simple user preference (theme, flag, small string)? YES → Need sync across devices? YES → NSUbiquitousKeyValueStore NO → @AppStorage / UserDefaults NO ↓ Is it a large binary file (image, video, PDF)? YES → FileManager (store path/URL reference in DB if needed) NO ↓ Is it structured/relational data? YES → iOS 17+ minimum? YES → SwiftData NO → Core Data NO ↓ Need full SQL control or cross-platform DB? YES → SQLite via GRDB.swift NO → Codable + FileManager (JSON/plist file) ``` ## Core Rules ### General - Use SwiftData for ne