An advanced sync engine for Core Data and CloudKit with offline editing, field-level deltas, and support for private, shared, and public databases.
CloudCore is an advanced synchronization engine for iOS and iPadOS that connects Core Data with Apple's CloudKit service. It solves the problem of keeping local data in sync with iCloud across devices, supporting offline editing, encrypted values, and fine-grained control over what gets synced. Unlike Apple's native solution, it offers field-level deltas, explicit CloudKit metadata, and cacheable asset handling.
iOS and iPadOS developers building data-driven apps that require robust, customizable synchronization between Core Data and CloudKit, especially those needing offline support, selective sync, or large file handling.
Developers choose CloudCore for its greater control and transparency compared to NSPersistentCloudKitContainer, including field-level synchronization, exact Core Data-to-CloudKit naming, maskable attributes, and dedicated cacheable asset management for large files.
Robust CoreData-CloudKit synchronization: offline editing, relationships, private, shared and public databases, field-level deltas, encrypted values, cacheable assets, and more.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Only changed attributes are uploaded and downloaded, minimizing data transfer, as highlighted in the differential sync feature and maskable attributes control.
Leverages NSPersistentHistory to queue changes when offline and push them when online, ensuring no data loss without requiring constant connectivity.
Supports cacheable assets for large files like photos and videos, using long-lived operations separate from sync ops to avoid timeouts and enable on-demand downloads.
Offers selective synchronization, explicit CloudKit metadata, and exact Core Data-to-CloudKit naming, giving developers fine-grained control over data flow.
Requires adding specific service attributes to Core Data entities, enabling NSPersistentHistoryTracking, and configuring UserInfo mappings, which is more involved than Apple's native solution.
Only tested on iOS and iPadOS; watchOS and tvOS support is uncertain, restricting its use in full Apple ecosystem apps.
The roadmap mentions missing features like handling the 'limitExceeded' error, and cacheable assets require manual overrides in managed objects, as admitted in the README.
Assumes familiarity with Core Data and CloudKit intricacies, and the documentation, while detailed, lacks beginner-friendly guidance for troubleshooting common issues.