CloudKit 与Firebase

如果您希望构建一个真实的应用程序,那么除了花哨的交互式前端之外,您还需要一个稳定且安全的后端。为您的应用程序选择佳后端可能具有挑战性。这些选项是可靠的,取决于许多问题,例如——您需要云服务吗?你应该运行自己的服务器吗?您应该使用Cloudkit、Firebase还是其他选项?

您应该 记住的件事是好的后端是No backend。如果您正在构建一个相当简单的应用程序,那么您不一定需要云服务器。? 如果您可以创建一种将数据作为文件保存到手机存储中的机制,则可以为您节省大量时间和金钱。但是,如果您正在处理敏感数据和信息,则应考虑定期保护和更新它们。在这种情况下,您需要一个服务器来存储您的数据。在这篇博客中,我们将通过区分优缺点来比较两种云服务器。

Firebase 和 CloudKit 可以互换是一种常见的误解。虽然它们都是无服务器存储解决方案,但在决定使用其中一个之前,您应该仔细考虑它们的功能。

一, firebase

根据 Google 在 Firebase 上的网站:

Firebase 是 Google 的移动应用程序开发平台,可帮助您构建、改进和发展您的应用程序。

优点

支持所有设备:如果您计划在 Android 和 iOS 中构建应用程序,那么 Firebase 是佳选择。Firebase 还支持 Windows 手机,如果您也有一个用于您正在构建的应用程序的网站,那就更容易了

价格便宜:除了支持所有设备外,Firebase 比 icloud 便宜。您也可以随用随付,但请仔细检查此功能,因为账单可能会很快上涨。

更快的营销:由于 Firebase 是谷歌的产品,它会自动与谷歌分析相关联,这使您可以更快地创建广告并向更广泛的公众营销应用程序。

无需解析数据:在使用服务器时,有时需要将 swift 对象转换为 json,这部分真的很痛苦。Firebase 不需要这样的想法。您无需担心这部分。

缺点

实时数据库限制:例如,如果您正在构建一个聊天应用程序,您将使用实时数据库作为您的主要存储,这有其缺点。它的主要问题之一是有限的查询能力。实时数据库没有提供过滤能力,因为整个数据库是一个巨大的JSON文件,很难进行复杂的查询。

供应商锁定:供应商锁定的问题与 Firebase 作为平台无关。在大多数情况下,这通常是使用 BaaS 解决方案的问题。但是,只要 Firebase 不提供任何迁移工具来将您的数据传输到另一个可以被视为骗局的平台。

对iOS应用支持较少:如前文所述,Firebase是谷歌的产品,通常对Android系统的支持比iOS好。Test Lab 可以轻松与 Android Studio 集成,支持多种 Android 设备进行测试。iOS 方面,仅在 2018 年,Test Lab 团队才宣布推出对 iOS 设备的内测支持;其中包括基本 UI 和一些可用的测试设备


cloudkit

根据苹果的文档:

CloudKit旨在实现可管理性、灵活性和强大功能。通过在容器中组织应用程序,CloudKit确保每个应用程序都是孤立的,因此其数据不会与其他应用程序纠缠在一起。专门的数据库和区域还可让您按访问类型或功能轻松分离应用程序信息。

CloudKit生成信息和设置我在之前的文章中已经详细讲解过了。

优点

不需要外部依赖——因为 CloudKit 是 Cocoa Touch 的一部分,你不需要用外部库加载你的应用程序。

身份验证问题已解决— CloudKit 使用用户的 iCloud 帐户,因此您无需在应用程序中设置额外的身份验证。所需要的只是用户在设备上使用他们的 iCloud 帐户登录。此外,有许多用户不想信任未知应用程序的数据,尤其是他们的电子邮件,因此您可以让他们有机会使用他们已经信任的平台。


推送通知——易于创建和使用——与其他解决方案相比,集成推送通知非常容易,无需创建额外的证书和跟踪环境。你不需要单独设置推送通知——一旦你在 Capabilities 中启用 CloudKit,它就完成了。此外,您可以自动生成通知,而且非常简单。例如,假设您希望在每次将项目输入到您的数据库时生成通知。您可以使用 CloudKit 自动执行此操作 — 只需CKQuerySubscription使用该firesOnRecordCreation选项创建一个即可!

不同的数据库类型——私有的、共享的、公共的——拥有不同的数据库类型可以让你作为开发人员从存储问题的痛苦中解脱出来。用户会将他们的数据保存在他们自己的 iCloud 帐户中。您要在所有用户之间公开的数据将可以在公共数据库中访问。用户还可以使用共享数据库与其他用户共享他们的数据。

易于过渡到生产——您只需按下一个名为“部署到生产”的按钮,瞧,该应用程序已准备好在生产中运行,无需重复。

强大的API——提供了很多方便的功能和非常强大的搜索。您可以在构建查询时使用NSPredicate和NSSortDescriptor对象,这使得查找和显示数据变得非常容易。

缺点

单一平台——您不能将 CloudKit 用于 Android 或其他平台应用程序。* 编辑——感谢@oriyentel 指出这一点——你实际上可以通过 Apple 提供的 JS 库从其他平台使用 CloudKit,但是如果你想使用私有/共享数据库功能,你仍然需要一个 iCloud 帐户。

跟踪和更的分析——您有某些跟踪机制,例如数据库使用情况或数据库日志,但您无法跟踪自定义事件并基于此生成使用数据。例如,您可以为自定义事件创建和保存数据库条目,但这是一种变通方法,与其他解决方案相比,它也不能为您提供足够的用户或使用信息,在其他解决方案中,您可以使用绘图选项、图形等。

  • 如果没有开发中的 iCloud 帐户,则无法访问数据——与其他平台相比,如果没有开发中的帐户,您将无法访问数据。为什么这很重要?测试应用内购买时,您无法使用其他帐户登录。如果您想将两者结合起来,您可能会遇到一些问题。

结论:

作为 iOS 开发人员和 Apple 爱好者,不幸的是,我更喜欢使用 Firebase。尽管与 Android 版本相比支持不是好的,但我觉得 Firebase 的结构和实现更容易。我以前在我的所有应用程序中都使用过 Firebase。我觉得 CloudKit 更安全,更容易为应用程序实现,但是一旦你集成了它,你就没有太多可用于营销目的的信息。虽然这是我个人的看法。随意使用您习惯的任何平台。

来源 https://zhuanlan.zhihu.com/p/434042319

相关文章