CloudKit与Parse的比较

8
对于我即将发布的一款应用程序,我需要一个后端,因此对我来说最大的问题是:
Cloudkit还是Parse?现在两者都是跨平台的(“CloudKit JS”),这使得这个问题更加困难。
你们中的一些人能列出各自的优缺点吗?或者如果你不知道其中一个,请就单一的经验给些建议。

当然,Parse.com现在已经不再是一个选择:http://blog.parse.com/announcements/moving-on/ - jcaron
4个回答

13

我使用过Parse,而且很喜欢它。事实上,我发现它大部分都很直观。

在我看来,他们的支持水平一般;然而,这个产品表现稳定可靠。

如果你对JavaScript感到舒适,我会说试试吧。当然,潜在的负面因素包括Facebook可能会终止业务...


5

我不明白CloudKit如何跨平台,除非让Android用户付费,这可能会起作用。

至少云中的数据需要在Web REST API上普遍可见(CloudKit不支持REST API),以免过度隔离在Apple生态系统内。

因此,只要开发人员需要向非iOS平台交付解决方案,即跨平台解决方案,Parse可能会有未来。

我们可以使用以下功能将CloudKit与Parse进行比较:

1)仪表板

您可以在CloudKit仪表板中创建和编辑数据。实际上,CloudKit仪表板看起来并不像是Parse的常规表视图。模型的结构表示在记录类型部分中,数据本身存储在默认区域中(公共数据库有一个默认区域,私有数据库也有一个)。 CloudKit仪表板还允许您查看团队中包含的内容及其权限,并设置数据存储以在开发和生产模式下工作。

2)服务器端逻辑

作为曾经使用Parse的开发人员,我可以说,称为CloudCode的功能是一种非常有用的工具,它可以让您直接在服务器上执行某些任务,甚至连接一些库。因此,例如,如果您想计算统计数据,您完全可以使用CloudCode。

CloudKit缺乏这种可能性。苹果肯定应该建立一个类似于CloudCode的模拟器,以便我们可以编写在后端上运行的代码。

3)后台任务

CloudKit没有后台任务,无论何时都可以实现。因此,我们失去了服务器上的数据处理灵活性。

4)导入/导出数据 Parse允许您在JSON中备份数据。这样,您可以确保它将安全地存储在本地服务器上。不幸的是,CloudKit不允许您这样做。

5)分析 Parse支持基于数据的分析。您可以监视流量、请求频率、推送通知活动、跟踪崩溃(包括堆栈跟踪和元数据)。此外,Parse允许您在图形仪表板上查看数据。CloudKit框架不提供相同的功能。

6)本地存储支持 如果您使用Parse,则可以将数据直接存储在设备上(iOS或Android) 在CloudKit中,没有机制可以让您选择如何存储数据。但是,您可以使用CoreData或第三方服务(例如Realm数据库)来实现此目的。

7)跨平台 CloudKit仅适用于iOS和OSX设备。Parse支持大量设备和操作系统,例如iOS、OSX、Android、Windows、Windows Phone。

8)Web托管 Parse允许您在其平台上创建自己的网站并使用域名。您将获得一个项目目录,其中包含网站内容、设置和支持请求。在CloudKit中没有这样的功能。

9) REST API Parse允许您使用REST API。有许多第三方库可用于接收和传输数据,这些库与Parse一起工作。CloudKit不支持REST API。

10) 社交网络支持 如果您的用户通过Facebook、Twitter或其他社交网络登录,则他们的数据将存储在Parse的用户表中。CloudKit也有一个用户表,但我没有找到通过Facebook/Twitter帐户登录的内置机制。但是,您可以使用通过iCloud登录的用户的信息。

我看到Parse存在的问题是:技术支持似乎非常安静。我知道他们的商业模式是收费支持,但很多问题在用户论坛上无法得到回答,我认为这不是一个好的做法,特别是对于那些非常简单的事情来说,在文档空缺的地方填写,社区无法解决它们。

当然,我看到CloudKit的一些优点:

1) 存储大小是CloudKit的明显优势。分配给您的应用程序的存储和数据传输量将随着每个用户的增加而扩展和增长-直到1 PB的资产存储和10 TB的数据库存储-全部免费提供。相反,使用Parse,用户可以更快地耗尽您的资源。

2) CloudKit允许您使用容器。CKContainer是一个封装与应用程序相关内容的对象。换句话说,CKContainer负责将您的应用程序与服务器通信。它还允许增加灵活性,因为少数应用程序可能有一个单一的容器,而单个应用程序可能可以访问几个容器。每个应用程序默认至少有一个容器。相反,Parse为每个应用程序提供单个数据库。此外,CKContainer可帮助您保护和隔离数据,并防止未经授权拦截数据。CloudKit总体上是一个高度受保护的系统,因为它基于iCloud,您知道苹果对安全问题有多么热情。


3
你的第九点是无效的。因此第七点也是无效的。请参阅https://developer.apple.com/library/prerelease/ios/documentation/DataManagement/Conceptual/CloutKitWebServicesReference/Introduction/Introduction.html。 - Edwin Vermeer
1
如果点9和点7无效,那么Parse只有一个重要的优点——“CloudCode”,对吧?所以这更像是一个偏好问题而不是缺少功能的问题?那就太好了! - aljlue
2
Parse.com 对我来说似乎是一个以销售为导向的产品,API 过于复杂。CloudKit 是一种易于使用的最先进的 MBaas,其基本理念是使跟踪更改并在客户端通过 PUSH 获取通知变得容易。 - János
Parse的最大弱点之一是CLP目前无法与指针配合使用,如果您想要保护您的应用程序,就必须了解这对应用的影响。 - eMdOS
1
第4点也可以通过CloudKit Web Services API来解决。 - Ramon

2
亚马逊刚刚迈出了一大步,增加了移动开发服务。也许现在还为时过早与Parse进行比较,但不久之后就可以了。
从移动页面https://aws.amazon.com/mobile/
AWS Mobile Hub是构建由AWS支持的移动应用程序的最快方式。它使您轻松地添加和配置应用程序的功能,包括用户身份验证、数据存储、后端逻辑、推送通知、内容传递和分析。构建应用程序后,AWS Mobile Hub为您提供易于访问的真实设备测试以及分析仪表板,以跟踪您的应用程序使用情况 - 一切都来自一个集成控制台。
因此,它听起来会做与Parse相同的事情。我还没有尝试过,但根据我的一个同事的说法,设置非常容易。

1

Parse宣布将在一年内关闭服务,因此您不应选择Parse。您可以查看亚马逊的AWS和App42 api。两者都是很好的BAAS解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接