Official Appwrite Kotlin SDK ๐Ÿ’™๐Ÿงก

Overview

Appwrite Kotlin SDK

Maven Central License Version Twitter Account Discord

This SDK is compatible with Appwrite server version 0.11.x. For older versions, please check previous releases.

This is the Kotlin SDK for integrating with Appwrite from your Kotlin server-side code. If you're looking for the Android SDK you should check appwrite/sdk-for-android

Appwrite is an open-source backend as a service server that abstract and simplify complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way. Use the Kotlin SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools. For full API documentation and tutorials go to https://appwrite.io/docs

Appwrite

Installation

Gradle

Appwrite's Kotlin SDK is hosted on Maven Central. In order to fetch the Appwrite SDK, add this to your root level build.gradle(.kts) file:

repositories {      
    mavenCentral()
}

If you would like to fetch our SNAPSHOT releases, you need to add the SNAPSHOT maven repository to your build.gradle(.kts):

repositories {
    maven {
        url "https://s01.oss.sonatype.org/content/repositories/snapshots/"
    }
}

Next, add the dependency to your project's build.gradle(.kts) file:

implementation("io.appwrite:sdk-for-kotlin:0.1.1")

Maven

Add this to your project's pom.xml file:

<dependencies>
    <dependency>
        <groupId>io.appwritegroupId>
        <artifactId>sdk-for-kotlinartifactId>
        <version>0.1.1version>
    dependency>
dependencies>

Getting Started

Init your SDK

Initialize your SDK with your Appwrite server API endpoint and project ID which can be found in your project settings page and your new API secret Key project API keys section.

import io.appwrite.Client
import io.appwrite.services.Account

suspend fun main() {
    val client = Client(context)
      .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
      .setProject("5df5acd0d48c2") // Your project ID
      .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
      .setSelfSigned(true) // Use only on dev mode with a self-signed SSL cert
}

Make Your First Request

Once your SDK object is set, create any of the Appwrite service objects and choose any request to send. Full documentation for any service method you would like to use can be found in your SDK documentation or in the API References section.

val users = Users(client)
val response = users.create(
    email = "[email protected]",
    password = "password",
)
val json = response.body?.string()

Full Example

import io.appwrite.Client
import io.appwrite.services.Users

suspend fun main() {
    val client = Client(context)
      .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
      .setProject("5df5acd0d48c2") // Your project ID
      .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
      .setSelfSigned(true) // Use only on dev mode with a self-signed SSL cert

    val users = Users(client)
    val response = users.create(
        email = "[email protected]",
        password = "password",
    )
    val json = response.body?.string()
}

Error Handling

The Appwrite Kotlin SDK raises AppwriteException object with message, code and response properties. You can handle any errors by catching AppwriteException and present the message to the user or handle it yourself based on the provided error information. Below is an example.

import io.appwrite.Client
import io.appwrite.services.Users

suspend fun main() {
    val users = Users(client)
    try {
        val response = users.create(
            email = "[email protected]",
            password = "password",
        )
        var jsonString = response.body?.string() ?: ""

    } catch (e: AppwriteException) {
        println(e)
    }
}

Learn more

You can use the following resources to learn more and get help

Contribution

This library is auto-generated by Appwrite custom SDK Generator. To learn more about how you can help us improve this SDK, please check the contribution guide before sending a pull-request.

License

Please see the BSD-3-Clause license file for more information.

