Skip to content

Latest commit

 

History

3,191 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

ko-fi

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

sourceSets {
    commonMain {
        dependencies {
            //Supabase modules
        }
    }
    jvmMain {
        dependencies {
            implementation("io.ktor:ktor-client-cio:KTOR_VERSION")
        }
    }
    androidMain {
        dependsOn(jvmMain.get())
    }
    jsMain {
        dependencies {
            implementation("io.ktor:ktor-client-js:KTOR_VERSION")
        }
    }
    iosMain {
        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

There are several plugins available to extend the functionality of supabase-kt. They can be installed in the createSupabaseClient function.

Some highlights include:

For more information, checkout supabase-kt-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

  • Groceries Store App (Android) - An e-commerce app using Auth, Postgrest and Storage
  • Supa Sketcher (Android) - An real-time white board app using anonymous sign-ins Auth, Postgrest and Realtime
  • SupaBuckt (Android/iOS) - A client app to browse buckets and files in a Supabase project

Server-side Applications

Community Samples

Need help?

Guides

A community series on building Android features with Supabase:

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.

Star History

Star History Chart