Getting Started for Android
Appwrite is a development platform that provides a powerful API and management console to get your next project up and running quickly.
Create your first project now and start building on Appwrite Cloud.
Add your Android Platform
To init your SDK and start interacting with Appwrite services, you need to add a new Android platform to your project. To add a new platform, go to your Appwrite console, choose the project you created in the step before, and click the 'Add Platform' button. Only API requests initiated from platforms added to your Appwrite project will be accepted. This prevents unauthorized apps from accessing your Appwrite project.
From the options, choose to add a new Android platform and add add your app name and package name, your package name is generally the applicationId in your app-level build.gradle file. By registering your new app platform, you are allowing your app to communicate with the Appwrite API.
Get Appwrite Android SDK
First, add this to your root level build.gradle file:
repositories {
mavenCentral()
}
Then add this to your project's build.gradle file:
implementation("io.appwrite:sdk-for-android:2.0.0")
OAuth Callback
In order to capture the Appwrite OAuth callback url, the following activity needs to be added inside the `<application>` tag, along side the existing `<activity>` tags in your AndroidManifest.xml. Be sure to replace the [PROJECT_ID] string with your actual Appwrite project ID. You can find your Appwrite project ID in your project settings screen in your Appwrite console.
<manifest ...>
...
<application ...>
...
<!-- Add this inside the `<application>` tag, along side the existing `<activity>` tags -->
<activity android:name="io.appwrite.views.CallbackActivity" android:exported="true">
<intent-filter android:label="android_web_auth">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="appwrite-callback-[PROJECT_ID]" />
</intent-filter>
</activity>
</application>
</manifest>
Init your SDK
Initialize your SDK code with your project ID, which can be found in your project settings page.
import io.appwrite.Client
import io.appwrite.services.Account
val client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your Appwrite Endpoint
.setProject("[PROJECT_ID]") // Your project ID
Before sending any API calls to your new Appwrite project, make sure your Android device or emulator has network access to your Appwrite project's hostname or IP address.
Make Your First Request
After your SDK configuration is set, access any of the Appwrite services and choose any request to send. Full documentation for any service method you would like to use can be found in the SDK documentation or in the API References section.
// Register User
val account = Account(client)
val user = account.create(
userId = ID.unique(),
email = "email@example.com",
password = "password"
)
Listen to Changes
To listen to changes in realtime from Appwrite, subscribe to a variety of channels and receive updates within milliseconds. Full documentation for Realtime can be found here.
// Subscribe to files channel
val realtime = Realtime(client)
val subscription = realtime.subscribe("files") {
if (it.events.contains("buckets.*.files.*.create")) {
// Log when a new file is uploaded
print(it.payload.toString());
}
})
Full Example
import io.appwrite.Client
import io.appwrite.services.Account
val client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your Appwrite Endpoint
.setProject("[PROJECT_ID]") // Your project ID
val account = Account(client)
val user = account.create(
userId = ID.unique(),
email = "email@example.com",
password = "password"
)
// Subscribe to files channel
val realtime = Realtime(client)
val subscription = realtime.subscribe("files") {
if (it.events.contains("buckets.*.files.*.create")) {
// Log when a new file is uploaded
print(it.payload.toString());
}
}
Next Steps
Appwrite has many services and tools to help improve your app and speed up your development. The best way to learn how you can take advantage of them is to explore the different API references docs.