From fd23182cc4525af0f603a6b4b7f9fe3b06d85971 Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Fri, 6 Jun 2025 13:40:29 -0400 Subject: [PATCH 1/4] New README info architecture and content --- apollo-ios/README.md | 145 +++++++++++++++++++++++++++++++------------ 1 file changed, 105 insertions(+), 40 deletions(-) diff --git a/apollo-ios/README.md b/apollo-ios/README.md index c0516a01f..e610fa98d 100644 --- a/apollo-ios/README.md +++ b/apollo-ios/README.md @@ -1,8 +1,15 @@ -

- Apollo GraphQL -

+
+
+ Apollo Logo +
+

Apollo iOS

+ +**The industry-leading GraphQL client in Swift for iOS, macOS, watchOS, tvOS, and more.** Apollo iOS delivers powerful caching, robust code generation, and intuitive APIs to accelerate your app development. + +➡️ [**Get Started with Apollo iOS →**](https://www.apollographql.com/docs/ios/get-started?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) + +
-

GitHub Action Status @@ -11,10 +18,8 @@ Supported Platforms: iOS, macOS, tvOS, watchOS - -

+

-

Swift 5.7 supported @@ -24,62 +29,122 @@ CocoaPods compatible + +

+
+ +

+ Apollo GraphQL

-| ☑️ Apollo Clients User Survey | -| :----- | -| What do you like best about Apollo iOS? What needs to be improved? Please tell us by taking a [one-minute survey](https://docs.google.com/forms/d/e/1FAIpQLSczNDXfJne3ZUOXjk9Ursm9JYvhTh1_nFTDfdq3XBAFWCzplQ/viewform?usp=pp_url&entry.1170701325=Apollo+iOS&entry.204965213=Readme). Your responses will help us understand Apollo iOS usage and allow us to serve you better. | +## ❓ Why Choose Apollo iOS? + +✅ Intuitive caching - Intelligent in-memory or SQLite out of the box
+✅ Highly configurable code generation - The days of hand-writing models for network responses are over!
+✅ Opinionated - Leads users down the "pit of success" and encourages good practices by default
+✅ Production-tested - Powers countless apps worldwide that serve millions of end users
+ +## 🚀 Quick Start + +### Add Apollo iOS to your dependencies list + +```swift title="Package.swift" +dependencies: [ + .package( + url: "https://github.com/apollographql/apollo-ios.git", + .upToNextMajor(from: "1.0.0") + ), +], +``` + +### Link the Apollo product to your package target + +Any targets in your application that will use `ApolloClient` need to have a dependency on the `Apollo` product. + +```swift title="Package.swift" +.target( + name: "MyApp", + dependencies: [ + .product(name: "Apollo", package: "apollo-ios"), + ] +) +``` -### Apollo iOS is a strongly-typed, caching GraphQL client, written in Swift +> **Note:** Targets that only use Apollo's generated models don't need to be linked to the `Apollo` product. -It allows you to execute queries and mutations against a GraphQL server, and returns results as query-specific Swift types. This means you don’t have to deal with parsing JSON, or passing around dictionaries and making clients cast values to the right type manually. You also don't have to write model types yourself, because these are generated from the GraphQL definitions your UI uses. +## 💡 Resources -As the generated types are query-specific, you're only able to access data you actually specify as part of a query. If you don't ask for a field, you won't be able to access the corresponding property. In effect, this means you can now rely on the Swift type checker to make sure errors in data access show up at compile time. With our Xcode integration, you can conveniently work with your UI code and corresponding GraphQL definitions side by side, and it will even validate your query documents, and show errors inline. +| Resource | Description | Link | +| ----- | ----- | ----- | +| **Getting Started Guide** | Complete setup and first query | [Start Here →](https://www.apollographql.com/docs/ios/get-started?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) | +| **Full Documentation** | Comprehensive guides and examples | [Read Docs →](https://www.apollographql.com/docs/ios?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) | +| **API Reference** | Complete API documentation | [Browse API →](https://www.apollographql.com/docs/react/api/apollo-client?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) | +| **VS Code Extension** | Enhanced development experience | [Install Extension →](https://marketplace.visualstudio.com/items?itemName=apollographql.vscode-apollo) | +| **DevTools** | Debug your GraphQL apps | [Chrome](https://chrome.google.com/webstore/detail/apollo-client-devtools/jdkknkkbebbapilgoeccciglkfbmbnfm) \| [Firefox](https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/) | +| **Free Course** | Apollo iOS and Swift: Codegen and Queries | [Take Course →](https://www.apollographql.com/tutorials/apollo-ios-swift-part1?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) | -Apollo iOS does more than simply run your queries against a GraphQL server: It normalizes query results to construct a client-side cache of your data, which is kept up to date as further queries and mutations are run. This means your UI is always internally consistent, and can be kept fully up-to-date with the state on the server with the minimum number of queries required. +## 💬 Get Support -This combination of models with value semantics, one way data flow, and automatic consistency management, leads to a very powerful and elegant programming model that allows you to eliminate common glue code and greatly simplifies app development. +**Need help?** We're here for you: -Apollo iOS aims to comply with the [Working Draft of the GraphQL specification](https://spec.graphql.org/draft/). +* [**Community Forum**](https://community.apollographql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Q\&A and discussions +* [**GraphQL Discord**](https://discord.graphql.org) \- Real-time chat with the community -## Getting started +## 🧑‍🚀 About Apollo -If you are new to Apollo iOS we recommend our [Getting Started](https://www.apollographql.com/docs/ios/get-started) guide. +Deliver tomorrow's roadmap today with our comprehensive suite of API orchestration tools: -There is also [comprehensive documentation](https://www.apollographql.com/docs/ios/) including an [API reference](https://www.apollographql.com/docs/ios/docc/documentation/index). +* [**Apollo Client**](https://www.apollographql.com/docs/react?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Type-safe apps with GraphQL-powered on-device caching ([React](https://www.apollographql.com/docs/react?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme), [iOS](https://www.apollographql.com/docs/ios?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme), [Kotlin](https://www.apollographql.com/docs/kotlin?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme)) +* [**Apollo Connectors**](https://www.apollographql.com/connectors?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Compose all your GraphQL and REST APIs into one GraphQL endpoint +* [**Apollo MCP Server**](https://www.apollographql.com/ai?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- AI needs APIs. The fastest way to ship reliable AI experiences +* [**Apollo Router**](https://www.apollographql.com/docs/router?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Scale your APIs seamlessly with GraphQL Federation, Security, Auth, and more +* [**GraphOS**](https://www.apollographql.com/graphos?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Deploy, manage, govern, and explore your APIs ([start for free, no credit card needed](https://www.apollographql.com/pricing?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme)) -### Carthage/XCFramework Support +[**Explore the Complete Apollo Platform →**](https://www.apollographql.com/?utm_source=github&utm_medium=apollographql-_apollo-client&utm_campaign=readme) -The Apollo iOS repo no longer contains an Xcode project, as a result if you are using Carthage or need to build XCFrameworks for use in your development environment you will want to use the [apollo-ios-xcframework](https://github.com/apollographql/apollo-ios-xcframework) repo we have created that contains an Xcode project generated with Tuist that can be used for this purpose and is tagged to match the releases of Apollo iOS. +## 🛠️ Maintained by -## Releases and changelog +|Name|Username| +|---|---| +|Anthony Miller|[@anthonymdev](https://github.com/anthonymdev)| +|Calvin Cestari|[@calvincestari](https://github.com/calvincestari)| +|Jeff Auriemma|[@bignimbus](https://github.com/bignimbus)| +|Zach FettersMoore|[@bobafetters](https://github.com/bobafetters)| + +## 🗺️ Roadmap + +We regularly update our [public roadmap](https://github.com/apollographql/apollo-ios/blob/main/ROADMAP.md) with the status of our work-in-progress and upcoming features. + +## 📣 Tell us what you think + +| ☑️ Apollo Client User Survey | +| :----- | +| What do you like best about Apollo iOS? What needs to be improved? Please tell us by taking a [one-minute survey](https://docs.google.com/forms/d/e/1FAIpQLSczNDXfJne3ZUOXjk9Ursm9JYvhTh1_nFTDfdq3XBAFWCzplQ/viewform?usp=pp_url&entry.1170701325=Apollo+iOS&entry.204965213=Readme). Your responses will help us understand Apollo iOS usage and allow us to serve you better. | -[All releases](https://github.com/apollographql/apollo-ios/releases) are catalogued and we maintain a [changelog](https://github.com/apollographql/apollo-ios/blob/main/CHANGELOG.md) which details all changes to the library. +## 🗓️ Events -## Roadmap +Join these live events to meet other GraphQL users and learn more: -The [roadmap](https://github.com/apollographql/apollo-ios/blob/main/ROADMAP.md) is a high-level document that describes the next major steps or milestones for this project. We are always open to feature requests, and contributions from the community. +🎪 [**GraphQL Summit 2025**](https://summit.graphql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) + Oct 6-8, 2025 • San Francisco + *1000+ engineers, talks, workshops, and office hours* -## Contributing +🌟 [**GraphQLConf 2025**](https://graphql.org/conf/2025) + Sep 8-10, 2025 • Amsterdam + *Celebrating 10 Years of GraphQL* -If you'd like to contribute, please refer to the [Apollo Contributor Guide](https://github.com/apollographql/apollo-ios-dev/blob/main/CONTRIBUTING.md). +[**View All Events →**](https://www.apollographql.com/events?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) -## Maintainers +## 🏆 Contributing -- [@AnthonyMDev](https://github.com/AnthonyMDev) -- [@calvincestari](https://github.com/calvincestari) -- [@bignimbus](https://github.com/bignimbus) -- [@bobafetters](https://github.com/bobafetters) +Thank you for your interest in submitting a Pull Request to Apollo iOS! Read our [guidelines](https://github.com/apollographql/apollo-ios-dev/blob/main/CONTRIBUTING.md) first, and don't hesitate to get in touch. -## Who is Apollo? +**New to open source?** Check out our [**Good First Issues**](https://github.com/apollographql/apollo-ios/issues?q=is%3Aopen%20label%3A%22%3Abooks%3A%20good-first-issue%22) to get started. -[Apollo](https://apollographql.com/) builds open-source software and a graph platform to unify GraphQL across your apps and services. We help you ship faster with: +## 🤝 Code of Conduct -- [Apollo Studio](https://www.apollographql.com/studio/develop/) – A free, end-to-end platform for managing your GraphQL lifecycle. Track your GraphQL schemas in a hosted registry to create a source of truth for everything in your graph. Studio provides an IDE (Apollo Explorer) so you can explore data, collaborate on queries, observe usage, and safely make schema changes. -- [Apollo Federation](https://www.apollographql.com/apollo-federation) – The industry-standard open architecture for building a distributed graph. Use Apollo’s gateway to compose a unified graph from multiple subgraphs, determine a query plan, and route requests across your services. -- [Apollo Client](https://www.apollographql.com/apollo-client/) – The most popular GraphQL client for the web. Apollo also builds and maintains [Apollo iOS](https://github.com/apollographql/apollo-ios) and [Apollo Kotlin](https://github.com/apollographql/apollo-kotlin). -- [Apollo Server](https://www.apollographql.com/docs/apollo-server/) – A production-ready JavaScript GraphQL server that connects to any microservice, API, or database. Compatible with all popular JavaScript frameworks and deployable in serverless environments. +Please read our [Code of Conduct](https://community.apollographql.com/faq). This applies to any space run by Apollo, including our GitHub repositories and the Community Forum. The Code of Conduct reflects our commitment to making the Apollo Community a welcoming and safe space in which individuals can interact. -## Learn how to build with Apollo +## 🪪 License -Check out the [Odyssey](https://odyssey.apollographql.com/) learning platform, the perfect place to start your GraphQL journey with videos and interactive code challenges. Join the [Apollo Community](https://community.apollographql.com/) to interact with and get technical help from the GraphQL community. +Source code in this repository is available under the terms of the MIT License. Read the full text [here](https://github.com/apollographql/apollo-ios/blob/main/LICENSE). From a051df28c62cb2e14d922d43556660cd387d209b Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Fri, 6 Jun 2025 13:42:59 -0400 Subject: [PATCH 2/4] Update README.md --- apollo-ios/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apollo-ios/README.md b/apollo-ios/README.md index e610fa98d..afe357374 100644 --- a/apollo-ios/README.md +++ b/apollo-ios/README.md @@ -117,7 +117,7 @@ We regularly update our [public roadmap](https://github.com/apollographql/apollo ## 📣 Tell us what you think -| ☑️ Apollo Client User Survey | +| ☑️ Apollo iOS User Survey | | :----- | | What do you like best about Apollo iOS? What needs to be improved? Please tell us by taking a [one-minute survey](https://docs.google.com/forms/d/e/1FAIpQLSczNDXfJne3ZUOXjk9Ursm9JYvhTh1_nFTDfdq3XBAFWCzplQ/viewform?usp=pp_url&entry.1170701325=Apollo+iOS&entry.204965213=Readme). Your responses will help us understand Apollo iOS usage and allow us to serve you better. | From 3f5ddfd0b7dba3c8b99ffd5f9752eaae9506d1d7 Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Thu, 3 Jul 2025 12:22:03 -0400 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: Calvin Cestari <146856+calvincestari@users.noreply.github.com> --- apollo-ios/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apollo-ios/README.md b/apollo-ios/README.md index afe357374..5bbf0e449 100644 --- a/apollo-ios/README.md +++ b/apollo-ios/README.md @@ -139,7 +139,7 @@ Join these live events to meet other GraphQL users and learn more: Thank you for your interest in submitting a Pull Request to Apollo iOS! Read our [guidelines](https://github.com/apollographql/apollo-ios-dev/blob/main/CONTRIBUTING.md) first, and don't hesitate to get in touch. -**New to open source?** Check out our [**Good First Issues**](https://github.com/apollographql/apollo-ios/issues?q=is%3Aopen%20label%3A%22%3Abooks%3A%20good-first-issue%22) to get started. +**New to open source?** Check out our [**Good First Issues**](https://github.com/apollographql/apollo-ios/labels/good%20first%20issue) to get started. ## 🤝 Code of Conduct From 9ac078c7a44ae06a506119eb87f5b14fe61172a7 Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Thu, 3 Jul 2025 12:24:48 -0400 Subject: [PATCH 4/4] More code review updates --- apollo-ios/README.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/apollo-ios/README.md b/apollo-ios/README.md index 5bbf0e449..bb1fb6d62 100644 --- a/apollo-ios/README.md +++ b/apollo-ios/README.md @@ -9,6 +9,7 @@ ➡️ [**Get Started with Apollo iOS →**](https://www.apollographql.com/docs/ios/get-started?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme)
+

GitHub Action Status @@ -33,10 +34,6 @@
-

- Apollo GraphQL -

- ## ❓ Why Choose Apollo iOS? ✅ Intuitive caching - Intelligent in-memory or SQLite out of the box
@@ -95,8 +92,8 @@ Any targets in your application that will use `ApolloClient` need to have a depe Deliver tomorrow's roadmap today with our comprehensive suite of API orchestration tools: * [**Apollo Client**](https://www.apollographql.com/docs/react?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Type-safe apps with GraphQL-powered on-device caching ([React](https://www.apollographql.com/docs/react?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme), [iOS](https://www.apollographql.com/docs/ios?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme), [Kotlin](https://www.apollographql.com/docs/kotlin?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme)) -* [**Apollo Connectors**](https://www.apollographql.com/connectors?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Compose all your GraphQL and REST APIs into one GraphQL endpoint -* [**Apollo MCP Server**](https://www.apollographql.com/ai?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- AI needs APIs. The fastest way to ship reliable AI experiences +* [**Apollo Connectors**](https://www.apollographql.com/graphos/apollo-connectors?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Compose all your GraphQL and REST APIs into one GraphQL endpoint +* [**Apollo MCP Server**](https://www.apollographql.com/apollo-mcp-server?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- AI needs APIs. The fastest way to ship reliable AI experiences * [**Apollo Router**](https://www.apollographql.com/docs/router?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Scale your APIs seamlessly with GraphQL Federation, Security, Auth, and more * [**GraphOS**](https://www.apollographql.com/graphos?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Deploy, manage, govern, and explore your APIs ([start for free, no credit card needed](https://www.apollographql.com/pricing?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme))