SDKActive

Apollo Kotlin

Apollo Kotlin is a GraphQL client for Kotlin/JVM and native apps, supporting custom scalar types with adapters.

Open source page ↗

Product features

Product features

AnyAdapter

Built-in adapter supporting String, Int, Double, Boolean, List, and Map for intermediate steps.

ApolloClient instance creation

Create an ApolloClient instance connected to the remote server.

AppSync and graphql-ws websockets

Support for AppSync and graphql-ws websockets.

Auto Persisted Queries

Automatically persist queries to reduce network overhead.

Breaking change policy

Binary breaking changes only in major versions; source breaking changes avoided in non-major versions.

Build-time Registration

Register adapters in build.gradle[.kts] via mapScalar with a third argument.

Class Adapters

Each class requires an adapter with fromJson and optionally toJson functions for network serialization.

Class Mapping

Define a mapping in build.gradle to tell Apollo Kotlin which class to use for each custom scalar.

Custom scalar types

Support for custom scalar types in GraphQL schemas.

Enum type support

Learn about enum types in GraphQL.

Extra Adapters

Additional adapters for dates and big decimals available from apollo-kotlin-adapters repository.

Fake models for tests

Generate fake models for testing.

Documented feature

Fragment Support

Fragments can share result handling between queries and mutations.

Generated Classes

Mutations are represented by generated classes conforming to the Mutation interface.

HTTP cache

Provides HTTP caching capabilities.

Inline Fragments

Access fields of polymorphic types.

Input Objects

Input objects are passed as mutation variables for complex values.

Jetpack Compose integration

Reflect queried data in the app using Jetpack Compose.

Named Fragments

Reusable sets of fields across multiple operations.

OperationBased Codegen

Default codegen that merges all .graphql files before generating models.

Queries, Mutations and Subscriptions

Support for GraphQL queries, mutations, and subscriptions.

Query batching

Combine multiple queries into a single HTTP request.

Reflection-free parsing

Parsing without using reflection, enabling safe optimization and obfuscation.

Runtime Registration

Register adapters on ApolloClient instance using addCustomScalarAdapter.

Schema download

Add the GraphQL schema to the project.

Semantic versioning

Follows semantic versioning with pre-release, alpha, beta, rc, and stable versions.

Symbol lifecycle

Symbols marked @ApolloExperimental are not part of public API; @Deprecated symbols removed after major version and 6 months.