Comments
  • ๐Ÿ› Bug Report: Creating of float show Failure status in Appwrite

    ๐Ÿ› Bug Report: Creating of float show Failure status in Appwrite

    ๐Ÿ‘Ÿ Reproduction steps Succesfully created a float through SDK. appwriteDatabase.createFloatAttribute(collectionId = collection.id, key = "key", min = 0.00, required = false, default = 0.00)

    ๐Ÿ‘ Expected behavior Shows succesful Status in Appwrite Server

    ๐Ÿ‘Ž Actual Behavior Shows failure Status in Appwrite Server:

    image

    Error in appwrite-worker-database: Default value 0 does not match given type double

    ๐ŸŽฒ Appwrite version Version 0.12.1

    ๐Ÿ’ป Operating system Windows

    ๐Ÿงฑ Your Environment Appwrite v0.12.1 - sdk-for-kotlin v0.2.5 Java v11 Kotlin v1.6.10

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before? I checked and didn't find similar issue ๐Ÿข Have you read the Code of Conduct? I have read the Code of Conduct

    bug 
    opened by Caryntjen 10
  • ๐Ÿ› Bug Report: Deletion of collection and recreating it fails and gives a duplication error

    ๐Ÿ› Bug Report: Deletion of collection and recreating it fails and gives a duplication error

    ๐Ÿ‘Ÿ Reproduction steps Collection TEST with same ID exists. Deleting and creating collection gives error in the logs. The collection is succesfully deleted. But the creation fails.

        private var appwriteClient: Client = Client()
            .setEndpoint(APPWRITE_ENDPOINT)
            .setProject(APPWRITE_PROJECT)
            .setKey(APPWRITE_KEY)
            .setSelfSigned(false)
        val appwriteDatabase = Database(appwriteClient)
            
                appwriteDatabase.deleteCollection( "TEST")
                
            val collection: Collection = appwriteDatabase.createCollection(
                collectionId = "TEST",
                name =  "TEST",
                read = ["team:xxx"],
                write = ["team:xxx"],
                permission = "collection"
    

    ๐Ÿ‘ Expected behavior Deletion and creation should work. And once the deletion is executed, it should be possible to create a database with same name and id.

    ๐Ÿ‘Ž Actual Behavior Shows the following error in Appwrite where it complains about a dupliocate key.

    [Error] Type: PDOException
    [Error] Message: Duplicate key name '_index2'
    [Error] File: @swoole-src/library/core/Database/PDOStatementProxy.php
    [Error] Line: 64
    

    ๐ŸŽฒ Appwrite version Version 0.12.1

    ๐Ÿ’ป Operating system Windows

    ๐Ÿงฑ Your Environment Appwrite v0.12.1 - sdk-for-kotlin v0.2.5 Java v11 Kotlin v1.6.10

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before? I checked and didn't find similar issue ๐Ÿข Have you read the Code of Conduct? I have read the Code of Conduct

    opened by Caryntjen 5
  • ๐Ÿ› Bug Report: Using listCollections and search parameter gives an error 500

    ๐Ÿ› Bug Report: Using listCollections and search parameter gives an error 500

    ๐Ÿ‘Ÿ Reproduction steps I try to retrieve a list of Collection. Currently I have a collection with NAME: MEMBER and ID: MEMBER . I try to retrieve this collection with the following val collectionList = db.listCollections(search = "MEMBER")

    ๐Ÿ‘ Expected behavior Get a proper CollectionList object, and a 200 for the call.

    ๐Ÿ‘Ž Actual Behavior I get the following errors:

    Exception in thread "main" io.appwrite.exceptions.AppwriteException: {"message":"Error: Server Error","code":500,"version":"0.12.1"}
    	at io.appwrite.Client$awaitResponse$2$1.onResponse(Client.kt:336)
    	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    	at java.base/java.lang.Thread.run(Thread.java:829)
    

    In appwrite logging I get the following error:

    [Error] File: /usr/src/code/vendor/utopia-php/framework/src/App.php
    [Error] Line: 756
    [Error] Type: PDOException
    [Error] Message: Can't find FULLTEXT index matching the column list
    [Error] File: @swoole-src/library/core/Database/PDOStatementProxy.php
    [Error] Line: 64
    

    ๐ŸŽฒ Appwrite version Version 0.12.1

    ๐Ÿ’ป Operating system Windows

    ๐Ÿงฑ Your Environment Appwrite v0.12.1 - sdk-for-kotlin v0.2.4 Java v11 Kotlin v1.6.10

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before? I checked and didn't find similar issue ๐Ÿข Have you read the Code of Conduct? I have read the Code of Conduct

    opened by Caryntjen 5
  • ๐Ÿ› Bug Report: Using Java v17 doesn't show proper Appwrite Exception message

    ๐Ÿ› Bug Report: Using Java v17 doesn't show proper Appwrite Exception message

    ๐Ÿ‘Ÿ Reproduction steps

    When I try call createEnumAttribute from server when the collection exists I get a stacktrace error, similar things happen to Floats. (Integer, Boolean, URL and Email work; IP not tested)

    For example:

    database.createEnumAttribute(collectionId = "xxxxxx", key = "enumTest", elements = arrayListOf("OPTION"), required = false, default = "OPTION")
    
    database.createFloatAttribute(collectionId = "xxxxxx", key = "floatTest", min = "0.00", required = false, default = "0.00")
    

    ๐Ÿ‘ Expected behavior

    Proper AppwriteException message (for the floats) when using Java v11 Exception in thread "main" io.appwrite.exceptions.AppwriteException: Invalid default: Value must be a valid float at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at com.google.gson.internal.ConstructorConstructor$3.construct(ConstructorConstructor.java:110) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212) at com.google.gson.Gson.fromJson(Gson.java:932) at com.google.gson.Gson.fromJson(Gson.java:897) at com.google.gson.Gson.fromJson(Gson.java:846) at com.google.gson.Gson.fromJson(Gson.java:817) at io.appwrite.Client$awaitResponse$2$1.onResponse(Client.kt:371) at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)

    ๐Ÿ‘Ž Actual Behavior

    Stacktrace for Enums, Floats:

    Exception in thread "OkHttp Dispatcher" java.lang.reflect.InaccessibleObjectException: Unable to make field private java.lang.String java.lang.Throwable.detailMessage accessible: module java.base does not "opens java.lang" to unnamed module @6b0c2d26
    	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
    	at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
    	at com.google.gson.internal.reflect.UnsafeReflectionAccessor.makeAccessible(UnsafeReflectionAccessor.java:44)
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:159)
    	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)
    	at com.google.gson.Gson.getAdapter(Gson.java:458)
    	at com.google.gson.Gson.fromJson(Gson.java:931)
    	at com.google.gson.Gson.fromJson(Gson.java:897)
    	at com.google.gson.Gson.fromJson(Gson.java:846)
    	at com.google.gson.Gson.fromJson(Gson.java:817)
    	at io.appwrite.Client$awaitResponse$2$1.onResponse(Client.kt:371)
    	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.lang.Thread.run(Thread.java:833)
    

    ๐ŸŽฒ Appwrite version

    Different version (specify in environment)

    ๐Ÿ’ป Operating system

    Windows

    ๐Ÿงฑ Your Environment

    • appwrite 0.12.1
    • io.appwrite:sdk-for-kotlin:0.2.2

    other dependencies: implementation 'org.jetbrains.kotlin:kotlin-reflect:1.6.10' implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.6.10' implementation "io.appwrite:sdk-for-kotlin:0.2.2" implementation "com.sun.xml.bind:jaxb-impl:3.0.2" implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2' implementation "org.apache.logging.log4j:log4j-api-kotlin:1.1.0" implementation 'org.apache.logging.log4j:log4j-api:2.17.1' implementation 'org.apache.logging.log4j:log4j-core:2.17.1' implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0" implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1"

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    bug 
    opened by Caryntjen 5
  • ๐Ÿ› Bug Report:

    ๐Ÿ› Bug Report:

    ๐Ÿ‘Ÿ Reproduction steps

    launch(Dispatchers.IO) {
        try {
            val client = Client()
                .setEndpoint("http://127.0.0.1/v1")
                .setProject("619505812e4d0")
                .setKey("94c9dad4e9041994a7470289b01c69......d87bd7d4d27a5ea30c804cae865")
                .setSelfSigned(true)
    
            val database = io.appwrite.services.Database(client)
    
            for (i in 0..10000) {
                val response = database.createDocument(
                    collectionId = "6195069ccabcf",
                    data = mapOf(
                        "userId" to "user${i}@gmail.com",
                        "premiumStatus" to true,
                        "expiredTo" to 123456
                    ),
                )
                val json = response.isSuccessful
                log.info("res $i is $json")
                delay(10)
            }
    
        } catch (e: Exception) {
            log.error("Exception: ", e)
        } catch (er: AppwriteException) {
            log.error("AppwriteException: ", er)
        }
    }
    

    ๐Ÿ‘ Expected behavior

    All this was done for the sake of verification. It was expected that all documents (data) will be successfully created or the server will not hang from this.

    ๐Ÿ‘Ž Actual Behavior

    The service is now unavailable and does not restart. Restarting Docker, containers gave no results.

    ๐ŸŽฒ Appwrite version

    Version 0.10.x

    ๐Ÿ’ป Operating system

    Windows

    ๐Ÿงฑ Your Environment

    I use WSL2

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    bug 
    opened by tequilaonelove 5
  • Upgrade our issue templates to use GitHub issue forms โœ๏ธ

    Upgrade our issue templates to use GitHub issue forms โœ๏ธ

    Introduction

    GitHub has recently rolled out a public beta for their issue forms feature. This would allow you to create interactive issue templates and validate them ๐Ÿคฏ.

    Appwrite currently uses the older issue template format. Your task is to create GitHub issue forms for this repository. Please use Appwrite's issue templates as a reference for this PR.

    Tasks summary:

    • [ ] Fork & clone this repository
    • [ ] Prepare bug report issue form in .github/ISSUE_TEMPLATE/bug.yaml
    • [ ] Prepare documentation issue form in .github/ISSUE_TEMPLATE/documentation.yaml
    • [ ] Prepare feature request issue form in .github/ISSUE_TEMPLATE/feature.yaml
    • [ ] Push changes to master and test issue forms on your fork
    • [ ] Submit pull request

    If you need any help, reach out to us on our Discord server.

    Are you ready to work on this issue? ๐Ÿค” Let us know, and we will assign it to you ๐Ÿ˜Š

    Happy Appwriting!

    good first issue hacktoberfest 
    opened by Meldiron 5
  • ๐Ÿ“š Maven repositories are not updated

    ๐Ÿ“š Maven repositories are not updated

    ๐Ÿ’ญ Description

    Maven repositories are not updated.

    • Maven central repository is missing 0.1.1 release: https://mvnrepository.com/artifact/io.appwrite/sdk-for-kotlin
    • Sonatype is missing 0.2.0-SNAPSHOT: https://s01.oss.sonatype.org/content/repositories/snapshots/io/appwrite/sdk-for-kotlin/

    Both those versions are released as per releases page but are not available for use.

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    documentation 
    opened by zlmr 4
  • Upgrade issue template to Github Issue Forms

    Upgrade issue template to Github Issue Forms

    This PR resolves #10

    I have completed the following tasks:

    • [x] Fork & clone this repository
    • [x] Prepare bug report issue form in .github/ISSUE_TEMPLATE/bug.yaml
    • [x] Prepare documentation issue form in .github/ISSUE_TEMPLATE/documentation.yaml
    • [x] Prepare feature request issue form in .github/ISSUE_TEMPLATE/feature.yaml
    • [x] Push changes to master and test issue forms on your fork
    • [x] Submit pull request

    @Meldiron Please review it and suggest the required changes

    hacktoberfest-accepted 
    opened by KKVANONYMOUS 4
  • ๐Ÿ› Bug Report: Creating collection and creating attribute gives error in the logs.

    ๐Ÿ› Bug Report: Creating collection and creating attribute gives error in the logs.

    ๐Ÿ‘Ÿ Reproduction steps Creating collection and creating attribute(s)gives error in the logs. But it does create the collection.

        private var appwriteClient: Client = Client()
            .setEndpoint(APPWRITE_ENDPOINT)
            .setProject(APPWRITE_PROJECT)
            .setKey(APPWRITE_KEY)
            .setSelfSigned(false)
        val appwriteDatabase = Database(appwriteClient)
            
            val collection: Collection = appwriteDatabase.createCollection(
                collectionId = "TEST",
                name =  "TEST",
                read = ["team:xxx"],
                write = ["team:xxx"],
                permission = "collection"
                
                
            appwriteDatabaseTest.createEmailAttribute(collectionId = "TEST", key = "email", required = false)
        
    

    ๐Ÿ‘ Expected behavior No error expected

    ๐Ÿ‘Ž Actual Behavior Shows the following error in Appwrite:

    [Error] Timestamp: 2022-01-30T23:39:16+00:00
    [Error] Method: GET
    [Error] URL: /v1/database/collections/:collectionId
    [Error] Type: Utopia\Exception
    [Error] Message: Collection not found
    [Error] File: /usr/src/code/app/controllers/api/database.php
    [Error] Line: 266
    

    ๐ŸŽฒ Appwrite version Version 0.12.1

    ๐Ÿ’ป Operating system Windows

    ๐Ÿงฑ Your Environment Appwrite v0.12.1 - sdk-for-kotlin v0.2.5 Java v11 Kotlin v1.6.10

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before? I checked and didn't find similar issue ๐Ÿข Have you read the Code of Conduct? I have read the Code of Conduct

    opened by Caryntjen 2
  • Wrong response type when creating document

    Wrong response type when creating document

    database.createDocument returns DocumentList object response but the SDK waits for Document object response.

    Error when executing database.createDocument:

    Exception in thread "OkHttp Dispatcher" java.lang.NullPointerException: null cannot be cast to non-null type kotlin.String
    	at io.appwrite.models.Document$Companion.from(Document.kt:42)
    	at io.appwrite.services.Database$createDocument$converter$1.invoke(Database.kt:770)
    	at io.appwrite.services.Database$createDocument$converter$1.invoke(Database.kt:769)
    	at io.appwrite.Client$awaitResponse$2$1.onResponse(Client.kt:472)
    	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.lang.Thread.run(Thread.java:833)
    

    The same issue is present on the Android SDK side.

    opened by OKatrych 1
  • Appwrite 1.2.0 support

    Appwrite 1.2.0 support

    What does this PR do?

    (Provide a description of what this PR does.)

    Test Plan

    (Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)

    Related PRs and Issues

    (If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

    Have you read the Contributing Guidelines on issues?

    (Write your answer here.)

    opened by Meldiron 0
  • ๐Ÿš€ Feature: Migrate SDk to Support to KotlinMultiPlatform

    ๐Ÿš€ Feature: Migrate SDk to Support to KotlinMultiPlatform

    ๐Ÿ”– Feature description

    Migrate lib to KMP structure and replace following:

    • GSON -> kotlinx.serialization
    • okhttp -> ktor

    to support multiple targets like, Android, JVM, IOS, maybe Native too(for MacOS, Windows, Linux).

    Are you open to PRs for same ?

    ๐ŸŽค Pitch

    why keep kotlin sdk only scoped to jvm, Kotlin Targets more platforms.

    ๐Ÿ‘€ Have you spent some time to check if this issue has been raised before?

    • [X] I checked and didn't find similar issue

    ๐Ÿข Have you read the Code of Conduct?

    enhancement 
    opened by Shabinder 1
Releases(1.2.0)
  • 1.2.0(Dec 27, 2022)

    What's Changed

    • Appwrite 1.2.0 support by @Meldiron in https://github.com/appwrite/sdk-for-kotlin/pull/28

    New Contributors

    • @Meldiron made their first contribution in https://github.com/appwrite/sdk-for-kotlin/pull/28

    Full Changelog: https://github.com/appwrite/sdk-for-kotlin/compare/1.1.0...1.2.0

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Sep 22, 2022)

    What's Changed

    • chore: update role helper class by @christyjacob4 in https://github.com/appwrite/sdk-for-kotlin/pull/27

    Full Changelog: https://github.com/appwrite/sdk-for-kotlin/compare/1.0.0...1.1.0

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Sep 14, 2022)

    NEW

    • Support for Appwrite 1.0.0
    • More verbose headers have been included in the Clients - x-sdk-name, x-sdk-platform, x-sdk-language, x-sdk-version
    • Helper classes and methods for Permissions, Roles and IDs
    • Helper methods to suport new queries
    • All Dates and times are now returned in the ISO 8601 format
    • Execution Model now has an additional stdout attribute
    • Endpoint for creating DateTime attribute
    • User imports API with support for multiple hashing algorithms
    • CRUD API for functions environment variables
    • createBucket now supports different compression algorithms

    BREAKING CHANGES

    • databaseId is no longer part of the Database Service constructor. databaseId will be part of the respective methods of the database service.
    • The Users.create() method signature has now been updated to include a phone parameter
    • color attribute is no longer supported in the Avatars Service
    • The number argument in phone endpoints have been renamed to phone
    • List endpoints no longer support limit, offset, cursor, cursorDirection, orderAttributes, orderTypes as they have been moved to the queries array
    • read and write permission have been deprecated and they are now included in the permissions array
    • Parameter permission for collections and buckets are now renamed to documentSecurity & fileSecurity respectively
    • All get prefixed endpoints returning lists have been re-prefixed to list
    • Renamed methods of the Query helper
      1. lesser renamed to lessThan
      2. lesserEqual renamed to lessThanEqual
      3. greater renamed to greaterThan
      4. greaterEqual renamed to greaterThanEqual

    Full Changelog for Appwrite 1.0.0 can be found here: https://github.com/appwrite/appwrite/blob/master/CHANGES.md

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0-SNAPSHOT(Sep 6, 2022)

    NEW

    • Support for Appwrite 1.0.0-RC1
    • More verbose headers have been included in the Clients - x-sdk-name, x-sdk-platform, x-sdk-language, x-sdk-version
    • Helper classes and methods for Permissions, Roles and IDs
    • Helper methods to suport new queries
    • All Dates and times are now returned in the ISO 8601 format
    • Execution Model now has an additional stdout attribute
    • Endpoint for creating DateTime attribute
    • User imports API with support for multiple hashing algorithms
    • CRUD API for functions environment variables
    • createBucket now supports different compression algorithms

    BREAKING CHANGES

    • databaseId is no longer part of the Database Service constructor. databaseId will be part of the respective methods of the database service.
    • The Users.create() method signature has now been updated to include a phone parameter
    • color attribute is no longer supported in the Avatars Service
    • The number argument in phone endpoints have been renamed to phone
    • List endpoints no longer support limit, offset, cursor, cursorDirection, orderAttributes, orderTypes as they have been moved to the queries array
    • read and write permission have been deprecated and they are now included in the permissions array
    • Parameter permission for collections and buckets are now renamed to documentSecurity & fileSecurity respectively
    • Renamed methods of the Query helper
      1. lesser renamed to lessThan
      2. lesserEqual renamed to lessThanEqual
      3. greater renamed to greaterThan
      4. greaterEqual renamed to greaterThanEqual

    Full Changelog for Appwrite 1.0.0-RC1 can be found here: https://github.com/appwrite/appwrite/blob/master/CHANGES.md

    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Jun 28, 2022)

    • Support for Appwrite 0.15
    • BREAKING Database -> Databases
    • BREAKING account.createSession() -> account.createEmailSession()
    • BREAKING dateCreated attribute removed from Team, Execution, File models
    • BREAKING dateCreated and dateUpdated attribute removed from Func, Deployment, Bucket models
    • BREAKING Realtime channels
      • collections.[COLLECTION_ID] is now databases.[DATABASE_ID].ollections.[COLLECTION_ID]
      • collections.[COLLECTION_ID].documents is now databases.[DATABASE_ID].ollections.[COLLECTION_ID].documents

    Full Changelog for Appwrite 0.15 can be found here: https://github.com/appwrite/appwrite/blob/master/CHANGES.md#version-0150

    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(May 17, 2022)

    • Support for 0.14.0
    • BREAKING CHANGE Renamed providers to authProviders in Projects
    • BREAKING CHANGE Renamed stdout to response in Execution
    • BREAKING CHANGE Removed delete endpoint from the Accounts API
    • BREAKING CHANGE Renamed name to userName on Membership response model
    • BREAKING CHANGE Renamed event to events on Realtime Response and now is an array of strings
    • Added teamName to Membership response model
    • Added new endpoint to update user's status from the Accounts API

    Full Changelog: https://github.com/appwrite/sdk-for-kotlin/compare/0.4.0...0.5.0

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Apr 13, 2022)

  • 0.3.0(Mar 3, 2022)

    • Support for Appwrite 0.13
    • BREAKING Tags have been renamed to Deployments
    • BREAKING createFile function expects Bucket ID as the first parameter
    • BREAKING createDeployment and createFile functions expect a file path rather than the file itself
    • BREAKING list<Entity> endpoints now contain a total attribute instead of sum
    • onProgress() callback function for endpoints supporting file uploads
    • Support for synchronous function executions
    • Bug fixes and Improvements

    Full Changelog for Appwrite 0.13 can be found here: https://github.com/appwrite/appwrite/blob/master/CHANGES.md#version-0130

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0-SNAPSHOT(Mar 1, 2022)

  • 0.2.5(Jan 28, 2022)

  • 0.2.4(Jan 25, 2022)

  • 0.2.4-SNAPSHOT(Jan 21, 2022)

  • 0.2.2(Jan 12, 2022)

  • 0.2.1(Jan 6, 2022)

  • 0.2.0(Jan 6, 2022)

  • 0.2.0-SNAPSHOT(Nov 25, 2021)

  • 0.1.1(Oct 18, 2021)

  • 0.1.0(Sep 2, 2021)

    Kotlin 0.1.0

    [Client] Add suport for Appwrite 0.10 [Users] Added updateEmail function [Users] Added updateName function [Users] Added updatePassword function

    Source code(tar.gz)
    Source code(zip)
  • 0.0.1-SNAPSHOT(Jul 2, 2021)

  • 0.0.1(Jul 2, 2021)

