对于我即将推出的应用程序,我需要一个后端。所以对我来说最大的问题是:
Cloudkit 还是 Parse?现在两者都是跨平台的(“CloudKit JS”),这使得问题变得更加困难。
你们中的一些人可以列出每个的优点/缺点吗?或者,如果您两者都不知道,请就单次体验提供一些建议。
4 回答
我用过 Parse,并且喜欢它。事实上,我发现它主要是直观的。
在我看来,他们的支持还可以;但是,该产品表现出色。
如果你对 JavaScript 感到满意,我会说去吧。当然,潜在的负面影响包括 Facebook 可能会终止该业务……
看不到 CloudKit 是如何跨平台的,除非可以让 Android 用户付费,我猜这可能会奏效。
至少云中的数据需要在 Web REST API 上普遍可见(CloudKit 不支持 REST API),如果它不是在 Apple 生态系统中过度隔离的话。
出于这个原因,只要开发人员需要为非 iOS 平台提供解决方案,也就是跨平台解决方案,Parse 可能会有一个未来。
我们可以使用以下功能将 CloudKit 与 Parse 进行比较:
1) 仪表板
您可以在 CloudKit Dashboard 中执行的所有操作都是创建和编辑数据。实际上 CloudKit Dashboard 看起来不像通常的表格视图,这是 Parse 的一个特点。模型的结构在记录类型部分中表示,数据本身存储在默认区域中(一个默认区域用于公共数据库,一个用于私有数据库)。CloudKit 仪表板还允许您查看团队中包含的内容以及具有哪些权限,以及设置数据存储以在开发和生产模式下工作。
2)服务器端逻辑
作为使用 Parse 的开发人员,我可以说 CloudCode 是一个非常有用的工具,它可以让您直接在服务器上实现一些任务,甚至可以将一些库连接到它。因此,例如,如果您想计算统计数据,您完全可以使用 CloudCode 来完成。
CloudKit 被剥夺了这种可能性。Apple 绝对应该构建 CloudCode 的类似物,以便我们可以编写代码在后端运行。
3)后台任务
CloudKit 没有后台任务,可以在您需要时执行。因此,我们失去了在服务器上处理数据的灵活性。
4) 导入/导出数据 Parse 可让您以 JSON 格式备份数据。通过这种方式,您可以确保它将安全地存储在您的本地服务器上。不幸的是,CloudKit 不允许你这样做。
5) Analytics Parse 支持基于数据的分析。您可以监控流量、请求频率、推送通知活动、使用堆栈跟踪和元数据跟踪崩溃。此外,Parse 允许您在图形仪表板上查看数据。CloudKit 框架不提供相同的功能。
6) 本地存储支持 如果您使用 Parse,您可以将数据存储在本地,直接在您的设备(iOS 或 Android)上。在 CloudKit 中,没有任何机制可以让您选择存储数据的方式。但欢迎您使用 CoreData 或第三方服务(如 Realm 数据库)来实现此目的。
7) 跨平台 CloudKit 仅适用于 iOS 和 OSX 设备。Parse 支持一大堆设备和操作系统,例如 iOS、OSX、Android、Windows、Windows Phone。
8) Web-hosting 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,而且您知道 Apple 对安全问题的热情。
亚马逊刚刚迈出了一大步,为移动开发添加了一项服务。也许现在将它与 Parse 进行比较还为时过早,但不会太久。
从移动页面https://aws.amazon.com/mobile/:
AWS Mobile Hub 是构建由 AWS 提供支持的移动应用程序的最快方式。它使您可以轻松地为您的应用程序添加和配置功能,包括用户身份验证、数据存储、后端逻辑、推送通知、内容交付和分析。构建应用程序后,AWS Mobile Hub 可让您轻松访问在真实设备上进行的测试,以及用于跟踪应用程序使用情况的分析仪表板——所有这些都来自一个集成的控制台。
所以听起来它会做所有 Parse 也在做的事情。我还没有尝试过,但根据我的一位同事的说法,它很容易设置。
Parse 已宣布将在一年内关闭服务,因此您不应选择 Parse。您可以查看 AWS 表单 Amazon 和 App42 api。两者都是很好的 BAAS 解决方案。