Some of you contacted us via e-mail, Twitter or some other means to tell us about CloudKit and how it replaces Objective-Cloud.
No, CloudKit does not replace Objective-Cloud.
"It doesn't? Are you sure?" – Yes, and we are saying that with confidence even though we only skimmed through CloudKit's conceptional documentation. Since we are basing our opinion on the conceptional documentation it won't change in a dramatic way in the near future.
What is CloudKit?
CloudKit is nothing else than yet another storage type for iCloud. It sits at the model layer. Here is what CloudKit basically can do for you:
- CloudKit has the concept of databases: Your app (more precise your container) has databases and each database has multiple records.
- Each record has an ID and lets you manage data in a key-value-like fashion.
- With CloudKit you can retrieve, save, delete and edit records.
That is basically it.
CloudKit does not let you write code which is then executed on the server but sometimes you simply need server-side application logic.
What is Objective-Cloud?
There seems to be a misunderstanding about Objective-Cloud. Objective-Cloud is not a simple storage service. Storage is only a – small – part of it. The basic idea of Objective-Cloud is to execute code on a server. The ability to have server-side application logic is paramount in some cases. A lot of problems simply go away if you have server-side application logic. Even better, if this application logic is written in the same language (Objective-C, Swift) that is also used by the clients. This is where Objective-Cloud really shines.
What can I do with Objective-Cloud that I cannot do with CloudKit?
You can do things completely unrelated to storage. One exciting but evident example is a cloud app which is solving mathematical equations of some kind. You cannot do that with CloudKit.
- Objective-Cloud Connect is a cloud app which displays a dynamically generated website. You cannot do this with CloudKit.
- You can use the strength of almost every OS X frameworks in your iOS app. You cannot do that with CloudKit.
- You can use the performance of Macs on your iOS device. You cannot do this with CloudKit.
- And even if your cloud app is storage related: Did you ever try to keep a kind of custom consistency in a model changed by devices concurrently without having a reliable connection? You have to do it on each device, without knowing, what other devices did meanwhile, what they know about the changes you did and so on. It's like multithreading without having locks: Real fun.
With Objective-Cloud you can centralize that tasks to one piece of code. That makes things easier by far.
And what about Swift?
We will support it. Of course.
Feedback? Hate-mail? Questions? Drop us a line: firstname.lastname@example.org