From 1e121880f211134b0739d0db0d25a0a5699cd685 Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Fri, 6 Jun 2025 12:33:28 -0400 Subject: [PATCH 1/8] New README info architecture and content --- README.md | 131 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 103 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 240bafc428d..35889f00221 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,14 @@ -
+
+
+ Apollo Logo +
+

Apollo Kotlin

+ +**The industry-leading GraphQL client in Kotlin, made for Android, Kotlin Multiplatform, and more.** Apollo Kotlin delivers powerful caching, code generation, intuitive APIs, and comprehensive developer tools to accelerate your app development. -

- Apollo Client -

+➡️ [**Get Started with Apollo Kotlin →**](https://www.apollographql.com/docs/kotlin?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme) + +
[![Discourse](https://img.shields.io/discourse/topics?label=Discourse&server=https%3A%2F%2Fcommunity.apollographql.com&logo=discourse&color=467B95&style=flat-square)](http://community.apollographql.com/new-topic?category=Help&tags=mobile,client) [![Slack](https://img.shields.io/static/v1?label=kotlinlang&message=apollo-kotlin&color=A97BFF&logo=slack&style=flat-square)](https://app.slack.com/client/T09229ZC6/C01A6KM1SBZ) @@ -15,44 +21,113 @@ [![Revved up by Develocity](https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A&style=flat-square)](https://ge.apollographql.com/scans) -
+
+ + + +## ❓ Why Choose Apollo Kotlin? + + ✅ Intuitive, powerful caching - intelligent in-memory or SQLite caching out of the box
+ ✅ Excellent support for modern Android and Kotlin Multiplatform apps
+ ✅ Always up-to-date - we prioritize support for the latest versions of Kotlin, Gradle, and more
+ ✅ GraphOS ready - turnkey support for Persisted Queries, and `@defer`
+ ✅ Production-tested - Powers countless apps worldwide that serve millions of end users
+ + ## 🚀 Quick Start + +If you are new to GraphQL, check out [the tutorial](https://www.apollographql.com/tutorials/apollo-kotlin-android-part1) that will guide you through building an Android app using Apollo. + +If you'd like to add Apollo Kotlin to an existing project, follow the steps below: + +Add the plugin to your `build.gradle.kts`: + +```kotlin +plugins { + id("com.apollographql.apollo") version "x.x.x" // set to your current version +} +``` + +Add the runtime dependency: + +```kotlin +dependencies { + implementation("com.apollographql.apollo:apollo-runtime:x.x.x") // set to your current version +} +``` + +Set the package name to use for the generated models: + +```kotlin +apollo { + service("service") { + packageName.set("com.example") + } +} +``` + +## 💡 Resources + +| Resource | Description | Link | +| ----- | ----- | ----- | +| **Full Documentation** | Comprehensive guides and examples | [Read Docs →](https://www.apollographql.com/docs/kotlin?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme) | +| **API Reference** | Complete API documentation | [Browse Kdoc →](https://apollographql.github.io/apollo-kotlin/kdoc/older/4.2.0/index.html?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme) | +| **IntelliJ Plugin** | Enhanced development experience | [Install Plugin →](https://plugins.jetbrains.com/plugin/20645-apollo-graphql) | +| **Free Course** | Learn GraphQL and Apollo Client | [Take Course →](https://www.apollographql.com/tutorials/apollo-kotlin-android-part1?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme) | + +## 🧑‍🚀 About Apollo + +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-kotlin&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-kotlin&utm_campaign=readme), [iOS](https://www.apollographql.com/docs/ios?utm_medium=github&utm_source=apollographql_apollo-kotlin&utm_campaign=readme), [Kotlin](https://www.apollographql.com/docs/kotlin?utm_medium=github&utm_source=apollographql_apollo-kotlin&utm_campaign=readme)) +* [**Apollo Connectors**](https://www.apollographql.com/connectors?utm_source=github&utm_medium=apollographql_apollo-kotlin&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-kotlin&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-kotlin&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-kotlin&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-kotlin&utm_campaign=readme)) + +[**Explore the Complete Apollo Platform →**](https://www.apollographql.com/?utm_source=github&utm_medium=apollographql-_apollo-kotlin&utm_campaign=readme) + +## 🛠️ Maintained by +|Name|Username| +|---|---| +|Benoit Lubek|[@bod](https://github.com/bod)| +|Jeff Auriemma|[@bignimbus](https://github.com/bignimbus)| +|Martin Bonnin|[@martinbonnin](https://github.com/martinbonnin)| -| ☑️ Apollo Clients User Survey | -|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| What do you like best about Apollo Kotlin? 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+Kotlin&entry.204965213=Readme). Your responses will help us understand Apollo Kotlin usage and allow us to serve you better. | +## 🗺️ Roadmap -## 🚀 Apollo Kotlin +We regularly update our [public roadmap](https://github.com/apollographql/apollo-kotlin/blob/main/ROADMAP.md) with the status of our work-in-progress and upcoming features. -Apollo Kotlin is a strongly typed GraphQL client that generates Kotlin models for your GraphQL operations. +## 📣 Tell us what you think -Apollo Kotlin executes operations against a GraphQL server and returns results as operation-specific Kotlin types. This means you don't have to deal with parsing JSON, or passing around `Map`s 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 app uses. +| ☑️ Apollo Client User Survey | +| :----- | +| What do you like best about Apollo Client? 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+Kotlin&entry.204965213=Readme). Your responses will help us understand Apollo Client usage and allow us to serve you better. | -Because generated types are operation-specific, you can only access data that you actually specify as part of an operation. If you don't ask for a particular field in an operation, you can't access the corresponding property on the returned data structure. +## 🗓️ Events -This library is designed with Android in mind, but you can use it in any Kotlin application, including KMP ([Kotlin Multi Platform](https://kotlinlang.org/docs/multiplatform.html)). +Join these live events to meet other GraphQL users and learn more: -Apollo Kotlin aims to comply with the [Working Draft of the GraphQL specification](https://spec.graphql.org/draft/). +🎪 [**GraphQL Summit 2025**](https://summit.graphql.com?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme) + Oct 6-8, 2025 • San Francisco + *1000+ engineers, talks, workshops, and office hours* -## 📚 Documentation +🌟 [**GraphQLConf 2025**](https://graphql.org/conf/2025) + Sep 8-10, 2025 • Amsterdam + *Celebrating 10 Years of GraphQL* -All Apollo Kotlin documentation, including caching and helpful recipes, can be found at:
-[https://www.apollographql.com/docs/kotlin/](https://www.apollographql.com/docs/kotlin/) +[**View All Events →**](https://www.apollographql.com/events?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme) -The Apollo Kotlin API reference can be found at:
-[https://apollographql.github.io/apollo-kotlin/kdoc/](https://apollographql.github.io/apollo-kotlin/kdoc/) +## 🏆 Contributing - Tutorials can be found in the Odyssey learning platform: [part1](https://www.apollographql.com/tutorials/apollo-kotlin-android-part1), [part2](https://www.apollographql.com/tutorials/apollo-kotlin-android-part2). +Thank you for your interest in submitting a Pull Request to Apollo Client! Read our [guidelines](https://github.com/apollographql/apollo-kotlin/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-kotlin/issues?q=is%3Aopen%20label%3A%22%3Abooks%3A%20good-first-issue%22) to get started. -[Apollo](https://apollographql.com/) builds open-source tools and commercial services to make application development easier, better, and accessible to more people. We help you ship faster with: +## 🤝 Code of Conduct -* [GraphOS](https://www.apollographql.com/graphos) - The platform for building, managing, and scaling a supergraph: a unified network of your organization's microservices and their data sources—all composed into a single distributed API. -* [Apollo Federation](https://www.apollographql.com/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://github.com/apollographql/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, the Apollo GraphOS Discord, the Apollo GraphQL 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-kotlin/blob/main/LICENSE). From e6ef640c3c6b0e9a659434cabdb522773d2df9f3 Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Fri, 6 Jun 2025 13:40:44 -0400 Subject: [PATCH 2/8] Update README.md Co-authored-by: Benoit 'BoD' Lubek --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 35889f00221..5edfa23c94d 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ ✅ Intuitive, powerful caching - intelligent in-memory or SQLite caching out of the box
✅ Excellent support for modern Android and Kotlin Multiplatform apps
- ✅ Always up-to-date - we prioritize support for the latest versions of Kotlin, Gradle, and more
+ ✅ Always up-to-date - we prioritize support for the latest versions of GraphQL, Kotlin, Gradle, and more
✅ GraphOS ready - turnkey support for Persisted Queries, and `@defer`
✅ Production-tested - Powers countless apps worldwide that serve millions of end users
From fe3b050e8e4fd10c24496f04a9cbeb8925bc811f Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Fri, 6 Jun 2025 13:40:59 -0400 Subject: [PATCH 3/8] Update README.md Co-authored-by: Martin Bonnin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5edfa23c94d..f759cea7472 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ ## ❓ Why Choose Apollo Kotlin? + ✅ 100% type safety, from your server to your app, using code generation. ✅ Intuitive, powerful caching - intelligent in-memory or SQLite caching out of the box
✅ Excellent support for modern Android and Kotlin Multiplatform apps
✅ Always up-to-date - we prioritize support for the latest versions of GraphQL, Kotlin, Gradle, and more
From 957af5d2d47539760d19e299230e03af8534064f Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Fri, 6 Jun 2025 13:41:10 -0400 Subject: [PATCH 4/8] Update README.md Co-authored-by: Martin Bonnin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f759cea7472..b1a89fb4092 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

Apollo Kotlin

-**The industry-leading GraphQL client in Kotlin, made for Android, Kotlin Multiplatform, and more.** Apollo Kotlin delivers powerful caching, code generation, intuitive APIs, and comprehensive developer tools to accelerate your app development. +**The industry-leading GraphQL client for Kotlin**. Run on Android and all the Kotlin multiplatform targets. Apollo Kotlin delivers powerful caching, code generation, intuitive APIs, and comprehensive developer tools to accelerate your app development. ➡️ [**Get Started with Apollo Kotlin →**](https://www.apollographql.com/docs/kotlin?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme) From ca0614022cc9b444c50d4e8601466dd9488e5f1e Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Fri, 6 Jun 2025 13:41:26 -0400 Subject: [PATCH 5/8] Update README.md Co-authored-by: Martin Bonnin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b1a89fb4092..0b25cf4eed4 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,8 @@ If you are new to GraphQL, check out [the tutorial](https://www.apollographql.com/tutorials/apollo-kotlin-android-part1) that will guide you through building an Android app using Apollo. +For more in-depth documentation, head to the [official documentation site](https://www.apollographql.com/docs/kotlin?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme). + If you'd like to add Apollo Kotlin to an existing project, follow the steps below: Add the plugin to your `build.gradle.kts`: From d379d28e3ce1b6101aa5031b163b50eb5d4345a1 Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Fri, 6 Jun 2025 13:42:28 -0400 Subject: [PATCH 6/8] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0b25cf4eed4..57c3be6a157 100644 --- a/README.md +++ b/README.md @@ -103,9 +103,9 @@ We regularly update our [public roadmap](https://github.com/apollographql/apollo ## 📣 Tell us what you think -| ☑️ Apollo Client User Survey | +| ☑️ Apollo Kotlin User Survey | | :----- | -| What do you like best about Apollo Client? 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+Kotlin&entry.204965213=Readme). Your responses will help us understand Apollo Client usage and allow us to serve you better. | +| What do you like best about Apollo Kotlin? 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+Kotlin&entry.204965213=Readme). Your responses will help us understand Apollo Kotlin usage and allow us to serve you better. | ## 🗓️ Events @@ -123,7 +123,7 @@ Join these live events to meet other GraphQL users and learn more: ## 🏆 Contributing -Thank you for your interest in submitting a Pull Request to Apollo Client! Read our [guidelines](https://github.com/apollographql/apollo-kotlin/blob/main/CONTRIBUTING.md) first, and don't hesitate to get in touch. +Thank you for your interest in submitting a Pull Request to Apollo Kotlin! Read our [guidelines](https://github.com/apollographql/apollo-kotlin/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-kotlin/issues?q=is%3Aopen%20label%3A%22%3Abooks%3A%20good-first-issue%22) to get started. From da25268a73e9635f0adcf9f851086e38d0b6c597 Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Thu, 3 Jul 2025 12:29:55 -0400 Subject: [PATCH 7/8] Update README.md (code review) --- README.md | 39 +++++---------------------------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 57c3be6a157..a14dc36ccda 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,7 @@
Apollo Logo
-

Apollo Kotlin

- -**The industry-leading GraphQL client for Kotlin**. Run on Android and all the Kotlin multiplatform targets. Apollo Kotlin delivers powerful caching, code generation, intuitive APIs, and comprehensive developer tools to accelerate your app development. - -➡️ [**Get Started with Apollo Kotlin →**](https://www.apollographql.com/docs/kotlin?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme) - -
+
[![Discourse](https://img.shields.io/discourse/topics?label=Discourse&server=https%3A%2F%2Fcommunity.apollographql.com&logo=discourse&color=467B95&style=flat-square)](http://community.apollographql.com/new-topic?category=Help&tags=mobile,client) [![Slack](https://img.shields.io/static/v1?label=kotlinlang&message=apollo-kotlin&color=A97BFF&logo=slack&style=flat-square)](https://app.slack.com/client/T09229ZC6/C01A6KM1SBZ) @@ -22,6 +16,9 @@ [![Revved up by Develocity](https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A&style=flat-square)](https://ge.apollographql.com/scans)
+

Apollo Kotlin

+ +**The industry-leading GraphQL client for Kotlin**. Run on Android and all the Kotlin multiplatform targets. Apollo Kotlin delivers powerful caching, code generation, intuitive APIs, and comprehensive developer tools to accelerate your app development. @@ -40,33 +37,7 @@ If you are new to GraphQL, check out [the tutorial](https://www.apollographql.co For more in-depth documentation, head to the [official documentation site](https://www.apollographql.com/docs/kotlin?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme). -If you'd like to add Apollo Kotlin to an existing project, follow the steps below: - -Add the plugin to your `build.gradle.kts`: - -```kotlin -plugins { - id("com.apollographql.apollo") version "x.x.x" // set to your current version -} -``` - -Add the runtime dependency: - -```kotlin -dependencies { - implementation("com.apollographql.apollo:apollo-runtime:x.x.x") // set to your current version -} -``` - -Set the package name to use for the generated models: - -```kotlin -apollo { - service("service") { - packageName.set("com.example") - } -} -``` +For a detailed "Get Started" guide, check out our [docs](https://www.apollographql.com/docs/kotlin?utm_source=github&utm_medium=apollographql_apollo-kotlin&utm_campaign=readme). ## 💡 Resources From 587144eb764119a337a93980db834d0bf57d9d16 Mon Sep 17 00:00:00 2001 From: Jeff Auriemma Date: Thu, 3 Jul 2025 12:31:50 -0400 Subject: [PATCH 8/8] Update README.md - correct links --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a14dc36ccda..14bf4c2061c 100644 --- a/README.md +++ b/README.md @@ -53,8 +53,8 @@ For a detailed "Get Started" guide, check out our [docs](https://www.apollograph 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-kotlin&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-kotlin&utm_campaign=readme), [iOS](https://www.apollographql.com/docs/ios?utm_medium=github&utm_source=apollographql_apollo-kotlin&utm_campaign=readme), [Kotlin](https://www.apollographql.com/docs/kotlin?utm_medium=github&utm_source=apollographql_apollo-kotlin&utm_campaign=readme)) -* [**Apollo Connectors**](https://www.apollographql.com/connectors?utm_source=github&utm_medium=apollographql_apollo-kotlin&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-kotlin&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-kotlin&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-kotlin&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-kotlin&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-kotlin&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-kotlin&utm_campaign=readme))