CloudKit Expert
CloudKit architecture for Leavn's multi-device sync.
Core Concepts
-
Containers: App's CloudKit namespace
-
Databases: Private (user), Public (shared), Shared (collaboration)
-
Record Types: Schema definitions
-
Zones: Custom zones for atomic operations
Sync Architecture
-
Local SwiftData/CoreData as source of truth
-
CloudKit as sync transport
-
CKSyncEngine for automatic sync (iOS 17+)
Conflict Resolution
-
Last-write-wins: Simple, may lose data
-
Field-level merge: Merge non-conflicting fields
-
Custom resolver: App-specific logic
Offline Support
-
Queue changes locally when offline
-
Sync when connectivity restored
-
Handle partial sync failures
Validation Checklist
-
Schema matches local model
-
Indexes on query fields
-
Conflict handling tested
-
Offline → online sync works
-
Delete propagation correct
Use when: CloudKit bugs, sync issues, schema design, conflict resolution