GraphQL for Android
Consume your GraphQL API on Android Devices with Apollo Android. Apollo Android is a GraphQL client that generates type-safe Kotlin models from your GraphQL queries. It also handles parsing and caching so you can focus on what matters most to your users and build beautiful mobile apps.
- Frontend
- Mobile
“This collection teaches you how to use Apollo Android to do GraphQL queries, mutations and subscription as well as tips & tricks to better handle GraphQL on mobile devices.

Code | Apollo GraphQL Android ClientApollo Android is a GraphQL client that generates Java and Kotlin models from GraphQL queries. These models give you a type-safe API to work with GraphQL servers. Apollo helps you keep your GraphQL query statements together, organized, and easy to access. Frontend |
Docs | Intro to the Android Apollo SDKThis tutorial demonstrates adding the Apollo Android SDK to an app to communicate with a GraphQL server. Frontend, How-to |
Panel | From the community Apollo-Android: a Journey to Kotlin MultiplatformIn this talk we will be talking about the path we took to bring Kotlin Multiplatform support and the challenges we faced along the way. We will touch topics such as migrating code from Java to Kotlin Multiplatform for both the runtime and code generation, as well as documentation and publication of Multiplatform artifacts. Frontend |
Talk | From the community Take Control Of Your APIs With GraphQLIn this talk, we’ll introduce the benefits of a client side API and understand why this will be the approach of the future. You’ll learn what tools are available for consuming GraphQL APIs on Android, and tips for having them coexist with the REST APIs you already support. You’ll leave this talk with a clear roadmap on how you can begin migrating your apps to this new technology. Adam McNeilly |
Podcast | From the community GraphQL and Apollo with GDE Mike NakhimovichIn this episode, we talk about GraphQL. Friend and GDE Mike Nakhimovich helped create the library Apollo for Android, which is the defacto official GraphQL client for Android. Mike Nakhimovich · Frontend |
Blog Post | From the community Exploring GraphQL with Coroutines on AndroidIn this post we’re going to look at setting up our project for use with GraphQL, along with learning how we can perform queries. Joe Birch · Frontend |
Blog post | Add GraphQL to Your Jetpack Compose AppsJetpack Compose is a declarative UI framework for building Android UIs written in Kotlin. Apollo Android is a GraphQL client that generates typesafe Kotlin models to hold data to be displayed. GraphQL and Jetpack Compose: they were meant to meet. In this post, we will show how to query a GraphQL endpoint with Apollo Android […] Martin Bonnin · Frontend, How-to |
Related collections
GraphQL Tooling and Code-gen
One of the many benefits of adopting GraphQL is the ever growing eco-system of tools and services available to help you build your apps even faster. From code-gen to configuring Apollo Server, this collection has a range of tools, tips, and configuration best practices designed to boost your productivity.
- Backend
- Frontend
- How-to
- Platform
Caching & State Management with Apollo Client
State management is about caching the data you need to provide experiences for your users. Apollo Client is both a GraphQL client and a state management library. In this collection, you’ll learn how to use the latest version of Apollo Client as your single source of truth for state in client-side UI libraries like React.
- Frontend
Auth
When building a GraphQL endpoint, you’ll probably have to face the question of how to control who can see and interact with the data in your API. This typically involves authentication (determining who you are) and authorization (determining if you have access). In this collection, we’ll cover strategies and best practices for both.
- Backend
- Frontend
Error Handling with Apollo
At Apollo, we’ve heard a lot of desire from GraphQL developers for more guidance on how to do error handling. Learn how to communicate errors to your client in an organized way, and open up new possibilities for tooling.
- Backend
- Frontend