Kinvey SDK Download

Version 4.4.0 - Aug 7, 2020
or download the library directly
Download

Changelog

Want to see how the rest of your backend is evolving? Check out the timeline.

4.4.0
- Aug 7, 2020

New in this release:

  • Enhancements:

    • Added validation for an existing item id when the data store type is not Network. (#288).
    • Updated the default KCS api version to 5. (#286).
    • Added support a single item for DataStore.create. (#285).
    • Added last login time to kinvey meta data model. (#281).
    • Return items count with GET requests. (#280).
  • Bug fixes:

    • The created items in the backend have some artificial ids, containing temp and a guid. (#284).
    • The error message from the server is not returned, when some of the items fail. (#283).
    • Batch create function will not work for future api versions bigger than 5. (#282).

4.3.6
- Jun 1, 2020

New in this release:

  • Enhancements:

    • Added DataStore.create multi-insert method with parameters List<T> and KinveyClientCallback<KinveySaveBatchResponse<T>>. (#279).

4.3.5
- Sep 26, 2019

New in this release:

  • Bug fixes:

    • In a batch of multi-insert requests, if a whole batch fails, the response to the whole operation is an error. (#269).
    • DataStore.push incorrectly using the onFailure handler. (#270).
    • If DataStore.push fails, items without _id clears the local storage and the syncQueue. (#271).
    • For Auto store, DataStore.save failing due to network error incorrectly invoking the onFailure handler. (#272).

4.3.4
- Sep 13, 2019

New in this release:

  • Enhancements:

    • Conversion to Kotlin of Client, DataStore and query-related classes (#259) (#262) (#263) (#264).
  • Bug fixes:

    • Fix result items order for save requests if list contains items with set _id and without. (#266).

4.3.3
- Sep 2, 2019

New in this release:

  • Enhancements:

    • Updated dependencies to the latest version. (#260).

    • Conversion to Kotlin of MIC and model-related classes (#261) (#258).

4.3.2
- Aug 16, 2019

New in this release:

  • Enhancements:

    • Further migration to a Kotlin codebase, including file and user classes. (#250) (#254) (#255).

    • Migrating SDK dependencies to AndroidX, which is a new set of libraries that should replace many deprecated libraries from the past, like Support Library, Support Annotations, Android JUnit Runner, etc (#248).

  • Bug fixes:

    • Correct issue with FileMetaData settings for allowing all users to read a particular file. (#256).

    • Removing _uploadURL from FileMetaData object when it is no longer necessary. (#257).

4.3.1
- Aug 2, 2019

New in this release:

  • Enhancements:

    • Added logic to send multiple multi-insert requests when entity count exceeds max 100 items. (#245).

    • Added configuration for SDK distribution using JitPack repository. (#244).

4.3.0
- Jul 18, 2019

New in this release:

  • Enhancements:

    • Introduction of the new multi-insert logic for DataStore push method. (#238).
    • The beginning of the migration of the library to Kotlin, including an update to gradle version 5. (#239).

      Breaking Change: Because of migration to Kotlin and gradle version updating, you will need to add some changes to the build.gradle files:

      1. Delete old libraries from app/libs directory:

        google-http-client-1.19.0.jar
        google-http-client-android-1.19.0.jar
        google-http-client-gson-1.19.0.jar
        google-http-client-jackson2-1.19.0.jar
        guava-18.0.jar
        jackson-core-2.1.3.jar
        java-api-core-4.2.1.jar
        kinvey-android-4.2.1.aar
        pubnub-gson-4.18.0-all.jar
        realm-android-library-3.2.1.aar
        realm-annotations-3.2.1.jar
        realm-annotations-processor-3.2.1.jar
        realm-transformer-3.2.1.jar
        relinker-1.2.2.aar
        rxjava-1.1.0.jar

        and Add new version of java-api-core-x.x.x.jar and kinvey-android-x.x.x.aar.

      2. Remove from build.gradle (app module)

        dependencies {
           implementation ':realm-android-library:+@aar'
           implementation ':relinker:+@aar'
        }
      3. Apply Realm plugin to build.gradle (app module) apply plugin: 'realm-android' and add Realm plugin to classpath in build.gradle (project module)

        buildscript {
           dependencies {
               classpath 'io.realm:realm-gradle-plugin:5.8.0'
           }
        }
      4. Add third part libraries as dependency

        implementation('com.google.api-client:google-api-client-android:1.19.0') {
             exclude(module: 'google-play-services')
             exclude(module: 'xpp3')
        }
        implementation 'com.google.http-client:google-http-client-android:1.19.0'
        implementation('com.google.http-client:google-http-client-gson:1.19.0') {
             exclude(module: 'xpp3')
        }

        Also if you use LiveService to add:
        implementation group: 'com.pubnub', name: 'pubnub-gson', version: '4.18.0'

      5. Add Compatibility with Java 8

        android {
           compileOptions {
             sourceCompatibility JavaVersion.VERSION_1_8
             targetCompatibility JavaVersion.VERSION_1_8
           }
        }

  • Bug fixes:

    • Fix for returning User object from client.getActiveUser() method. (#240).

4.2.1
- Jun 3, 2019

New in this release:

  • Bug fixes:

    • Switching backend API version logic. (#232).

    • Token request issues using clientId. (#235).

4.2.0
- Jun 3, 2019

New in this release:

  • Enhancements:

    • Introduction of the new multi-insert DataStore method. (#231).
      Multi-insert is available for use in Kinvey API version 5. Set this API version using the kinvey.api.version parameter in the kinvey.properties file in order to use this functionality.

4.0.1
- May 24, 2019

New in this release:

  • Enhancements:

    • Added count method with query object in DataStore. (#229).

    • Added ability to set API version. (#230).

4.0.0
- May 2, 2019

New in this release:

  • Enhancements:

    • Introduction of Firebase Cloud Messaging (FCM). (#211).

      Breaking Change: Google Cloud Messaging is no longer supported by the SDK starting with this version. To be compatible with the current version of the SDK, please follow our Push Guide and convert your existing Google Cloud Messaging implementation to FCM.

3.1.13
- Apr 29, 2019

New in this release:

  • Enhancements:

    • Correctly handling a missing or null refresh token. (#226).

3.1.12
- Apr 12, 2019

New in this release:

  • Enhancements:

    • Added an overload that removes temporaryURI parameter, and deprecated a version of loginWithMIC that takes a temporaryURI. (#225).

3.1.11
- Mar 27, 2019

New in this release:

  • Enhancements:

    • Added a thread pool for requests in order to make requests asynchronously. (#220).

3.1.10
- Mar 1, 2019

New in this release:

  • Enhancements:

    • Introduction of new AUTO DataStore type. (#217).

      The CACHE DataStore type has been deprecated and will be removed in a future release.

    • Improve execution of network save requests. (#219).

3.1.9
- Jan 31, 2018

New in this release:

  • Enhancements:

    • Social login methods are now deprecated in favor of using MIC flow (#216).
  • Bug Fixes:

    • Fixed an issue with access token path might be affected by the MIC API version. (#215).

    • Migrated to JobIntentService instead IntentService for KinveyGCMService, to fix an issue with push notifications and background execution (#214).

Now to use push notification through an integration with Google Cloud Messaging, the targetSdkVersion of your project should be set to at least API level 27. Also, please change code in your GCMReceiver from: ComponentName comp = new ComponentName(context.getPackageName(), com.myPackage.GCMService.class.getName()); startWakefulService(context, (intent.setComponent(comp))); setResultCode(Activity.RESULT_OK); to: ComponentName comp = new ComponentName(context.getPackageName(), GCMService.class.getName()); GCMService.enqueueWork(context, (intent.setComponent(comp)), GCMService.class);

And change declaration of service in your AndroidManifest: <service android:name=".GCMService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="true" />

3.1.8
- Jan 18, 2019

New in this release:

  • Enhancements:

    • not() operator implementation fixed. Now result of operator not() is same as the Mongo $not operator result (#209).

    • Deprecated loginWithAuthorizationCodeAPI() and loginWithAuthorizationCodeLoginPage() methods in favor loginWithMIC() method (#208).

3.1.7
- Nov 15, 2018

New in this release:

  • Enhancements:

    • Automated Authorization Grant Flow replaced by the Resource Owner flow (#204).
  • Bug Fixes:

    • Fixed the problem with situation when SDK throws the exception after getting saved entity, which has an array with self-reference type in entity data model. (#203).

3.1.6
- Oct 18, 2018

New in this release:

  • Enhancements:

    • Proper exception handling during MIC auth flow. (#200).
  • Bug Fixes:

    • Fixed problem with situation when time from Date object in milliseconds before saving to the DataStore isn't equal to the time after getting the entity from the DataStore. (#202).

3.1.5
- Oct 4, 2018

New in this release:

  • Enhancement: Correctly handle OAuth MIC errors returned through the redirect URI. (#197).

  • Bug Fix: Deprecated method UserStore#loginKinveyAuthToken. (#196).

3.1.4
- Jul 11, 2018

New in this release:

  • Bug Fixes:

    • Use the x-kinvey-request-start from the count response when auto-pagination is used as the first request before Delta Set requests. (#185).

    • Fix exception in the log after getting an error from the backend. (#186).

3.1.3
- Jun 29, 2018

  • Enhancements:

    • Disable TLSv1 and enable support for TLSv1.1 and TLSv1.2 for 4.1-4.4 Android versions. (#178).

Breaking change: Minimum Android SDK is now API 16. Android API 15 doesn't support TLSv1.1 or TLSv1.2, so the minimum version has been increased to support this. Applications which support Android API 16-20 have to update Android Kinvey library to the 3.1.3 version, since 3.1.3 version enables support for TLSv1.1 or TLSv1.2.

  • Bug Fixes:

    • Deleting items from the cache if auto-pagination is used. (#184).
    • MIC fixes for clientID. (#181).
    • Using 'int' primitive type in a class model. (#180).
    • Updating query cache item if it exists instead of creating new. (#179).
    • Now locally created entity is pushed as a POST rather than a PUT. (#169)(#182)(#183).

3.1.2
- Jun 14, 2018

  • Enhancements:

    • The client-side Delta Set feature has been replaced by a server-side implementation called Delta Sync (Beta) that offers better performance and scalability. (#160).
    • Add @NonNull and @Nullable annotations for DataStore and UserStore. (#171).
    • pull and sync methods now return only count of pulled items from the backend.

3.1.1
- Jun 1, 2018

  • Enhancement:

    • Add new X-Kinvey-Device-Info header for standardized capture of device and platform information. (#168).
  • Bug Fix:

    • Extending user class with properties of different class. (#167).

3.1.0
- May 7, 2018

  • Enhancements:

    • isAutoPaginationEnabled flag was removed from DataStore. Now pull methods are available which take page size as a parameter, which will enable auto-pagination. (#159).
    • Add support for isAutoPagination parameter in pull methods, which defaults the page size used for auto-pagination to 10,000 entities. (#166).
    • KinveyPullResponse now has count of pulled items instead of list of pulled items. (#161).
    • Pull requests in auto-pagination mode are now executed concurrently in batches, for improved performance. (#164).
  • Bug Fix:

    • Sending X-Kinvey-Client-App-Version header before user is authorized, if a value for this has been set in the Client. (#165).

Breaking change: the flag dataStore.isAutopaginationEnabled() has been deprecated. In order to enable auto-pagination, use pull methods with page size in the parameter list to specify the page size for auto-pagination, or use pull methods with the isAutoPagination flag set to true, which will default the page size to 10,000 entities.

Breaking change: changes have been made to callbacks and response classes for sync and pull. KinveySyncCallback and KinveyPullCallback have been modified, because KinveyPullResponse was modified. It has been moved to another package, and has been updated to contain a count of pulled items instead of a list of pulled items. This was done to save on memory consumption in this case, where the goal of pull is to update the local cache.

Breaking change: KinveyListCallback has been changed to KinveyReadCallback, which returns with KinveyReadResponse in onSuccess. KinveyReadResponse contains a list of items and list of exceptions.

3.0.19
- Apr 13, 2018

  • Enhancement:

    • Add support for instance.id parameter in the kinvey.properties file. (#163).
  • Bug Fix:

    • Correctly deleting item from the backend after updating and then deleting item in the local cache. (#157).

3.0.18
- Apr 5, 2018

  • Enhancements:

    • Set default MIC API version to v3. (#156).
    • Improve performance for bulk saving in DataStore#save for StoreType.CACHE. (#158).

3.0.17
- Mar 28, 2018

  • Enhancements:

    • Add method for setting an instanceID on the client. (#152).
    • Push requests are now executed concurrently in batches, for improved performance. (#149).
    • Model object containing a self-reference can now have this reference in both an object field and a list type of this object simultaneously. (#124).

3.0.16
- Mar 14, 2018

  • Enhancement:

    • Remove metadata from embedded objects (#147).
  • Bug Fixes:

    • Fix access token invalidation in the UserStore#logout method (#140).
    • Fix clearing metadata that was synced in previous SDK versions (#148).

3.0.15
- Feb 26, 2018

  • Improvements:

    • Add support for Live Service.
    • Add support for query in the DataStore#clear and DataStore#purge methods.
  • Bug Fixes:

    • Fix long name using in fields with type List.

Because of the Live Service feature, the Android SDK now comes with its own version of gson. Remove gson-2.1.jar from your project's libs directory if you are using it.

3.0.14
- Feb 12, 2018

  • Bug Fixes:

    • Fix nulling nested objects in the local data store.
    • Fix the exception after refreshing token with MIC service.

3.0.13
- Jan 31, 2018

  • Improvement:

    • Performance improvements for local cache writes and processing of network responses.
    • Move setDeltaCache method from Client to DataStore object

This change to setDeltaCache is a breaking change. Replace calls to setDeltaCache on the client object with calls to the individual data store objects.

3.0.12
- Jan 11, 2018

  • Improvement:

    • Add cached callback to count method.
  • Bug Fixes:

    • Fix getting file from cache in cached callback.
    • Fix setting request timeout.
    • Fix sync/pull methods with a query.
    • Fix NullPointerException in hashcode method.

3.0.11
- Dec 29, 2017

  • Improvements:

    • Add support for model classes to self-reference.
    • Add support for implicit and of two equals filters
  • Bug Fix:

    • Fix ClassCastException bug with delta set caching mechanism.

3.0.10
- Nov 22, 2017

  • Bug Fixes:

    • Fix DataStore#clear method.
    • Fix collection growing after sync/pull.
    • Fix collection clearing if model class is changed.

3.0.9
- Nov 17, 2017

  • Improvements:

    • Add local cache migration from version 3.0.6.
    • Add a list of exceptions field to the KinveyPullResponse object.
  • Bug Fix:

    • Fix push method.

3.0.8
- Oct 20, 2017

This release involves changes to the underlying caching schema. We recommend active users log out and log back in after upgrade, in order to refresh the local cache.

  • Improvements:

    • Add method to DataStore to clear local cache.
    • Add method to DataStore for aggregation.
    • Add performance improvements for save methods.
    • Add support for classes with the name length of more than 56 symbols.
    • Add support for serializing null values in a query.
    • Add support for pagination.
    • Add auto pagination to pull request.
  • Bug Fix:

    • Fix using nested classes.

3.0.7
- Sep 28, 2017

  • Improvements:

    • Add method to DataStore to save list of entities.

3.0.6
- Sep 26, 2017

  • Bug Fix:

    • Fix saving _acl.creator field.
  • Improvements:

    • Add in operator for query to а field with а LIST type.

3.0.5
- Sep 11, 2017

  • Improvements:

    • Add Encryption API.

3.0.4
- Aug 29, 2017

  • Bug Fix:

    • Fix Delta Set Caching.

3.0.3
- Aug 11, 2017

  • Bug Fix(es):

    • Fix user retrieve methods.
    • Correctly return client builder object with setDeltaSetCache method.
  • Improvements:

    • Improve callback for user retrieve methods.
    • Add method to DataStore to get the sync queue item count.
    • Add clientId to login with MIC.

3.0.2
- Jul 28, 2017

  • Bug Fix(es):

    • Correctly save _public value of file offline.
    • Add update instance method on User to be able to update user object.
  • Improvements:

    • Remove empty query parameter from requests.
    • Improve handling cache errors.

3.0.1
- Jun 21, 2017

  • Bug Fix(es):

    • Fix Custom Endpoints list callback
    • Fix support for Local Operator "and"

3.0.0
- Jun 12, 2017

  • Update realm library to version 3.2.1

  • Bug Fix(es):

    • Fix InputStream uploading
    • Fix empty file downloading

3.0.0 Beta-05
- Jun 6, 2017

  • Bug Fix(es):

    • Fix forgot username request
    • Fix check username exists request
    • Fix creating Realm objects on disk for StoreType.NETWORK

3.0.0 Beta-04
- May 22, 2017

  • Allow to add custom User fields

  • Bug Fix(es):

    • Fix push registration poblem

3.0.0 Beta-03
- Apr 26, 2017

  • Add new Client.Builder constructor used for passing a properties file.

  • Add deltaSetCaching client parameter to be able to enable/disable Delta Set Caching logic

  • Bug Fix(es):

    • Fix crash on logout

3.0.0 Beta-02
- Jan 27, 2017

  • Added calculation methods for DataStore missing from 2.x

  • Add new Client constructor to pass custom HttpTransport

  • Rename Client.activeUser to Client.getActiveUser

  • Updated documentation about new features

3.0.0 Beta-01
- Sep 8, 2016

  • Full support for data synchronization between your app and backend. Refer to the Data Store Guide to learn how to use the new data manipulation APIs.

  • We've simplified data stores and caching policies, making it easier for you to start building apps with caching and offline built in.

Download Older Versions

We recommend using the latest version.

Version Download Date
4.4.0 Download Aug 7, 2020
4.3.6 Download Jun 1, 2020
4.3.5 Download Sep 26, 2019
4.3.4 Download Sep 13, 2019
4.3.3 Download Sep 2, 2019
4.3.2 Download Aug 16, 2019
4.3.1 Download Aug 2, 2019
4.3.0 Download Jul 18, 2019
4.2.1 Download Jun 3, 2019
4.2.0 Download Jun 3, 2019
4.0.1 Download May 24, 2019
4.0.0 Download May 2, 2019
3.1.13 Download Apr 29, 2019
3.1.12 Download Apr 12, 2019
3.1.11 Download Mar 27, 2019
3.1.10 Download Mar 1, 2019
3.1.9 Download Jan 31, 2018
3.1.8 Download Jan 18, 2019
3.1.7 Download Nov 15, 2018
3.1.6 Download Oct 18, 2018
3.1.5 Download Oct 4, 2018
3.1.4 Download Jul 11, 2018
3.1.3 Download Jun 29, 2018
3.1.2 Download Jun 14, 2018
3.1.1 Download Jun 1, 2018
3.1.0 Download May 7, 2018
3.0.19 Download Apr 13, 2018
3.0.18 Download Apr 5, 2018
3.0.17 Download Mar 28, 2018
3.0.16 Download Mar 14, 2018
3.0.15 Download Feb 26, 2018
3.0.14 Download Feb 12, 2018
3.0.13 Download Jan 31, 2018
3.0.12 Download Jan 11, 2018
3.0.11 Download Dec 29, 2017
3.0.10 Download Nov 22, 2017
3.0.9 Download Nov 17, 2017
3.0.8 Download Oct 20, 2017
3.0.7 Download Sep 28, 2017
3.0.6 Download Sep 26, 2017
3.0.5 Download Sep 11, 2017
3.0.4 Download Aug 29, 2017
3.0.3 Download Aug 11, 2017
3.0.2 Download Jul 28, 2017
3.0.1 Download Jun 21, 2017
3.0.0 Download Jun 12, 2017
3.0.0 Beta-05 Download Jun 6, 2017
3.0.0 Beta-04 Download May 22, 2017
3.0.0 Beta-03 Download Apr 26, 2017
3.0.0 Beta-02 Download Jan 27, 2017
3.0.0 Beta-01 Download Sep 8, 2016