Can someone explain to me the difference between iCloud sync (say, for Obsidian) and simply storing files in an iCloud folder and accessing them from multiple devices. IS there a difference?
As I understand it there are two Apple cloud options. Both “sync”, but do it somewhat differently.
One is iCloud Drive. It works a lot like dropbox, etc. You, or apps, save files to it; Apple manages the sync between devices – I gather it’s usually pretty speedy, but especially if an iOS or iPad app is in the background a lot (you’re not actively using it), changes could take a little time to sync.
The other is via CloudKit. As I understand it, it is essentially a database, rather than file storage as we typically think about it. I think apps and developers have more control over pushing changes through the system. But there are some additional limitations as well – for example, I think it’s harder for apps to access data from other apps.
Looking forward to any corrections or refinements to this, which I’ve gathered mostly from listening to how developers talk about them…
The existing answers cover the technical differences sufficiently. However, its the difference in how we interact with those systems that often matter to us as users.
Because iCloud drive simply uses your file system, the files can be accessed just like any other files on your system. In other words, the same file can be accessed by any app which provides access to the file system. You can save a file in one app, and open the file in another app. And that other app can be on any device which is signed in to the same Apple ID (so long as sync is up-to-date).
On the other hand, a Cloudkit database is much more restricted and only provides access to the app it belongs to. If a developer builds in support, then you can access the same data from the same app on different devices, but you can never access the same data from different apps unless you export the data (via the share sheet etc).
So which is better for you depends on which apps you are using and how you want to be able to use and share that data.
There is an exception here: if the app developer makes it available somehow.
For example, NotePlan allows syncing via CloudKit (along with other options), but also makes its files available in an application data folder as text files.
I assume it does this by essentially mirroring what’s in the database into the files, or perhaps by somehow including the files in the CloudKit database. But I can get at the directory just fine on the Mac, and my (synced) files are there.
Here’s a little more explanation from developer Eduard himself via his reddit site in 2020.
First of all I’m honored that NotePlan is being discussed over there! Need to check it out.
Now about the change in v3: I’m adding CloudKit as sync service, because iCloud Drive is not as reliable. The iCloud Drive uses a background service to sync which kicks in independently from when NotePlan needs it. Most issue come up if you didn’t use it for a while. It doesn’t sync or very late. You need to open the Files app or Finder to make it sync again. I guess iCloud Drive is not made for real-time sync.
CloudKit on the other hand is a database by Apple. You get generous free quota. Every user has a private database. Similar to the 5GB free iCloud Drive. So, here too, nobody can access your data but you. In the code you can tell CloudKit when to sync. Just like any database you need to upload/download data actively. Here comes the trick: NotePlan will use CloudKit (optionally in addition to iCloud Drive) to sync against a local folder with your plain text files containing your markdown notes. This is anyways needed in some form to keep offline access alive. So the best of both worlds in the end.
A clarification for Obsidian - it actually does the “simply store files in an iCloud folder and access them from multiple devices” option, not CloudKit. This is one of the things that’s great about it, it can work off a regular folder without any complicated/opaque systems (which are sometimes necessary, but not for notes IMO).
And in the case of Obsidian, this is also contrasted with (and sometimes confused with) the optional Obsidian cloud sync service, which is their own server - nothing to do with Apple.
Thanks all for the great explanations. I can see why I was confused, but I get it now. I feel as if my nerd status has been restored.