You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ Apollo Kotlin executes operations against a GraphQL server and returns results a
28
28
29
29
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.
30
30
31
-
This library is designed with Android in mind, but you can use it in any Kotlin application, including multiplatform.
31
+
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)).
Copy file name to clipboardExpand all lines: docs/source/advanced/galaxy.mdx
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -5,17 +5,17 @@ title: Apollo Kotlin galaxy
5
5
6
6
The Apollo Kotlin galaxy is a collection of projects that are related to Apollo Kotlin but are loosely coupled. Their release schedule and maturity level varies.
7
7
8
-
They serve as playground for new ideas (apollo-kotlin-compose-support, apollo-kotlin-normalized-cache-incubating) or as helper projects providing additional functionality that is not ready to be included in the main repository or has external dependencies (apollo-kotlin-mockserver, apollo-kotlin-adapters).
8
+
They serve as a playground for new ideas (`apollo-kotlin-compose-support`, `apollo-kotlin-normalized-cache-incubating`) or helper projects providing additional functionality that is not core to Apollo Kotlin (`apollo-kotlin-mockserver`, `apollo-kotlin-cli`, `apollo-kotlin-execution`)
9
9
10
10
The Apollo Kotlin galaxy projects all start with `apollo-kotlin`:
|[apollo-kotlin-ktor-support](https://github.com/apollographql/apollo-kotlin-ktor-support)| HttpEngine and helpers to work with [Ktor](https://ktor.io/)|
16
-
|[apollo-kotlin-adapters](https://github.com/apollographql/apollo-kotlin-adapters)| Datetime, BigDecimal and other adapters for Apollo Kotlin |
17
14
|[apollo-kotlin-normalized-cache-incubating](https://github.com/apollographql/apollo-kotlin-normalized-cache-incubating)| Apollo Kotlin Incubating Normalized Cache |
18
15
|[apollo-kotlin-compose-support](https://github.com/apollographql/apollo-kotlin-compose-support)| Compose support for Apollo Kotlin |
16
+
|[apollo-kotlin-ktor-support](https://github.com/apollographql/apollo-kotlin-ktor-support)| HttpEngine and helpers to work with [Ktor](https://ktor.io/)|
Copy file name to clipboardExpand all lines: docs/source/essentials/evolution.mdx
+7-5Lines changed: 7 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -56,15 +56,17 @@ Other changes are dealt with on a case by case basis. When possible, we’ll hav
56
56
57
57
Whether something is a bugfix or another kind of change [is left to interpretation,](https://xkcd.com/1172/) and we’ll try our best to make reasonable choices there.
58
58
59
-
## `@ApolloExperimental`
59
+
## Symbol lifecycle
60
+
61
+
### @ApolloExperimental
60
62
61
63
Symbols marked with `@ApolloExperimental` are not part of the public API and are therefore subject to change at any time.
62
64
63
-
##`@Deprecated`
65
+
### @Deprecated
64
66
65
-
Deprecated symbols are removed when:
67
+
Symbols marked with `@Deprecated` are removed when:
66
68
67
-
* A major version is released
69
+
* A major version is released...
68
70
* AND the symbol has been deprecated for at least 6 months.
69
71
70
-
Ideally (but we can’t guarantee it), we’ll try to provide a oneyear update window (6 months as warning, 6 months as error).
72
+
Ideally (but we can't guarantee it), we’ll try to provide a one-year update window (6 months as warning, 6 months as error).
Copy file name to clipboardExpand all lines: docs/source/index.md
+44-49Lines changed: 44 additions & 49 deletions
Original file line number
Diff line number
Diff line change
@@ -3,24 +3,24 @@ title: Introduction to Apollo Kotlin
3
3
description: A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform.
4
4
---
5
5
6
-
> 📣 **Apollo Kotlin 3 is generally available.**If you're using Apollo Android 2.x, see the [migration guide](./migration/3.0/). You can also [view the 2.x docs](https://www.apollographql.com/docs/kotlin/v2).
6
+
> 📣 **Migration guide:**if you're using Apollo Kotlin 3, see the [migration guide](./migration/4.0/). You can also [view the 3.x docs](https://www.apollographql.com/docs/kotlin/v3).
7
7
8
-
[Apollo Kotlin](https://github.com/apollographql/apollo-kotlin)(formerly Apollo Android) is a GraphQL client that generates Kotlin and Java models from GraphQL operations.
8
+
[Apollo Kotlin](https://github.com/apollographql/apollo-kotlin) is a strongly typed GraphQL client that generates Kotlin models for your GraphQL operations.
9
9
10
10
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.
11
11
12
12
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.
13
13
14
-
This library is designed primarily with Android in mind, but you can use it in any Kotlin (including multiplatform) and Java app.
14
+
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)).
15
15
16
16
## Features
17
17
18
-
* Kotlin Multiplatform and Java code generation
18
+
* Kotlin Multiplatform code generation
19
19
* Queries, Mutations and Subscriptions
20
20
* Reflection-free parsing
21
21
* Normalized cache
22
-
* Custom scalar types
23
22
* HTTP cache
23
+
* Custom scalar types
24
24
* Auto Persisted Queries
25
25
* Query batching
26
26
* File uploads
@@ -29,40 +29,11 @@ This library is designed primarily with Android in mind, but you can use it in a
29
29
* GraphQL AST parser
30
30
* Plugin for Android Studio and IntelliJ
31
31
32
-
## Multiplatform
33
-
34
-
Apollo Kotlin is a [Kotlin Multiplatform](https://kotlinlang.org/docs/multiplatform.html) project.
35
-
36
-
Here's the current matrix of supported features per platform:
If you are new to GraphQL, check out [the tutorial](./tutorial/00-introduction/) that will guide you through building an Android app using Apollo.
64
35
65
-
If you'd like to add Apollo Kotlin to an existing project, follow these steps:
36
+
If you'd like to add Apollo Kotlin to an existing project, follow the steps below.
66
37
67
38
Add the plugin to your `build.gradle.kts`:
68
39
@@ -95,7 +66,7 @@ Apollo Kotlin supports three types of files:
95
66
-`.json` schema files: describes the types in your backend using the Json syntax.
96
67
-`.graphql` executable files: describes your queries and operations in the GraphQL syntax.
97
68
98
-
By default, Apollo Kotlin requires a schema in your module's `src/main/graphql` directory. You can download a schema using introspection with the `./gradlew downloadApolloSchema` task. Sometimes introspection is disabled and you will have to ask your backend team to provide a schema. Copy this schema to your module:
69
+
By default, Apollo Kotlin requires a schema in your module's `src/main/graphql`(or `src/commonMain/graphql` for KMP) directory. You can download a schema using introspection with the `./gradlew downloadApolloSchema` task. Sometimes introspection is disabled, and you will have to ask your backend team to provide a schema. Copy this schema to your module:
Some platforms have specific runtime requirements:
139
139
140
140
* JVM 8+
141
-
* Android API level 21+ (`apollo-http-cache`and `apollo-adapters` require enabling [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring) on Android API levels < 26)
141
+
* Android API level 21+ (`apollo-http-cache`requires enabling [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring) on Android API levels < 26)
142
142
* iOS 13+
143
143
144
144
At build time, it requires:
@@ -159,7 +159,7 @@ Installation instructions and more information can be found [here](testing/andro
159
159
160
160
## Releases
161
161
162
-
The latest version is [](https://repo1.maven.org/maven2/com/apollographql/apollo/)
162
+
The latest version is `4.0.0-rc.1`.
163
163
164
164
Check the [changelog](https://github.com/apollographql/apollo-kotlin/releases) for the release history.
165
165
@@ -218,14 +218,9 @@ These snapshots are updated on each push to `main`.
218
218
219
219
Weekly snapshots for the Android Studio / IntelliJ plugin [are also available](testing/android-studio-plugin#weekly-snapshots).
220
220
221
-
## Stability of different artifacts
222
-
223
-
Apollo Kotlin is very modular and publishes several artifacts.
221
+
## Evolution policy
224
222
225
-
* Artifacts ending with `-incubating` are not finalized yet and subject to change any time.
226
-
* Other artifacts observe [Semantic Versioning](https://semver.org/).
227
-
* No breaking change should be introduced in minor or patch releases except for symbols annotated with `@ApolloExperimental` that are subject to change at any time.
228
-
* Deprecated symbols may be removed in the next major release. We strongly recommend removing deprecated usages before migrating to the next major version.
223
+
You can read about our evolution policy in the [dedicated page](essentials/evolution)
0 commit comments