Owner
Appwrite
End to end backend server for frontend and mobile developers. ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป
Appwrite
Segmenkt - The SegmenKT Kotlin SDK is a Kotlin-first SDK for Segment

SegmenKT Kotlin SDK The SegmenKT Kotlin SDK is a Kotlin-first SDK for Segment. I

UNiDAYS 0 Nov 25, 2022
HubSpot Kotlin SDK ๐Ÿงบ Implementation of HubSpot API for Java/Kotlin in tiny SDK

HubSpot Kotlin SDK ?? Implementation of HubSpot API for Java/Kotlin in tiny SDK

BOOM 3 Oct 27, 2022
Sdk-android - SnapOdds Android SDK

Documentation For the full API documentation go to https://snapodds.github.io/sd

Snapodds 0 Jan 30, 2022
Frogo SDK - SDK Core for Easy Development

SDK for anything your problem to make easier developing android apps

Frogobox 10 Dec 15, 2022
Its measurement app made using kotlin with sceneform sdk by google

ARCORE MEASUREMENT This app is build using sceneform sdk for android using kotlin language It helps you measure the distance between multiple points i

Kashif Mehmood 39 Dec 9, 2022
Storyblok Kotlin Multiplatform SDK sample (Android, JVM, JS)

storyblok-mp-SDK-sample *WIP* ... a showcase of the Storyblok Kotlin Multiplatform Client SDK. (Android, JVM, JS, iOS, ...) What's included ?? โ€ข About

