24

With CloudKit, you can focus on your client-side app development and let iCloud eliminate the need to write server-side application logic. CloudKit provides you with Authentication, private and public database, structured and asset storage services — all for free with very high limits.

You cannot upload any code to run on Apple's servers?

I've heard it being compared to Google App Engine and other cloud computing platforms, but without the ability to run your own code, isn't the whole thing pretty limited and not really comparable?

For example, if I want to build a news app which periodically pushes stories on topics that the user is interested, then this can't be done just using CloudKit because I would need scheduled jobs and data processing on the server.

Any thoughts?

4

5 回答 5

24

服务器端

正如您所说,CloudKit 不允许服务器端代码。

但也有可能。

克朗斯

您不想每天都连接到 iCloud Dashboard 以通过添加记录来执行推送。这里的一个解决方案是在 mac 服务器上编写一个应用程序(我猜 mac mini 作为服务器将在 CloudKit 中变得更流行),Daily CKRecord每天都会添加一个新的。

订阅

订阅概念是客户端注册特定更新。您可以创建一个名为Dailyinstance 的记录类型并让用户注册到它。您应该查看Apple 文档和 WWDC14 视频(即使订阅不详细,这是一个很好的起点)。

好消息是推送通知与订阅概念相关联。所以基本上你说:向我发送一个通知,为每个添加的新CKRecord类型Daily

BaaS 派对

使用 CloudKit 有什么意义(与 Parse 和其他相比?)

  • 价格:CloudKit 的定价非常好
  • 准备就绪:在 XCode 中单击 2 次,您就可以开始了
  • 用户一致性:您可以通过他们的 iCloud 帐户免费登录他的所有设备。具有非常好的隐私系统。您可以与智能系统建立关系。

但:

  • 您坚持使用 Apple 平台。我们甚至不知道我们是否可以导出数据..
  • 目前仅以数据为中心(无服务器端代码)
  • CloudKit 仪表板太有限

未来

CloudKit 仍然很新。在 WWDC 上,它背后的一些人让我明白他们仍在努力工作。我敢打赌,他们正在研究两个重点:

  • 通过远程计划任务执行服务器端代码
  • CloudKit for Analytics(可视化方面)

编辑:苹果公司的人完全意识到并担心缺乏对数据的网络访问。这意味着有一天可以从其他平台访问。我在评论中读到,如果 CloudKit 不是更好,Apple 可能会购买 Parse,AFAIK 他们试图购买 Parse(据说是技能购买,但我们真的不知道)。

更新 WWDC15

CloudKit 现在可以在 JS 中使用,并且现在可以使用一些仪表板。等着瞧。

2016 年 2 月更新

CloudKit 现在支持服务器到服务器的 Web 服务请求

Web 服务参考

于 2014-07-13T09:10:48.467 回答
2

您不能上传任何代码以在 Apple 的服务器上运行?

你可以,你不能。您不能将基于代码/SOAP 的 Web 服务上传到服务器,取而代之的是,您可以在服务器上上传/存储观察者,称为订阅。

整个事情非常有限,没有可比性?

我想说 inCloudKit和 in客户端通过更窄更健壮的接口MBaas与服务器通信:您不能上传异国情调的 Web 服务来进行 XML 解析、数据库操作并基于它触发推送通知,但架构允许您执行 4 个基本操作在数据存储上,并且订阅客户端可以获得有关在表上执行的 INSERT / UPDATE / DELETE 操作的通知。RestFull

我认为MBaas这只是服务器 - 客户端架构演变的下一步。首先,它似乎是有限制的,但您可以像在基于 SOAP 的 Web 服务世界中那样做所有事情。开发非常快速/可扩展/使用舒适,并且更容易控制权限/设置、维护服务器、安全性等事情,几乎不需要任何努力。

于 2015-03-24T10:56:19.527 回答
2

某些情况下,我们不需要服务器端的逻辑,只存储静态数据就可以覆盖所有的使用场景。

在这种情况下,如果有一个可以免费访问的存储空间来存储一些东西,那将非常有帮助。CloudKit 提供了这样的东西,而不是完整的服务平台。

是的,它是有限的。无论如何,对某些人来说可能有用。例如,您的情况实际上可以支持 CloudKit。虽然 CloudKit 只是一个静态存储,但它支持订阅。它监视一组条件并将事件通知推送到客户端。幸运的是,CloudKit 支持的唯一后台作业功能正是您所需要的。

无论如何,如果您需要更多,那么您可能需要考虑完整的服务器。通常具有简单服务器端代码执行支持的简单Web 服务也受到限制。

于 2014-06-06T04:20:04.287 回答
1

信不信由你,你实际上可以用这种方法走得很远。

我没有使用过 CloudKit,但我可以为您描述一下我的应用程序堆栈:

AngularJS(或您最喜欢的客户端 HTML 渲染框架):单个页面将托管一系列由路由器选择的模板/控制器,并由用户更改锚点以选择他们所在的页面。

Firebase.io(或您最喜欢的云存储):任何动态数据都会进入云文档存储。控制器需要在客户端加载数据并渲染模板,当数据发生变化时,将数据发回。这也提供了身份验证和授权,因为您可以限制对数据的访问。

现在您需要一个地方来提供 HTML/CSS/JS/图像...这不需要“服务器端代码执行”,只需一个可以放置资产的 Web 服务器。

使用这种技术,您可以将所有用户的主题存储在该用户的数据库中,并且当页面加载时,将这些主题的所有源(也存储在数据库中)完全聚合到客户端。我可以看到,您的示例应用程序中没有任何实际需要服务器端执行的内容,只要您拥有可以为您提供身份验证和授权服务的云存储,以及用于提供静态资产的“哑”Web 服务器。

于 2014-06-06T00:01:35.693 回答
0

CloudKit 不是一个成熟的网络托管服务。相反,它是用于 iCloud 的 SDK。您不应该在那里放置一个网站,而只是存储您可能希望在多个应用程序或平台中使用的用户数据。

iCloud API 使您的应用程序能够将应用程序数据存储在 iCloud 中,从而使您的应用程序自动保持最新。使用 iCloud 为您的用户在支持 iCloud 的设备上提供一致且无缝的体验。

于 2014-06-05T23:28:36.327 回答