I am in the early stages of creating an app where I would like to save, sync and backup data. The app will not store any files just data in a database. It is going to be iO
With iOS 13, Apple announced new features in Core Data to better work with CloudKit. The main addition is NSPersistentCloudKitContainer which basically manages syncing between Core Data and CloudKit for you.
You can learn more in the WWDC session Using Core Data with CloudKit.
Apple also released a nice collection of docs for this very usage: Mirroring a Core Data store with CloudKit.
It's like this:
If you wanted to use CloudKit with Core Data, you'd have to write your own custom code to translate between managed objects and CloudKit records. It's not impossible, but it's more code to write. It might be more reliable but it's too soon to say for sure.
I wrote a blog post describing CloudKit from the perspective of someone who's used Core Data and iCloud in the past.
Update, June 2016: As of the most recent documentation for NSPersistentStoreCoordinator, everything related to Core Data with iCloud is marked as deprecated. As a result it should probably be avoided for new development.