Mike Penz 6 Jan 8, 2022
Kotlin Multi Platform SDK

Xeon SDK (work-in-progress ?? ??๏ธ ??โ€โ™€๏ธ โ› ) Development Version Release This Is Latest Release ~ In Development $version_release = ~ What's New?? * I

Frogobox 3 Oct 15, 2021
NextPay Kotlin SDK

Welcome to nextpay-kt ?? Connect to NextPay.ir payment gateway in easy way. ?? Homepage Setup Kotlin KTS 1- Add mavenCentral() to your repositories se

Farhad 5 Nov 6, 2021
WalletConnect Kotlin SDK v2

WalletConnect V2 - Kotlin Kotlin implementation of WalletConnect v2 protocol for Android applications. Requirements Android min SDK 21 Java 11 Install

WalletConnect Labs 11 Dec 22, 2021
Streem Server SDK for Java & Kotlin

Streem Server SDK for Java & Kotlin Server-side JVM library for interacting with the Streem API, and generation of Streem Tokens for use in client SDK

Streem, Inc. 1 Dec 15, 2022
Implement a Casper Kotlin SDK to interact with the Casper network.

CSPR-Kotlin-SDK Kotlin SDK library for interacting with a CSPR node. What is CSPR-Kotlin-SDK? SDK to streamline the 3rd party Kotlin client integratio

