{"id":13605660,"url":"https://github.com/GetStream/stream-chat-android","last_synced_at":"2025-04-12T05:34:29.063Z","repository":{"id":37336477,"uuid":"177873527","full_name":"GetStream/stream-chat-android","owner":"GetStream","description":":speech_balloon: Android Chat SDK ➜ Stream Chat API. UI component libraries for chat apps. Kotlin \u0026 Jetpack Compose messaging SDK for Android chat","archived":false,"fork":false,"pushed_at":"2024-10-28T08:05:13.000Z","size":196620,"stargazers_count":1452,"open_issues_count":25,"forks_count":273,"subscribers_count":53,"default_branch":"main","last_synced_at":"2024-10-29T15:34:16.775Z","etag":null,"topics":["android","android-chat","android-chat-sdk","android-messaging","chat","chat-api","chat-sdk","chatview","hacktoberfest","java","jetpack-compose","kotlin","kotlin-chat","messaging"],"latest_commit_sha":null,"homepage":"https://getstream.io/chat/sdk/android/","language":"Kotlin","has_issues":true,"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/GetStream.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-26T21:46:50.000Z","updated_at":"2024-10-28T21:37:40.000Z","dependencies_parsed_at":"2023-02-14T19:00:52.627Z","dependency_job_id":"f1eca70d-23c1-4031-8dc8-4b2c0913574a","html_url":"https://github.com/GetStream/stream-chat-android","commit_stats":null,"previous_names":[],"tags_count":476,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetStream%2Fstream-chat-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetStream%2Fstream-chat-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetStream%2Fstream-chat-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetStream%2Fstream-chat-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GetStream","download_url":"https://codeload.github.com/GetStream/stream-chat-android/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223064887,"owners_count":17081765,"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","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","android-chat","android-chat-sdk","android-messaging","chat","chat-api","chat-sdk","chatview","hacktoberfest","java","jetpack-compose","kotlin","kotlin-chat","messaging"],"created_at":"2024-08-01T19:01:01.310Z","updated_at":"2025-04-12T05:34:29.043Z","avatar_url":"https://github.com/GetStream.png","language":"Kotlin","readme":"# Official Android SDK for [Stream Chat](https://getstream.io/chat/sdk/android/)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://getstream.io/tutorials/android-chat/\"\u003e\n    \u003cimg src=\"/docs/sdk-hero-android.png\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/GetStream/stream-chat-android/actions\"\u003e\u003cimg src=\"https://github.com/GetStream/stream-chat-android/workflows/Build%20and%20test/badge.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://android-arsenal.com/api?level=21\"\u003e\u003cimg alt=\"API\" src=\"https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/GetStream/stream-chat-android/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/GetStream/stream-chat-android\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n![stream-chat-android-client](https://img.shields.io/badge/stream--chat--android--client-3.16%20MB-lightgreen)\n![stream-chat-android-offline](https://img.shields.io/badge/stream--chat--android--offline-3.37%20MB-lightgreen)\n![stream-chat-android-ui-components](https://img.shields.io/badge/stream--chat--android--ui--components-7.88%20MB-lightgreen)\n![stream-chat-android-compose](https://img.shields.io/badge/stream--chat--android--compose-9.91%20MB-lightgreen)\n\n\u003c/div\u003e\n\n\u003e **Note:** The SDK sizes reflect the maximum possible addition if none of their internal dependencies are already in your app. In most cases, the actual impact will be smaller.\n\nThis is the official Android SDK for [Stream Chat](https://getstream.io/chat/sdk/android/), a service for building chat and messaging applications. This library includes both a low-level chat SDK and a set of reusable UI components. Most users start with the UI components, and fall back to the lower level API when they want to customize things.\n\nWe're proud to say that we're the first Android Chat SDK that supports Jetpack Compose! We [released](https://github.com/GetStream/stream-chat-android/releases/tag/4.15.0) our Compose UI Components one day after the official Jetpack Compose 1.0 release and our team members have been working hard on it since then.\n\nNow it's mature and stable enough for us to officially recommend it for all new applications and all modern chat implementations. If you're looking for something highly customizable and extremely performant, check out our [Compose SDK](https://getstream.io/chat/sdk/compose/).\n\nThe Android SDK supports both Kotlin and Java, but *we strongly recommend using Kotlin*.\n\n\u003e **Note**: The Compose SDK supports only Kotlin, since Compose uses Kotlin compiler plugins to process the UI.\n\n### 🔗 Quick Links\n\n* [Register](https://getstream.io/chat/trial/): Create an account and get an API key for Stream Chat\n* [Chat Tutorial](https://getstream.io/tutorials/android-chat/#kotlin): Learn the basics of the SDK by by building a simple messaging app (Kotlin or Java)\n* [UI Components sample app](/stream-chat-android-ui-components-sample): Full messaging app with threads, reactions, optimistic UI updates and offline storage\n* [Compose UI Components sample app](/stream-chat-android-compose-sample): Messaging sample app built with Jetpack Compose!\n* [Client Documentation](https://getstream.io/chat/docs/android/?language=kotlin)\n* [UI Components Documentation](https://getstream.io/chat/docs/sdk/android/)\n* [Compose UI Components Documentation](https://getstream.io/chat/docs/sdk/android/compose/overview/)\n* [API docs](https://getstream.github.io/stream-chat-android/): Full generated docs from Dokka\n* [Jetpack Compose Planning](https://github.com/orgs/GetStream/projects/6): Jetpack Compose public project management board and milestone overview\n\n## 👩‍💻 Free for Makers 👨‍💻\n\nStream is free for most side and hobby projects. To qualify, your project/company needs to have \u003c 5 team members and \u003c $10k in monthly revenue.\nFor complete pricing details, visit our [Chat Pricing Page](https://getstream.io/chat/pricing/).\n\n## 🗺️ Overview and Documentation 📚\n\nThis SDK consists of two low-level artifacts you can build on:\n\n- [**Client**](/stream-chat-android-client): A low-level client for making API calls and receiving chat events.\n    - [Documentation website](https://getstream.io/chat/docs/android/?language=kotlin)\n- [**Offline support**](/stream-chat-android-offline): Local caching and automatic retries, exposed via Flow and LiveData APIs.\n    - [Offline Support](https://getstream.io/chat/docs/sdk/android/client/guides/offline-support/)\n\n**We also have two UI SDKs**. You can use our Compose UI Components SDK, or if you're using older UI solutions, the XML-based UI Components:\n\n- [**Compose UI Components**](/stream-chat-android-compose): Reusable and modular Composables for displaying conversations, lists of channels, and more!\n  - [Sample app](/stream-chat-android-compose-sample)\n  - [Documentation](https://getstream.io/chat/docs/sdk/android/compose/overview/)\n  - [Compose SDK Guidelines](/stream-chat-android-compose/GUIDELINES.md)\n- [**UI Components**](/stream-chat-android-ui-components): Reusable and customizable chat Views for displaying conversations, lists of channels, and more!\n  - [Sample app](/stream-chat-android-ui-components-sample)\n  - [Documentation](https://getstream.io/chat/docs/sdk/android/ui/overview/)\n\nLearn more about the modules by visiting [the documentation](https://getstream.io/chat/docs/sdk/android/).\n\n## 📖 Tutorial\n\nThe best place to start is the [Compose Chat Messaging Tutorial](https://getstream.io/chat/compose/tutorial/). It teaches you the basics of using the Compose Chat SDK and also shows how to make frequently required changes.\n\n\u003e  **Note**: If you're using older UI toolkits, like XML, you can follow the [Android Chat Messaging Tutorial](https://getstream.io/tutorials/android-chat/) which features the XML-based UI Components.\n\n## 🛠️ Installation and Getting Started 🚀\n\nSee the [Dependencies](https://getstream.io/chat/docs/sdk/android/basics/dependencies/) and [Getting Started](https://getstream.io/chat/docs/sdk/android/client/overview/) pages of the documentation.\n\n## 🔮 Sample Apps\n\n### Compose Sample App\n\nOur Jetpack Compose implementation comes with its own [example app](/stream-chat-android-compose-sample), which you can play with to see how awesome Compose is.\n\nTo run the sample app, start by cloning this repo:\n\n```shell\ngit clone git@github.com:GetStream/stream-chat-android.git\n```\n\nNext, open [Android Studio](https://developer.android.com/studio) and open the newly created project folder. You'll want to run the [`stream-chat-android-compose-sample`](/stream-chat-android-compose-sample) module.\n\nSince Compose is a highly customizable SDK, we're eager to hear your feedback on how it helps you build complex Chat UI. Join us in [this repo's discussions](https://github.com/GetStream/stream-chat-android/discussions) or tweet at us [@getstream_io](https://twitter.com/getstream_io)!\n\n### Sample App\n\nHowever, if you're still using XML due to technical limitations, our UI Components SDK includes a fully functional [example app](/stream-chat-android-ui-components-sample) featuring threads, reactions, typing indicators, optimistic UI updates and offline storage. To run the sample app, start by cloning this repo:\n\n```shell\ngit clone git@github.com:GetStream/stream-chat-android.git\n```\n\nNext, open [Android Studio](https://developer.android.com/studio) and open the newly created project folder. You'll want to run the [`stream-chat-android-ui-components-sample`](/stream-chat-android-ui-components-sample) app.\n\n### Other Sample Apps\n\nWe also maintain a dedicated repository for fully-fledged sample applications at [GetStream/Android-Samples](https://github.com/GetStream/Android-Samples).\n\n## 💡 Supported features 🎨\n\nHere are some of the features that the SDK supports out-of-the-box:\n\n- Channels list UI\n- Channel UI\n- Message reactions\n- Link previews\n- Image, video and file attachments\n- Editing and deleting messages\n- Typing indicators\n- Read indicators\n- Push notifications\n- Image gallery\n- GIF support\n- Light and dark themes\n- Style customization\n- UI customization\n- Threads\n- Slash commands\n- Markdown message formatting\n- Unread message counts\n\nFor more, see the [SDK's website](https://getstream.io/chat/sdk/android/).\n\n## 🛠️ R8 / ProGuard\n\nWhen utilizing **R8**, the rules for shrinking and obfuscation are applied automatically.\n\nIf you are using **ProGuard**, you will need to add the following rules from [client](https://github.com/GetStream/stream-chat-android/blob/main/stream-chat-android-client/consumer-proguard-rules.pro), [ui-common](https://github.com/GetStream/stream-chat-android/blob/main/stream-chat-android-ui-common/consumer-proguard-rules.pro), and [previewdata](https://github.com/GetStream/stream-chat-android/blob/main/stream-chat-android-previewdata/consumer-proguard-rules.pro) modules to your application.\n\nYou might also need apply rules for [Coroutines](https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-core/jvm/resources/META-INF/proguard/coroutines.pro), [Retrofit](https://github.com/square/retrofit/blob/master/retrofit/src/main/resources/META-INF/proguard/retrofit2.pro) and [OkHttp](https://github.com/square/okhttp/blob/master/okhttp/src/jvmMain/resources/META-INF/proguard/okhttp3.pro) which are dependencies of the SDK.\n\n## 💼 We are hiring!\n\nWe've recently closed a [\\$38 million Series B funding round](https://techcrunch.com/2021/03/04/stream-raises-38m-as-its-chat-and-activity-feed-apis-power-communications-for-1b-users/) and we keep actively growing.\nOur APIs are used by more than a billion end-users, and you'll have a chance to make a huge impact on the product within a team of the strongest engineers all over the world.\nCheck out our current openings and apply via [Stream's website](https://getstream.io/team/#jobs).\n\n## License\n\n```\nCopyright (c) 2014-2022 Stream.io Inc. All rights reserved.\n\nLicensed under the Stream License;\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   https://github.com/GetStream/stream-chat-android/blob/main/LICENSE\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```","funding_links":[],"categories":["Official SDKs \u0026 Tutorials","Kotlin"],"sub_categories":["Mobile Development"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGetStream%2Fstream-chat-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGetStream%2Fstream-chat-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGetStream%2Fstream-chat-android/lists"}