Using CloudKit only (without local store)

Evening all,

Currently in the app store I have an app utilizing Core Data and iCloud, like many others I have found it inconsistent and buggy at best. I was pretty excited when I first heard about CloudKit and have played around with the dashboard on some experimental apps in development.

More recently I've begun work on a 'serious' app and have tried to piece together CloudKit and Core Data to make a satisfactory storage and syncing system. After a few weeks of trying I was unable to see an efficient way to get them to play nicely and have failed to get working version going. I've looked into github projects like Seam and paid projects like Ensembles but really I don't like the idea of having other peoples code control such an important part of my apps.

Due to this I've also been exploring the idea of only using Cloudkit without Core Data and no local data store. I was interested in seeing how common it is for other developers to take this route. Are there any statistics exploring the amount of iPhone / iPad users that never create an iCloud account? If a user is not signed in or has no internet, how do you deal with this? I've read a little about Cloudkit subscriptions, could they help out with some of this? Basically I'm trying to find out whether this is a common or viable option to take.

Thanks in advance for the feedback.

That's a very bad idea. You will end up with a slow app which solely relies on network connection to perform its actions. By all means you should not do that.


CloudKit is a transport mechanism. All you need to do is to create a own set of classes responsible for saving changes you make to your local objects with Core Data to records in CloudKit (and the other way around too).

I have successfully used iCloud's key value file to synchronize the data on multiple devices logged into the same iCloud Account. It works well. I have done the same thing using CloudKit for more extensive data syncing. As mentioned above, I would not recommend foregoing local storage of the 'latest' data because of speed and because some users don't want to synch or don't have access to an iCloud Account. I also don't use core data. You sync have only when the app first becomes active or enters background and then, only if the account is available.

Is there an example of this approach in use anywhere? I'm not too sure how this would be coded!

Using CloudKit only (without local store)
 
 
Q