finds.dev← search

// the find

mentrena/SyncKit

★ 524 · Swift · MIT · updated Jun 2022

Automatic CloudKit synchronization

SyncKit bridges Core Data or Realm with CloudKit, handling the change-tracking, conflict resolution, and record serialization that makes CloudKit sync painful to implement by hand. It's for iOS developers who want iCloud sync without rewriting their data layer. The adapter pattern means you can drop it next to an existing stack rather than restructuring your models.

Uses introspection to work with any Core Data model without code generation or protocol conformance on your entities. Supports both private and shared CloudKit databases, which most competing solutions skip entirely. The test suite is solid — mocks for CloudKit operations, separate test models for UUID/Int/transformable primary keys, and actual synchronizer integration tests. WatchKit example app included, which is rare and useful for developers targeting watchOS.

Last commit was June 2022 — four years of CloudKit API changes and Swift concurrency evolution with no updates. The library is still structured around completion handlers and delegates; there is no async/await surface, which means awkward bridging in any modern Swift codebase. Realm support covers both legacy Realm and RealmSwift but Realm's own sync story has since moved to Atlas Device Sync, making that adapter largely pointless today. No SPM support — CocoaPods and Carthage only, which is increasingly a dealbreaker as Apple has pushed SPM hard.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →