# getstream/stream-chat-android

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/getstream-stream-chat-android).**

1,643 stars · 317 forks · Kotlin · NOASSERTION

## Links

- GitHub: https://github.com/GetStream/stream-chat-android
- Homepage: https://getstream.io/chat/sdk/android/
- awesome-repositories: https://awesome-repositories.com/repository/getstream-stream-chat-android.md

## Topics

`android` `android-chat` `android-chat-sdk` `android-messaging` `chat` `chat-api` `chat-sdk` `chatview` `hacktoberfest` `java` `jetpack-compose` `kotlin` `kotlin-chat` `messaging`

## Description

This project is a messaging SDK for Android applications, providing the core infrastructure for real-time communication using Kotlin and Jetpack Compose. It offers a suite of modular, declarative UI components and a backend-connected API to manage user authentication, persistent socket connections, and data synchronization.

The SDK is distinguished by its offline-first architecture, which utilizes local database persistence to cache conversation history and queue user actions for synchronization once network connectivity is restored. Developers can customize the messaging experience through a factory interface that allows for the overriding of default visual elements, interaction behaviors, and design system themes to match specific application requirements.

The platform covers a broad range of messaging capabilities, including channel management, real-time activity indicators, and rich content handling such as markdown parsing and media attachments. It also integrates with mobile notification services to alert users of activity while the application is in the background.

## Tags

### Mobile Development

