Skip to content

Commit fd23182

Browse files
authored
New README info architecture and content
1 parent dde2893 commit fd23182

File tree

1 file changed

+105
-40
lines changed

1 file changed

+105
-40
lines changed

apollo-ios/README.md

Lines changed: 105 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
1-
<p align="center">
2-
<img src="https://raw.githubusercontent.com/apollographql/apollo-client-devtools/main/assets/apollo-wordmark.svg" alt="Apollo GraphQL"/>
3-
</p>
1+
<header>
2+
<div align="center">
3+
<a href="https://www.apollographql.com?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme"><img src="https://raw.githubusercontent.com/apollographql/apollo-client-devtools/main/assets/apollo-wordmark.svg" height="100" alt="Apollo Logo"></a>
4+
</div>
5+
<h1 align="center">Apollo iOS</h1>
6+
7+
**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.
8+
9+
➡️ [**Get Started with Apollo iOS →**](https://www.apollographql.com/docs/ios/get-started?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme)
10+
11+
<div align="center">
412

5-
<p align="center">
613
<a href="https://github.com/apollographql/apollo-ios-dev/actions/workflows/ci-tests.yml">
714
<img src="https://github.com/apollographql/apollo-ios-dev/actions/workflows/ci-tests.yml/badge.svg?branch=main" alt="GitHub Action Status">
815
</a>
@@ -11,10 +18,8 @@
1118
</a>
1219
<a href="Platforms">
1320
<img src="https://img.shields.io/badge/platforms-iOS%20%7C%20macOS%20%7C%20tvOS%20%7C%20watchOS-333333.svg" alt="Supported Platforms: iOS, macOS, tvOS, watchOS" />
14-
</a>
15-
</p>
21+
</a><br><br>
1622

17-
<p align="center">
1823
<a href="https://github.com/apple/swift">
1924
<img src="https://img.shields.io/badge/Swift-5.7-orange.svg" alt="Swift 5.7 supported">
2025
</a>
@@ -24,62 +29,122 @@
2429
<a href="https://cocoapods.org/pods/Apollo">
2530
<img src="https://img.shields.io/cocoapods/v/Apollo.svg" alt="CocoaPods compatible">
2631
</a>
32+
33+
</div>
34+
</header>
35+
36+
<p align="center">
37+
<img src="https://raw.githubusercontent.com/apollographql/apollo-client-devtools/main/assets/apollo-wordmark.svg" alt="Apollo GraphQL"/>
2738
</p>
2839

29-
| ☑️ Apollo Clients User Survey |
30-
| :----- |
31-
| 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. |
40+
## ❓ Why Choose Apollo iOS?
41+
42+
✅ Intuitive caching - Intelligent in-memory or SQLite out of the box<br>
43+
✅ Highly configurable code generation - The days of hand-writing models for network responses are over!<br>
44+
✅ Opinionated - Leads users down the "pit of success" and encourages good practices by default<br>
45+
✅ Production-tested - Powers countless apps worldwide that serve millions of end users<br>
46+
47+
## 🚀 Quick Start
48+
49+
### Add Apollo iOS to your dependencies list
50+
51+
```swift title="Package.swift"
52+
dependencies: [
53+
.package(
54+
url: "https://github.com/apollographql/apollo-ios.git",
55+
.upToNextMajor(from: "1.0.0")
56+
),
57+
],
58+
```
59+
60+
### Link the Apollo product to your package target
61+
62+
Any targets in your application that will use `ApolloClient` need to have a dependency on the `Apollo` product.
63+
64+
```swift title="Package.swift"
65+
.target(
66+
name: "MyApp",
67+
dependencies: [
68+
.product(name: "Apollo", package: "apollo-ios"),
69+
]
70+
)
71+
```
3272

33-
### Apollo iOS is a strongly-typed, caching GraphQL client, written in Swift
73+
> **Note:** Targets that only use Apollo's generated models don't need to be linked to the `Apollo` product.
3474
35-
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.
75+
## 💡 Resources
3676

37-
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.
77+
| Resource | Description | Link |
78+
| ----- | ----- | ----- |
79+
| **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) |
80+
| **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) |
81+
| **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) |
82+
| **VS Code Extension** | Enhanced development experience | [Install Extension →](https://marketplace.visualstudio.com/items?itemName=apollographql.vscode-apollo) |
83+
| **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/) |
84+
| **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) |
3885

