Skip to content

supabase-community/supabase-kt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

supabase-kt

A Kotlin Multiplatform Client for Supabase.

For information about supported Kotlin targets, see the corresponding module README.

Migrating from version 2.X to 3.0.0

Note: The WASM-JS target for supported modules is only available for version 3.0.0 and above

Kotlin Ktor slack

Links

Documentation

Samples

Getting started with Android and Supabase [Video]

Quickstart

Tutorial: Build a Product Management Android App with Jetpack Compose

Dokka documentation for the latest version

Troubleshooting

Installation

Add one or more modules to your project

Available modules: auth-kt*, postgrest-kt, functions-kt, storage-kt, realtime-kt, apollo-graphql, compose-auth, compose-auth-ui, coil-integration, coil3-integration, imageloader-integration

dependencies {
    implementation("io.github.jan-tennert.supabase:[module]:VERSION")
}

* Before version 3.0.0, the module was called gotrue-kt.

If you use multiple modules, you can use the bom dependency to get the correct versions for all modules:

implementation(platform("io.github.jan-tennert.supabase:bom:VERSION"))
implementation("io.github.jan-tennert.supabase:[module]")

Note that the minimum Android SDK version is 26. For lower versions, you need to enable core library desugaring.

Add a Ktor Client Engine to each of your Kotlin targets

You can find a list of available engines here. If you plan to use the Realtime dependency, make sure to check if the engine supports WebSockets. See the Ktor docs for more information.

implementation("io.ktor:ktor-client-[engine]:VERSION")
Multiplatform Example

For targets: jvm, android, js, ios

val commonMain by getting {
    dependencies {
        //supabase modules
    }
}
val jvmMain by getting {
    dependencies {
        implementation("io.ktor:ktor-client-cio:KTOR_VERSION")
    }
}
val androidMain by getting {
    dependsOn(jvmMain)
}
val jsMain by getting {
    dependencies {
        implementation("io.ktor:ktor-client-js:KTOR_VERSION")
    }
}
val iosMain by getting {
    dependencies {
        implementation("io.ktor:ktor-client-darwin:KTOR_VERSION")
    }
}

Note: It is recommended to use the same Ktor version as supabase-kt:

For 3.0.0 and above: Ktor

For versions below 3.0.0: Ktor

Main Modules

Plugins

Miscellaneous

Samples

Multiplatform Applications

Official Samples

  • Chat Demo (Desktop/Android/iOS/Browser) - A simple chat application using the Auth, Postgrest and Realtime module.
  • File Upload Demo (Desktop/Android) - A simple bulk file upload application using the Storage module.
  • Multi-Factor Authentication (Desktop/Android/Browser) - A simple application showcasing Multi-Factor Authentication.

Community Samples

Server-side Applications

Community Samples

Need help?

Videos

Contribution

Checkout the contribution guidelines for more information.

Credits

Sponsoring

If you like the project and want to support it, consider sponsoring me on Ko-fi or directly on PayPal.