iOS Reminders makes me fear Cloudkit

I want to add CloudKit to my app but is Reminders meant to be a showcase app for it? Because if it is its a terrible app when it comes to syncing.

The list of list repeatedly reorders itself into random order.

How can I trust syncing if it cant even remember a list order?


B

Replies

I think it's important to point out that CloudKit is not a syncing engine, per se. That is, it doesn't know anything about your schema and will not do things like resolve conflicts for you. What it will do is make sure that whatever changes you make on one device get communicated to other devices. But the contents stored in CloudKit is the responsibility of your app to manage.


So for the example of a reminders list, let's say that the schema included a field to indicate the ordinal position of your lists. Keeping that list in order, and representing it in the UI correctly, is the responsibility of your app. If one device modifies that order, those changes will get sent to other devices where that version of your app would need to reflect those changes.


One of the sessions we did at WWDC 2016 talked about best practices for how to keep your data consistent across devices. It talks specifically about how you should think about CloudKit with regard to storing your app's data locally, and then keeping that consistent with what's stored in CloudKit, and how that gets reflected to other devices where your app is also running. I'd definitely recommend watching that video if you haven't already: CloudKit Best Practices.

Yes but apple Reminders cant even get a list of strings in order.

The list of list rearanges itself daily. I am the only user.

Why would I trust you with my own app.

My point was that you cannot jump to the conclusion that what may very likely be a bug in the application is the fault of CloudKit.


Since you started your post with "I want to add CloudKit to my app...", my recommendation would be to do exactly that. Add it to your app, use it, and draw your conclusions based on how it works for your app, with your data.


It's dangerous to base a conclusion of whether or not to use a particular technology on a behavior in an app that you have no way of knowing what the implementation actually looks like, nor where a particular bug might lie. The issue of lists rearranging in Reminders may very well have absolutely nothing to do with CloudKit, you simply cannot know that for certain.


I'd hate to see you discard a technology that might save you a ton of work and enable some great features in your app based on an impression that might be unfounded.

What are the business requirements for your app? what technologies did you consider so far?