Releases: awslabs/aws-mobile-appsync-sdk-android
AWS AppSync SDK for Android v3.1.2
AWS AppSync SDK for Android v3.1.1
AWS AppSync SDK for Android v2.11.0
Release 2.11.0
The 2.x releases use MQTT as a subscription transport, instead of WebSockets, as in 3.x.
Most users should use the latest release of 3.x.
Bug Fixes
The 2.11.0 release contains a back-port of support for Android Studio 4.0.0+ / Android Gradle Plugin 4.0.0+ / Gradle 6+. See #270.
AWS AppSync SDK for Android v3.1.0
Release 3.1.0
Bug Fixes
Adds support for Android Studio 4.0.0+ / Android Gradle Plugin 4.0.0+. Addresses incompatibilities with Gradle 6+. See #270.
AWS AppSync SDK for Android v3.0.1
Release 3.0.1
Bug Fixes
- Added fix to preserve null list items when parsing the response. See issue #156 for details.
AWS AppSync SDK for Android v3.0.0
Release 3.0.0
Enhancements
-
Added support for connecting to AWS AppSync using pure WebSockets for GraphQL subscriptions.
- Selection set filtering will be done per client as each client can define their own selection set.
In this case the subscription selection set must be a subset of the mutation selection set. For example,
a subscriptionaddedPost{author title}
linked to the mutationaddPost(...){id author title url version}
would receive only the author and the title of the post and none of the other fields.
However, if the mutation didn't have the author in its selection set the subscriber would get anull
value for the author field (or an error in case the author field is defined as required/not-null in the schema). - In the earlier SDK version, if you didn’t configure the associated subscription selection set with the required fields
and relied on the mutation fields to push data to subscribed client, the behavior will change when you move to this version
that use pure WebSockets. In the example above, a subscription without the "author" field defined in its selection set
would still return the author name with MQTT over WebSockets as the field is defined in the mutation, the same behavior
won’t apply for pure WebSockets. The subscription selection set is essential when using pure WebSockets: if a field is
not explicitly defined in the subscription it won't be returned by AWS AppSync.
- Selection set filtering will be done per client as each client can define their own selection set.
-
Adopted Semantic versioning
- Starting with version 3.0.0 AppSync AWS Android SDK will follow sematic versioning.
Misc. Updates
AWSAppSync
now depends onAWSCore
version2.16.3
instead of2.16.1
.
AWS AppSync SDK for Android v2.10.1
Release 2.10.1
Enhancements
- Make
GraphQLStoreOperation.Callback
a public interface, so theAWSAppSyncStore
asynchronous operations can be passed with a callback. Thanks @cjami for the contribution. See PR #193 for details.
Misc. Updates
AWSAppSync
now depends onAWSCore
version2.16.1
instead of2.13.5
.
Bug Fixes
- If an App Sync subscription attempts to be executed while in a non-Idle state, it will now pass the error back through the callback vs. crashing the app with a runtime exception. See issue#202
AWS AppSync SDK for Android v2.10.0
Enhancements
- Add new validations in
AWSAppSyncClient.Builder
.- Throw
RuntimeException
when Android context passed in is null. - Throw
RuntimException
when there is no validAuthMode
object passed in.
- Throw
Misc. Updates
AWSAppSync
now depends onAWSCore
version2.13.5
instead of2.13.4
.
AWS AppSync SDK for Android v2.9.0
New Features
- Support multiple authorization modes for a single AWS AppSync GraphQL endpoint.
- Introduced
clientDatabasePrefix(String)
that accepts a prefix that will be used in the construction of database name for caching query responses, offline mutations and subscriptions metadata. The usage of the prefix can be enabled by the flaguseClientDatabasePrefix(true)
. When the prefix is used, the name of the database would look as follows:
Purpose of cache | No prefix | Valid prefix |
---|---|---|
Query responses | appsyncstore |
<ClientDatabasePrefix>_appsyncstore |
Offline Mutations | appsyncstore_mutation |
<ClientDatabasePrefix>_appsyncstore_mutation |
Subscriptions metadata for Delta Sync | appsync_deltasync_db |
<ClientDatabasePrefix>_appsync_deltasync_db |
-
The
ClientDatabasePrefix
can be passed viaawsconfiguration.json
that is generated from the AWS AppSync Console and Amplify CLI."AppSync": { "Default": { "ApiUrl": "https://xyz.appsync-api.us-east-2.amazonaws.com/graphql", "Region": "us-east-2", "AuthMode": "API_KEY", "ApiKey": "da2-xyz", "ClientDatabasePrefix": "MyAppSyncAPIName_API_KEY" } }
The
AWSAppSyncClient
object can be constructed as follows:AWSAppSyncClient awsAppSyncClient = AWSAppSyncClient.builder() .awsConfiguration(awsConfiguration) .useClientDatabasePrefix(true) .build();
-
Alternatively, the
ClientDatabasePrefix
can be passed via theAWSAppSyncClient.Builder
.AWSAppSyncClient awsAppSyncClient = AWSAppSyncClient.builder() .context(getApplicationContext()) .apiKey(new BasicAPIKeyAuthProvider("da2-apiKey")) .serverUrl(serverUrl) .region(region) .useClientDatabasePrefix(true) .clientDatabasePrefix("MyAppSyncAPIName_API_KEY") .build();
Misc. Updates
AWSAppSync
now depends onAWSCore
version2.13.4
instead of2.13.2
.