I wrote an iOS app using Core Data and iCloud, and it was the worst experience I've had so far developing for the platform. From top to bottom, the Core Data concepts are simultaneously too low-level and too opaque. I found myself copying multi-page code snippets from the web and hoping they would work. Basic concepts like merging conflicts were obfuscated and brittle. Contrast that with Firebase, which has been a real pleasure to use.<p>So I'm hopeful that CloudKit will address these issues. Versioned schemas are great for updates but hard to get working initially. I'm sure iCloud has a lot of good ideas like that, but up till now they were simply too esoteric to get a handle on, and I think the general consensus was to avoid iCloud until it was ready for primetime.