DEV Community

Cover image for Kotlin In Appwrite
Oshi Gupta
Oshi Gupta

Posted on • Updated on

Kotlin In Appwrite

Appwrite is an end-to-end backend server that is aiming to abstract the complexity of common, complex, and repetitive tasks required for building a modern app.

Appwrite is both cross-platform and technology agnostic, meaning it can run on any operating system, coding language, framework, or platform. Although Appwrite can easily fit the definition of serverless technology, it's designed to run well in multiple configurations.
It provides various libraries for major programming languages and platforms so you don't have to write code for interacting with our HTTP APIs from scratch.

Appwrite has divided SDKs into two categories

  • Client SDKs
  • Server SDKs

Client SDKs

  • Web SDK
  • Flutter SDK
  • Apple SDK
  • Android SDK

Server SDKs

  • Kotlin SDK
  • Dart SDK
  • Swift SDK
  • Python SDK
  • Ruby SDK and etc

Here we will be seeing how to use kotlin in Appwrite functions

So what is Kotlin?

Kotlin is a cross-platform, statically typed, general-purpose programming language with type inference.

Kotlin is designed to interoperate fully with Java, and the JVM version of Kotlin's standard library depends on the Java Class Library, but type inference allows its syntax to be more concise.

So how to write kotlin in appwrite function and for this install Kotlin SDK by following the below instructions

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()
} 
Enter fullscreen mode Exit fullscreen mode
  • Next, add the dependency to your project's build.gradle(.kts) file:
dependencies {
    implementation("io.appwrite:sdk-for-kotlin:")
}
Enter fullscreen mode Exit fullscreen mode

MAVEN

  • Add this to your pom.xml
<dependencies>
    <dependency>
        <groupId>io.appwrite</groupId>
        <artifactId>sdk-for-kotlin</artifactId>
        <version>0.1.1</version>
    </dependency>
</dependencies>
Enter fullscreen mode Exit fullscreen mode

Add the function

You can add a new function from your Appwrite project's dashboard. Access your Functions settings from your project's left navigation panel. Click the Add Function button and choose your function name and code runtime.

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.

This can be found out when you install Appwrite according to the Operating System and access the Appwrite Console UI

import io.appwrite.Client

val client = Client()
client
    .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
    .setProject('5df5acd0d48c2') // Your project ID
    .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
Enter fullscreen mode Exit fullscreen mode

Make your First Request

import io.appwrite.services.Users

val users = Users(client);

val res = users.create(email = 'email@example.com', password = 'password');
println(res.body?.string())
Enter fullscreen mode Exit fullscreen mode

As of now, we have seen how to set up the functions and Kotlin SDK.
Now, we will be seeing different operations which can be performed on these functions.

  • Create functions : To create a new function with help of Kotlin
import io.appwrite.Client
import io.appwrite.services.Functions

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

    val functions = Functions(client)
    val response = functions.create(
        name = "[NAME]",
        execute = listOf(),
        runtime = "dotnet-5.0",
    )
    val json = response.body?.string()
}
Enter fullscreen mode Exit fullscreen mode
  • List functions : To get a list of all the project's functions. You can use the query params to filter your results.
import io.appwrite.Client
import io.appwrite.services.Functions
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 
val functions = Functions(client) 
val response = functions.list( ) 
val json = response.body?.string() }
Enter fullscreen mode Exit fullscreen mode
  • Get function : It will get a function by its unique ID.
val response = functions.get( functionId = "[FUNCTION_ID]" )
Enter fullscreen mode Exit fullscreen mode
  • Update function : It will update the function by its unique ID.
val response = functions.update( 
functionId = "[FUNCTION_ID]",
name = "[NAME]", 
execute = listOf(), 
)
Enter fullscreen mode Exit fullscreen mode
  • Delete function : It will delete a function by its unique ID.
val response = functions.delete( functionId = "[FUNCTION_ID]" ) 
Enter fullscreen mode Exit fullscreen mode
  • Create execution : Trigger a function execution. The returned object will return you the current execution status. You can ping the Get Execution endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.
val response = functions.createExecution( functionId = "[FUNCTION_ID]", )
Enter fullscreen mode Exit fullscreen mode

So this is the basic idea of how to create functions in the Appwrite using the Kotlin SDK.
For more you can always refer to appwrite docs

Thank You

Discussion (0)