Apollo GraphQL

GitHub Action Status MIT license Supported Platforms: iOS, macOS, tvOS, watchOS

Swift 5.7 supported Swift Package Manager compatible CocoaPods compatible

☑️ Apollo Clients 用户调查
您最喜欢 Apollo iOS 的哪些方面?有哪些需要改进的地方?请填写一分钟调查,告诉我们您的想法。您的回复将帮助我们了解 Apollo iOS 的使用情况,从而更好地为您服务。

Apollo iOS 是一个强类型的、带有缓存功能的 GraphQL 客户端,使用 Swift 编写。

它允许您对 GraphQL 服务器执行查询和 mutation,并以查询特定的 Swift 类型返回结果。这意味着您无需处理 JSON 解析,也无需传递字典并手动将客户端值强制转换为正确的类型。您也不必自己编写模型类型,因为这些类型是从您的 UI 使用的 GraphQL 定义生成的。

由于生成的类型是查询特定的,因此您只能访问您在查询中实际指定的数据。如果您不请求某个字段,您将无法访问相应的属性。实际上,这意味着您现在可以依赖 Swift 类型检查器来确保数据访问中的错误在编译时显示。通过我们的 Xcode 集成,您可以方便地并行处理 UI 代码和相应的 GraphQL 定义,它甚至会验证您的查询文档,并以内联方式显示错误。

Apollo iOS 不仅仅是在 GraphQL 服务器上运行您的查询:它还会规范化查询结果,以构建数据的客户端缓存,并随着进一步的查询和 mutation 的运行而保持更新。这意味着您的 UI 始终在内部保持一致,并且可以使用所需的最少数量的查询与服务器上的状态完全保持同步。

模型与值语义、单向数据流和自动一致性管理的结合,带来了一个非常强大而优雅的编程模型,使您可以消除常见的粘合代码并大大简化应用程序的开发。

Apollo iOS 旨在符合 GraphQL 规范草案

开始使用

如果您是 Apollo iOS 的新手,我们推荐我们的入门指南

还有全面的文档,包括API 参考

Carthage/XCFramework 支持

Apollo iOS 仓库不再包含 Xcode 项目,因此,如果您使用 Carthage 或需要构建 XCFramework 以在您的开发环境中使用,您需要使用我们创建的 apollo-ios-xcframework 仓库,该仓库包含一个使用 Tuist 生成的 Xcode 项目,可用于此目的,并且标记与 Apollo iOS 的版本相匹配。

发布和更新日志

所有版本都已编目,并且我们维护着一份更新日志,其中详细介绍了该库的所有更改。

路线图

路线图是一份高级文档,描述了此项目的下一个主要步骤或里程碑。我们始终欢迎来自社区的功能请求和贡献。

贡献

如果您想贡献代码,请参阅Apollo 贡献者指南

维护者

谁是 Apollo?

Apollo 构建开源软件和图平台,以统一您的应用程序和服务中的 GraphQL。我们帮助您更快地交付产品,通过

了解如何使用 Apollo 构建

查看 Odyssey 学习平台,这是通过视频和交互式代码挑战开始您的 GraphQL 之旅的理想场所。加入 Apollo Community 与 GraphQL 社区互动并获得技术帮助。