null 2 Mar 28, 2022
Java/Kotlin WE contract SDK.

we-contract-sdk Java/Kotlin contract SDK used for building Docker smart contracts. All transaction handling is done via methods of a single class mark

Waves Enterprise 19 Oct 10, 2022
Android Word/Letter Tracing SDK is a complet solution to build apps for kids learning in pure kotlin

Android Word/Letter Tracing SDK is a complet solution to build apps for kids learning in pure kotlin. It supports all kind of shapes and all language letters e.g. english, arabic, Urdu, hindi etc.

null 9 Oct 16, 2022
AWS SDK for Android. For more information, see our web site:

AWS SDK for Android For new projects, we recommend interacting with AWS using the Amplify Framework. The AWS SDK for Android is a collection of low-le

AWS Amplify 976 Dec 29, 2022
Countly Product Analytics Android SDK

Countly Android SDK We're hiring: Countly is looking for Android SDK developers, full stack devs, devops and growth hackers (remote work). Click this

Countly Team 648 Dec 23, 2022
Android Real Time Chat & Messaging SDK

Android Chat SDK Overview Applozic brings real-time engagement with chat, video, and voice to your web, mobile, and conversational apps. We power emer

Applozic 659 May 14, 2022
Evernote SDK for Android

Evernote SDK for Android version 2.0.0-RC4 Evernote API version 1.25 Overview This SDK wraps the Evernote Cloud API and provides OAuth authentication

Evernote 424 Dec 9, 2022
Air Native Extension (iOS and Android) for the Facebook mobile SDK

Air Native Extension for Facebook (iOS + Android) This is an AIR Native Extension for the Facebook SDK on iOS and Android. It has been developed by Fr

Freshplanet 219 Nov 25, 2022
Android Chat SDK built on Firebase

Chat21 is the core of the open source live chat platform Tiledesk.com. Chat21 SDK Documentation Features With Chat21 Android SDK you can: Send a direc

Chat21 235 Dec 2, 2022