39-
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.
86+
## 💬 Get Support
4087

41-
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.
88+
**Need help?** We're here for you:
4289

43-
Apollo iOS aims to comply with the [Working Draft of the GraphQL specification](https://spec.graphql.org/draft/).
90+
* [**Community Forum**](https://community.apollographql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Q\&A and discussions
91+
* [**GraphQL Discord**](https://discord.graphql.org) \- Real-time chat with the community
4492

45-
## Getting started
93+
## 🧑‍🚀 About Apollo
4694

47-
If you are new to Apollo iOS we recommend our [Getting Started](https://www.apollographql.com/docs/ios/get-started) guide.
95+
Deliver tomorrow's roadmap today with our comprehensive suite of API orchestration tools:
4896

49-
There is also [comprehensive documentation](https://www.apollographql.com/docs/ios/) including an [API reference](https://www.apollographql.com/docs/ios/docc/documentation/index).
97+
* [**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))
98+
* [**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
99+
* [**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
100+
* [**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
101+
* [**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))
50102

51-
### Carthage/XCFramework Support
103+
[**Explore the Complete Apollo Platform →**](https://www.apollographql.com/?utm_source=github&utm_medium=apollographql-_apollo-client&utm_campaign=readme)
52104

53-
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.
105+
## 🛠️ Maintained by
54106

55-
## Releases and changelog
107+
|Name|Username|
108+
|---|---|
109+
|Anthony Miller|[@anthonymdev](https://github.com/anthonymdev)|
110+
|Calvin Cestari|[@calvincestari](https://github.com/calvincestari)|
111+
|Jeff Auriemma|[@bignimbus](https://github.com/bignimbus)|
112+
|Zach FettersMoore|[@bobafetters](https://github.com/bobafetters)|
113+
114+
## 🗺️ Roadmap
115+
116+
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.
117+
118+
## 📣 Tell us what you think
119+
120+
| ☑️ Apollo Client User Survey |
121+
| :----- |
122+
| 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. |
56123

57-
[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.
124+
## 🗓️ Events
58125

59-
## Roadmap
126+
Join these live events to meet other GraphQL users and learn more:
60127

61-
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.
128+
🎪 [**GraphQL Summit 2025**](https://summit.graphql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme)
129+
Oct 6-8, 2025 • San Francisco
130+
*1000+ engineers, talks, workshops, and office hours*
62131

63-
## Contributing
132+
🌟 [**GraphQLConf 2025**](https://graphql.org/conf/2025)
133+
Sep 8-10, 2025 • Amsterdam
134+
*Celebrating 10 Years of GraphQL*
64135

65-
If you'd like to contribute, please refer to the [Apollo Contributor Guide](https://github.com/apollographql/apollo-ios-dev/blob/main/CONTRIBUTING.md).
136+
[**View All Events →**](https://www.apollographql.com/events?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme)
66137

67-
## Maintainers
138+
## 🏆 Contributing
68139

69-
- [@AnthonyMDev](https://github.com/AnthonyMDev)
70-
- [@calvincestari](https://github.com/calvincestari)
71-
- [@bignimbus](https://github.com/bignimbus)
72-
- [@bobafetters](https://github.com/bobafetters)
140+
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.
73141

74-
## Who is Apollo?
142+
**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.
75143

76-
[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:
144+
## 🤝 Code of Conduct
77145

78-
- [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.
79-
- [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.
80-
- [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).
81-
- [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.
146+
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.
82147

83-
## Learn how to build with Apollo
148+
## 🪪 License
84149

85-
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.
150+
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).

0 commit comments

Comments
 (0)