There are two things that have stopped me from using CloudKit in my apps in the past: 1- Despite Apple's generous free tiers, the cost of data transfer is on the app developer, and not on the user. As a developer, I see this as a liability risk. 2- Data is either completely private or completely public, there is no intermediate "team" or group that can be easily set up to share data among users.