A public native Android application showing how to use the compiled
app.convokit:convokit-android-ui Jetpack Compose package from
https://maven.convokit.app.
This repository contains demo integration code only. The reusable UI package implementation stays in its private source repository.
| Standard components | Branded support | Compact operations |
|---|---|---|
![]() |
![]() |
![]() |
The app includes four navigable examples:
- Standard uses the Material 3 defaults with media, read receipts, typing, pagination, and the composer.
- Branded applies a custom palette and replaces the list row, header, media wrapper, read receipt, and composer styling.
- Compact changes sizing tokens and replaces the complete message row.
- Live connects the real SDK, joins a room through an application backend, and renders the SDK-backed conversation component.
Open the repository in Android Studio and run the app configuration, or:
./gradlew :app:installDebugThe debug APK is generated at app/build/outputs/apk/debug/app-debug.apk.
The project resolves the private implementation's compiled artifacts from the public, unauthenticated ConvoKit Maven feed:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven("https://maven.convokit.app/")
}
}
dependencies {
implementation("app.convokit:convokit-android-ui:0.4.0")
}The UI artifact exposes the compatible core SDK transitively. An application
may also declare app.convokit:convokit-android:0.4.0 explicitly.
The checked-in defaults use the deliberately open ConvoKit demo broker at https://convokit-open-chatroom.vercel.app. Enter a unique demo user ID and an existing room ID. The broker grants demo membership and returns the short-lived token used by the Android SDK.
Joining by room ID is intentionally application/backend logic, not a UI SDK component. Real products must decide who is allowed to join, how invite codes map to rooms, and how their users are authenticated.
Once authorized, create the adapter after connectUser() succeeds. Retain it
for that login and create a new one on every subsequent login, even when the
public user ID is unchanged. Clear the chat UI on logout and disconnect the SDK
when leaving the live example. LiveChatScreen.kt demonstrates this ownership.
Then render:
ConvoKitConversation(
client = DefaultConvoKitUiClient(connectedSdk),
conversationId = joinedRoomId,
)The client ID is public. Never put a ConvoKit client secret in an APK,
BuildConfig, resource, manifest, or mobile request. Production token endpoints
must authenticate the host application's user and derive the app-user ID on the
server.
See the Android UI documentation and native Android SDK documentation.


