Official Android SDK for Stream Chat
This is the official Android SDK for Stream Chat, 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.
The SDK supports both Kotlin and Java, but we strongly recommend using Kotlin.
🔗 Quick Links
- Register: Create an account and get an API key for Stream Chat
- Chat Tutorial: Learn the basics of the SDK by by building a simple messaging app (Kotlin or Java)
- UI Components sample app: Full messaging app with threads, reactions, optimistic UI updates and offline storage
- Compose UI Components sample app: Messaging sample app built with Jetpack Compose!
- Client Documentation
- UI Components Documentation
- Compose UI Components Documentation
- API docs: Full generated docs from Dokka
- Jetpack Compose Planning: Jetpack Compose public project management board and milestone overview
👩💻 Free for Makers 👨💻
Stream is free for most side and hobby projects. To qualify, your project/company needs to have < 5 team members and < $10k in monthly revenue. For complete pricing details, visit our Chat Pricing Page.
🗺️ Overview and Documentation 📚
This SDK consists of three main artifacts you can build on:
- Client: A low-level client for making API calls and receiving chat events.
- Offline support: Local caching and automatic retries, exposed via Flow and LiveData APIs.
- UI Components: Reusable and customizable chat Views for displaying conversations, lists of channels, and more!
We also support Jetpack Compose! You can use our Compose UI Components as an alternative to the UI Components.
- Compose UI Components: Reusable and modular Composables for displaying conversations, lists of channels, and more!
Learn more about the modules by visiting the documentation.
The best place to start is the Android In-App Messaging Tutorial. It teaches you the basics of using this SDK and also shows how to make frequently required changes.
🛠️ Installation and Getting Started 🚀
📲 Sample App
This repo includes a fully functional example app featuring threads, reactions, typing indicators, optimistic UI updates and offline storage. To run the sample app, start by cloning this repo:
git clone email@example.com:GetStream/stream-chat-android.git
🏗️ Jetpack Compose Sample App
We also have a UI implementation built in Jetpack Compose available, currently in a beta version.
💡 Supported features 🎨
Here are some of the features that the SDK supports out-of-the-box:
- Channels list UI
- Channel UI
- Message reactions
- Link previews
- Image, video and file attachments
- Editing and deleting messages
- Typing indicators
- Read indicators
- Push notifications
- Image gallery
- GIF support
- Light and dark themes
- Style customization
- UI customization
- Slash commands
- Markdown message formatting
- Unread message counts
For more, see the SDK's website.
💼 We are hiring!
We've recently closed a $38 million Series B funding round and we keep actively growing. Our 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. Check out our current openings and apply via Stream's website.