{"id":27657070,"url":"https://github.com/sendbird/sendbird-chat-sdk-android","last_synced_at":"2026-03-17T03:15:05.113Z","repository":{"id":39290913,"uuid":"480686958","full_name":"sendbird/sendbird-chat-sdk-android","owner":"sendbird","description":"Sendbird Chat SDK for Android","archived":false,"fork":false,"pushed_at":"2025-07-31T07:05:12.000Z","size":293,"stargazers_count":12,"open_issues_count":1,"forks_count":4,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-08-11T06:44:43.024Z","etag":null,"topics":["android","api-for-chat","bard","chat","chat-api","chat-api-platform","chat-gpt","chat-platform","chat-sdk","chatbot","communication-platform","genai","genai-chatbot","gpt-powered-chatbot","instant-messaging","llama2","messaging","messaging-api","messaging-platform","palm2"],"latest_commit_sha":null,"homepage":"https://sendbird.com/docs/chat/sdk/v4/android/overview","language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sendbird.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-04-12T06:46:13.000Z","updated_at":"2025-08-08T12:21:21.000Z","dependencies_parsed_at":"2023-02-17T04:46:11.208Z","dependency_job_id":"b7b146b5-190e-4d8b-b991-e83706653f38","html_url":"https://github.com/sendbird/sendbird-chat-sdk-android","commit_stats":{"total_commits":107,"total_committers":10,"mean_commits":10.7,"dds":0.4672897196261683,"last_synced_commit":"57db57bfe3bebe02953e58c629335c911a332f4d"},"previous_names":[],"tags_count":102,"template":false,"template_full_name":null,"purl":"pkg:github/sendbird/sendbird-chat-sdk-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-chat-sdk-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-chat-sdk-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-chat-sdk-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-chat-sdk-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sendbird","download_url":"https://codeload.github.com/sendbird/sendbird-chat-sdk-android/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-chat-sdk-android/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269857731,"owners_count":24486396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","api-for-chat","bard","chat","chat-api","chat-api-platform","chat-gpt","chat-platform","chat-sdk","chatbot","communication-platform","genai","genai-chatbot","gpt-powered-chatbot","instant-messaging","llama2","messaging","messaging-api","messaging-platform","palm2"],"created_at":"2025-04-24T06:53:56.235Z","updated_at":"2026-03-17T03:15:05.107Z","avatar_url":"https://github.com/sendbird.png","language":"Shell","readme":"# [Sendbird](https://sendbird.com) Chat SDK for Android\n\n[![Platform](https://img.shields.io/badge/platform-android-orange.svg)](https://github.com/sendbird/sendbird-chat-sdk-android)\n[![Languages](https://img.shields.io/badge/language-kotlin-orange.svg)](https://github.com/sendbird/sendbird-chat-sdk-android)\n[![This version of 'sendbird-chat' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/sendbird/release/maven/sendbird-chat/latest/a=noarch;xg=com.sendbird.sdk/?render=true\u0026show_latest=true)](https://cloudsmith.io/~sendbird/repos/release/packages/detail/maven/sendbird-chat/latest/a=noarch;xg=com.sendbird.sdk/)\n[![Commercial License](https://img.shields.io/badge/license-Commercial-brightgreen.svg)](https://github.com/sendbird/sendbird-chat-sdk-android/blob/main/LICENSE.md)\n\n## Table of contents\n\n1.  [Introduction](#introduction)\n1.  [Requirements](#requirements)\n1.  [Getting started](#getting-started)\n1.  [Sending your first message](#sending-your-first-message)\n1.  [Size of Chat SDK](#size-of-chat-sdk)\n1.  [Hiring](#we-are-hiring)\n\n\u003cbr /\u003e\n\n## Introduction\n\nThe Sendbird Chat SDK for Android allows you to add real-time chat into your client app with minimal effort. Sendbird offers a feature rich, scalable, and proven chat solution depended on by companies like Reddit, Hinge, PubG and Paytm.\n\u003cbr /\u003e\n\n### How it works\n\nThe Chat SDK provides the full functionality to provide a rich chat experience, implementing it begins by adding a user login, listing the available channels, selecting or creating an [open channel](https://sendbird.com/docs/chat/v4/android/guides/open-channel) or [group channel](https://sendbird.com/docs/chat/v4/android/guides/group-channel), and receive messages and other events through [channel event delegates](https://sendbird.com/docs/chat/v4/android/guides/event-delegate) and the ability to send a message. Once this basic functionality is in place, congratulations, you now have a chat app!\n\nOnce this is in place, take a look at [all the other features](https://sendbird.com/features/chat-messaging/features) that Sendbird supports and add what works best for your users.\n\u003cbr /\u003e\n\n### Documentation\n\nFind out more about Sendbird Chat for Android on [the documentation](https://sendbird.com/docs/chat/v4/android/getting-started/about-chat-sdk). If you have any comments, questions or feature requests, let us know in the [Sendbird community](https://community.sendbird.com).\n\u003cbr /\u003e\n\n## Requirements\n\nThe minimum requirements for the Chat SDK for Android are:\n\n- `Android 5.0 (API level 21) or higher`\n- `Java 8 or higher`\n- `Android Gradle plugin 3.4.2 or higher`\n- `Firebase Cloud Messaging 19.0.1 or higher`\n\n\u003e **Note**: Sendbird server supports Transport Layer Security (TLS) from version 1.0 up to 1.3. For example, in the server regions where TLS 1.3 isn’t available, lower versions, sequentially from 1.2 to 1.0, will be supported for secure data transmission.\n\n\u003cbr /\u003e\n\n## Getting started\n\nThe quickest way to get started is by using one of the sample apps from the [samples repo](https://github.com/sendbird/sendbird-chat-sample-android), create an application in the [Sendbird dashboard](https://dashboard.sendbird.com) and copy the `App ID` to the sample app and you’re ready to go.\n\n\u003cbr /\u003e\n\n## Step by step\n\n### Step 1: Create a Sendbird application from your dashboard\n\nBefore installing Sendbird Chat SDK, you need to create a Sendbird application on the [Sendbird Dashboard](https://dashboard.sendbird.com). You will need the `App ID` of your Sendbird application when initializing the Chat SDK.\n\n\u003e **Note**: Each Sendbird application can be integrated with a single client app. Within the same application, users can communicate with each other across all platforms, whether they are on mobile devices or on the web.\n\n\u003cbr /\u003e\n\n### Step 2: Install the Chat SDK\n\nInstalling the Chat SDK is simple if you're familiar with using external libraries or SDKs. First, add the following code to your **root** `build.gradle` file:\n\n```gradle\nallprojects {\n    repositories {\n        ...\n        maven { url \"https://repo.sendbird.com/public/maven\" }\n    }\n}\n```\n\n\u003e Note: Make sure the above code block isn't added to your module `build.gradle` file.\n\nIf using Gradle 6.8 or higher, add the following to your `settings.gradle` file:\n```gradle\ndependencyResolutionManagement {\n    repositories {\n        maven { url \"https://repo.sendbird.com/public/maven\" }\n    }\n}\n```\n\nThen, add the dependency to the project's top-level `build.gradle` file:\n\n```gradle\ndependencies {\n    ...\n    implementation 'com.sendbird.sdk:sendbird-chat:4.34.1'\n    ...\n}\n```\n\n#### - TLS 1.3\n\nTLS 1.3 is enabled by default in Sendbird SDK for Android. To disable it, please include the following configuration to the gradle dependency:\n\n\u003e Note: The SendBird Android SDK depends on the [Conscrypt](https://github.com/google/conscrypt) library in order to support TLS 1.3\n\n```gradle\ndependencies {\n    implementation ('com.sendbird.sdk:sendbird-chat:4.34.1') {\n        exclude group: 'org.conscrypt', module: 'conscrypt-android'\n    }\n}\n```\n\n### Step 3: Grant system permissions to the Chat SDK\n\nThe Chat SDK requires system permissions, which allow for communication with Sendbird server and the reading and writing on a user device’s storage To grant system permissions, add the following lines to your `AndroidManifest.xml` file.\n\n```xml\n\u003cuses-permission android:name=\"android.permission.INTERNET\" /\u003e\n\u003cuses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" /\u003e\n\u003cuses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" /\u003e\n```\n\n### (Optional) Configure ProGuard to shrink code and resources\n\nWhen you build your APK with `minifyEnabled true`, add the following line to the module's `ProGuard` rules file.\n\n```txt\n-dontwarn com.sendbird.android.shadow.**\n```\n\n\u003cbr /\u003e\n\n## Sending your first message\n\nNow that the Chat SDK has been imported, we're ready to start sending a message.\n\n### Authentication\n\nIn order to use the features of the Chat SDK, a `SendbirdChat` instance must be initiated through user authentication with Sendbird server. This instance communicates and interacts with the server based on an authenticated user account, and then the user’s client app can use the Chat SDK's features.\n\nHere are the steps to sending your first message using Chat SDK:\n\n\u003cbr /\u003e\n\n### Step 4: Initialize the Chat SDK\n\nNow, initialize the Chat SDK in the app to allow the Chat SDK to respond to changes in the connection status in Android client apps.\n\nTo initialize the `SendbirdChat` instance, pass the `APP_ID` of your Sendbird application in the [Sendbird Dashboard](https://dashboard.sendbird.com) as an argument to a parameter in the `SendbirdChat.init()` method. As the `SendbirdChat.init()` can only be a single instance, call it only a single time across your Android client app. Typically, initialization is implemented in the user login screen.\n\n\u003e Note: It is recommended to initialize the Chat SDK in the `onCreate()` method of the [`Application`](https://developer.android.com/reference/android/app/Application) instance.\n\n```kotlin\nSendbirdChat.init(InitParams(APP_ID, applicationContext, useCaching = true))\n```\n\n### Step 5: Connect to Sendbird server\n\nAfter initialization by use of the `init()` method, your client app must always be connected to Sendbird server before calling any methods. If you attempt to call a method without connecting, an `ERR_CONNECTION_REQUIRED (800101)` error would return.\n\nConnect a user to Sendbird server either through a unique user ID or in combination with an access token. Sendbird prefers the latter method, as it ensures privacy with the user. The former is useful during the developmental phase or if your service doesn't require additional security.\n\n#### A. Using a unique user ID\n\nConnect a user to Sendbird server using their unique **user ID**. By default, Sendbird server can authenticate a user by a unique user ID. Upon request for a connection, the server queries the database to check for a match. Any untaken user ID is automatically registered as a new user to the Sendbird system, while an existing ID is allowed to log indirectly. The ID must be unique within a Sendbird application, such as a hashed email address or phone number in your service.\n\nThis allows you to get up and running without having to go deep into the details of the token registration process, however make sure to enable enforcing tokens before launching as it is a security risk to launch without.\n\n```kotlin\nSendbirdChat.connect(USER_ID) { user, e -\u003e\n    if (e != null) { // Error.\n        return@connect\n    }\n}\n```\n\n#### B. Using a combination of unique user ID and token\n\nSendbird prefers that you pass the APP ID through the use of a token, as it ensures privacy and security for the users. [Create a user](https://sendbird.com/docs/chat/v3/platform-api/guides/user#2-create-a-user) along with their access token, or [issue an session token](https://sendbird.com/docs/chat/v3/platform-api/user/managing-session-tokens/issue-a-session-token) to pass during connection. A comparison between an access token and session token can be found [here](https://sendbird.com/docs/chat/v3/platform-api/user/managing-session-tokens/issue-a-session-token). Once a token is issued, a user is required to provide the issued token in the `SendbirdChat.connect()` method which is used for logging in.\n\n1. Using the Chat Platform API, create a Sendbird user account with the information submitted when a user signs up your service.\n2. Save the user ID along with the issued token to your persistent storage which is securely managed.\n3. When the user attempts to log in to the Sendbird application, load the user ID and token from the storage, and then pass them to the `SendbirdChat.connect()` method.\n4. Periodically replacing the user's token is recommended to protect the account.\n\n```kotlin\nSendbirdChat.connect(USER_ID, AUTH_TOKEN) { user, e -\u003e\n    if (e != null) { // Error.\n        return@connect\n    }\n}\n```\n\n\u003cbr /\u003e\n\n### Step 6: Create a new open channel\n\nCreate an open channel using the following codes. [Open channels](https://sendbird.com/docs/chat/v4/android/guides/open-channel#2-create-a-channel) are where all users in your Sendbird application can easily participate without an invitation.\n\n```kotlin\nOpenChannel.createChannel(OpenChannelCreateParams()) { channel, e -\u003e\n    if (e != null) { // Error.\n        return@createChannel\n    }\n}\n```\n\n**Note**: You can also create a group channel to send a message. To learn more, see [Create a channel](https://sendbird.com/docs/chat/v4/android/guides/group-channel#2-create-a-channel) in the Group channel page.\n\u003cbr /\u003e\n\n### Step 7: Enter the channel\n\nEnter the open channel to send and receive messages.\n\n```kotlin\nOpenChannel.getChannel(CHANNEL_URL) { channel, e -\u003e\n    if (e != null) { // Error.\n        return@getChannel\n    }\n\n    channel?.enter { enterError -\u003e\n        if (enterError != null) { // Error.\n            return@enter\n        }\n    }\n}\n```\n\n\u003cbr /\u003e\n\n### Step 8: Send a message to the channel\n\nFinally, send a message to the channel. There are [three types](https://sendbird.com/docs/chat/v3/platform-api/guides/messages#-3-resource-representation): a user message, which is a plain text, a file message, which is a binary file, such as an image or PDF, and an admin message, which is a plain text also sent through the [dashboard](https://dashboard.sendbird.com/auth/signin) or [Chat Platform API](https://sendbird.com/docs/chat/v3/platform-api/guides/messages#2-send-a-message).\n\n```kotlin\nopenChannel.sendUserMessage(MESSAGE) { message, e -\u003e\n    if (e != null) { // Error.\n        return@sendUserMessage\n    }\n}\n```\n\n\u003cbr /\u003e\n\n## Size of Chat SDK\n\nThe size of the Chat SDK is an important factor to consider when integrating it into your app. The size of the Chat SDK is as follows:\n\n- **SDK size**: 1.4 MB\n- **Minified SDK size**: 1.1 MB\n\n## We are hiring\n\nAt Sendbird, we are a diverse group of humble, friendly, and hardworking individuals united by a shared purpose to build the next generation of mobile \u0026 social technologies, across chat, voice, and video, that are changing the way we work and live. We're always looking for great people to join our team. [Check out our careers page](https://sendbird.com/careers) for more information.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsendbird%2Fsendbird-chat-sdk-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsendbird%2Fsendbird-chat-sdk-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsendbird%2Fsendbird-chat-sdk-android/lists"}