- [Messaging SDKs](https://awesome-repositories.com/f/mobile-development/messaging-sdks.md) — Provides a messaging library for building real-time chat interfaces in Android applications using Kotlin and Jetpack Compose.
- [SDK Component Integrations](https://awesome-repositories.com/f/mobile-development/native-ios-applications/native-view-integration/sdk-component-integrations.md) — Provides a modular SDK for integrating real-time messaging and chat capabilities into native Android applications.
- [Chat UI Components](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-ui-components/chat-ui-components.md) — Offers pre-built, modular Android UI components for message lists, channel headers, and input fields. ([source](https://getstream.io/chat/sdk/compose/))
- [Jetpack Compose UIs](https://awesome-repositories.com/f/mobile-development/jetpack-compose-uis.md) — Offers customizable, declarative UI components for rendering message lists, channel navigation, and input composers.

### Part of an Awesome List

- [Real-Time Messaging](https://awesome-repositories.com/f/awesome-lists/devtools/websockets-and-real-time/real-time-messaging.md) — Facilitates immediate exchange of messages and status updates via persistent WebSocket connections.

### Data & Databases

- [Local Persistence Layers](https://awesome-repositories.com/f/data-databases/local-persistence-layers.md) — Caches conversation history in a local storage layer to enable instant loading and offline access.
- [Offline-First Persistence](https://awesome-repositories.com/f/data-databases/offline-first-persistence.md) — Ensures chat history and message composition remain available to users even without an active network connection.
- [Local Data Caches](https://awesome-repositories.com/f/data-databases/data-caching/local-data-caches.md) — Stores channels, messages, and reactions locally to enable access to conversation history without an active network connection. ([source](https://getstream.io/chat/docs/sdk/android/client/guides/offline-support/))
- [Filtered and Ordered Queries](https://awesome-repositories.com/f/data-databases/query-sorting/query-filters/filtered-and-ordered-queries.md) — Allows querying conversation lists using custom filters and sorting criteria while maintaining local state. ([source](https://getstream.io/chat/docs/android/))

### Networking & Communication

- [Real-time Messaging](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/communication-platforms/real-time-collaboration-suites/real-time-messaging.md) — Facilitates real-time communication through a backend-connected API that manages authentication, socket connections, and data synchronization.
- [Push Notification Providers](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/push-notification-providers.md) — Integrates with mobile notification services to alert users of new messages while the application is in the background. ([source](https://getstream.io/chat/sdk/android/))
- [Real-time Notification Broadcasters](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/real-time-notification-broadcasters.md) — Broadcasts text content to channels and pushes updates to all active participants in real-time. ([source](https://getstream.io/chat/docs/android/))
- [Cross-Platform Messaging Backends](https://awesome-repositories.com/f/networking-communication/cross-platform-messaging-backends.md) — Manages authentication, socket connections, and data synchronization to maintain consistent communication states across mobile devices.
- [Messaging Client Builders](https://awesome-repositories.com/f/networking-communication/instant-messaging-services/messaging-clients/messaging-client-builders.md) — Provides centralized builders to define connection parameters and authentication credentials for messaging client initialization. ([source](https://getstream.io/chat/docs/sdk/android/))
- [Intermittent Connection Management](https://awesome-repositories.com/f/networking-communication/intermittent-connection-management.md) — Maintains stable backend links and handles intermittent network connectivity to ensure reliable communication. ([source](https://getstream.io/chat/docs/sdk/android/basics/dependencies/))
- [Messaging Channel Management](https://awesome-repositories.com/f/networking-communication/messaging-channel-management.md) — Enables creation and configuration of communication spaces by defining metadata, member lists, and operational settings. ([source](https://getstream.io/chat/docs/android/))
- [User Activity Indicators](https://awesome-repositories.com/f/networking-communication/user-activity-indicators.md) — Displays live indicators for user presence, typing status, and participant counts within conversations. ([source](https://getstream.io/chat/sdk/compose/))

### Security & Cryptography

- [User Authentication Workflows](https://awesome-repositories.com/f/security-cryptography/user-authentication-workflows.md) — Verifies user identity using tokens and credentials to establish secure, authenticated messaging sessions. ([source](https://getstream.io/tutorials/android-chat/))

### Software Engineering & Architecture

- [Lifecycle-Aware ViewModels](https://awesome-repositories.com/f/software-engineering-architecture/view-model-architectures/model-view-viewmodel/lifecycle-aware-viewmodels.md) — Persists state management logic across configuration changes using lifecycle-aware controllers for data synchronization.
- [Offline Action Queues](https://awesome-repositories.com/f/software-engineering-architecture/action-dispatch-middleware/offline-action-queues.md) — Buffers messages and reactions sent while disconnected and automatically synchronizes them upon network restoration. ([source](https://getstream.io/chat/docs/sdk/android/client/guides/offline-support/))
- [Dependency Injection Providers](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-providers.md) — Manages connection parameters and service dependencies through centralized builders to ensure consistent application behavior.

### Web Development

- [Declarative UI Composition](https://awesome-repositories.com/f/web-development/declarative-ui-composition.md) — Constructs messaging interfaces using modular functions that react to state changes for consistent visual updates.
- [Cloud Real-Time Services](https://awesome-repositories.com/f/web-development/real-time-web-architectures/cloud-real-time-services.md) — Adds live messaging, typing indicators, and read receipts to applications using a managed backend service.

### DevOps & Infrastructure

- [Push Notification Services](https://awesome-repositories.com/f/devops-infrastructure/push-notification-services.md) — Integrates messaging events with mobile notification services to alert users of new activity in the background.

### User Interface & Experience

- [Component Factories](https://awesome-repositories.com/f/user-interface-experience/component-factories.md) — Provides customizable factory interfaces for overriding default visual elements and interaction behaviors in messaging components.
- [Custom UI Components](https://awesome-repositories.com/f/user-interface-experience/custom-ui-components.md) — Provides a factory interface to override default visual elements and interaction behaviors for custom messaging experiences. ([source](https://getstream.io/chat/docs/sdk/android/))
- [Channel](https://awesome-repositories.com/f/user-interface-experience/declarative-ui-components/navigation-components/channel.md) — Provides navigation components to list available communication channels with read states, timestamps, and last-message previews. ([source](https://getstream.io/chat/sdk/compose/))
- [Lifecycle-Aware State Holders](https://awesome-repositories.com/f/user-interface-experience/event-driven-state-managers/lifecycle-aware-state-holders.md) — Uses lifecycle-aware view models to manage business logic and state persistence across configuration changes. ([source](https://getstream.io/chat/docs/sdk/android/compose/overview/))
- [Interactive Message Components](https://awesome-repositories.com/f/user-interface-experience/interactive-message-components.md) — Enables message interactions including reactions, editing, deletion, quoting, and threaded replies. ([source](https://getstream.io/chat/sdk/android/))
- [Theme Configuration Systems](https://awesome-repositories.com/f/user-interface-experience/ui-architecture/design-utilities/design-systems/theme-architecture-frameworks/theme-configuration-systems.md) — Allows developers to define centralized themes for colors, typography, and visual assets to ensure consistent branding. ([source](https://getstream.io/chat/docs/sdk/android/compose/overview/))
