For an upcoming app of mine I need a backend. So the big question for me is:
Cloudkit or Parse? Both are cross-plattform now ("CloudKit JS") which makes it even more difficult a question.
Could some of you list the advantages / disadvantages of each? Or if you don't know both, just give some advice regarding the single experience.
I've used Parse, and liked it. In fact, I found it mostly-intuitive.
Their support is just okay, in my opinion; however, the product is a solid performer.
If you're comfortable with JavaScript, I'd say go for it. Potential negatives, of course, include the possibility that Facebook could sunset the business...
Can't see how CloudKit can be cross platform, unless Android users could be made to pay, that might work I guess.
At the very least the data in the cloud would need to be universally visible on a web REST API (CloudKit doesn’t support REST API), if it is not to be overly isolated inside the Apple ecosystem.
For this reason Parse will probably have a future so long as developers need to deliver a solution to a non iOS platform,in other words, cross platform solutions.
We can compare CloudKit with Parse using the following functionalities:
1) Dashboard
Everything that you can do in CloudKit Dashboard is create and edit data. Actually CloudKit Dashboard doesn’t look like a usual table view, which is a characteristic of Parse. The structure of models is represented in the section Record Types, and the data itself is stored in Default Zones (one Default Zone for Public database, and one for Private database). CloudKit Dashboard also allows you to see what’s included in your Team and with what privileges, as well as setup a data storage for working in the development and production mode.
2) Server-side logic
As a developer who worked with Parse, I can say that a feature called CloudCode is a very useful tool which lets you implement some tasks directly on the server, and even connect some libraries to it. So, for example, if you want to calculate statistics, you can totally do it with CloudCode.
CloudKit is deprived of this possibility. Apple should definitely build an analogue of CloudCode so that we could write code to run on the backend.
3) Background Task
CloudKit does not have Background Task which could be implemented whenever you need it. Thus, we lose the flexibility of data processing on the server.
4) Import / Export of data Parse lets you backup your data in JSON. This way you can be sure that it’ll be securely stored on your local server. Unfortunately, CloudKit doesn’t let you do that.
5) Analytics Parse supports data-based analytics. You can monitor traffic, frequency of requests, push-notification activities, track crashes complete with stack trackes and metadata. Besides, Parse lets you view your data on a graphic dashboard. CloudKit framework doesn’t provide the same feature.
6) Local storage support If you use Parse, you can store your data locally, right on your device (iOS or Android) In CloudKit, there is no mechanism which lets you choose how you’d like to store your data. But you’re welcome to use CoreData, or a third party service like Realm database for this purpose.
7) Cross-platform CloudKit only works with iOS and OSX devices. Parse supports a whole bunch of devices and OS, such as iOS, OSX, Android, Windows, Windows Phone.
8) Web-hosting Parse lets you create your own website and take a domain name on their platform. You get a Project Directory with website content, settings, and support requests. There is nothing like that in CloudKit.
9) REST API Parse lets you use REST API. There are a lot of third party libraries for receiving and transferring data which work with Parse. CloudKit doesn’t support REST API.
10) Support for social networks If your users log in through Facebook, Twitter, or another social network, their data is stored in Parse’s Users table. CloudKit also has a Users table, but I haven’t found a built-in mechanism for logging in through Facebook/Twitter accounts. However, you can use the information of the users who logged in through iCloud.
Problem in Parse I seen is: Technical support seems very quiet. I understand that their business model is to charge for support but lots of questions are unanswered on the user forums and I don't think thats good practice, especially where they are very simple things to resolve, filling in where the documentation is sparse, and the community can't resolve them.
Of course, i see some advantages of CloudKit:
1) The size of the storage is an obvious advantage of CloudKit. The amount of storage and data transfer allocated to your apps will scale and grow with every user - all the way up to 1 PB in asset storage and 10 TB in database storage - all for free. With Parse, on the other hand, users can exhaust your resources much faster.
2) CloudKit allows you to use containers. CKContainer is an object that encapsulates content associated with an app. In other words, CKContainer is responsible for communicating your app with a server. It also allows for increased flexibility, since a few apps may have a single container, and a single app may have access to a few containers. Every app has at least one container by default. Parse, on the other hand, provides a single database for every app. What’s more, CKContainer helps you protect and isolate data, and prevents unauthorized interception of data. CloudKit is in general a highly protected system, because it’s based on iCloud, and you know how passionate Apple is about security issues.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With