Home

Awesome

<h1 align="center">Android Sample Apps</h1> <p align="center"> <a href="https://github.com/GetStream/stream-video-android/actions/workflows/android.yml"><img alt="Build Status" src="https://github.com/GetStream/Android-Samples/actions/workflows/pr-checks.yml/badge.svg"/></a> <a href="https://android-arsenal.com/api?level=21"><img alt="API" src="https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat"/></a> <a href="https://getstream.io"><img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/HayesGordon/e7f3c4587859c17f3e593fd3ff5b13f4/raw/11d9d9385c9f34374ede25f6471dc743b977a914/badge.json" alt="Stream Feeds"></a> </p> <p align="center"> <a href="https://github.com/GetStream/stream-chat-android"> <img src="/previews/sdk-hero-android.png"/> </a> </p>

😎 Repo Overview

This repository contains sample projects, guides, tutorials, and links to helpful resources to help you get started with Android Stream SDK.

<a href="https://getstream.io/chat/sdk/compose?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Mar2024_Jaewoong_Android_Samples&utm_term=DevRelOss"> <img src="https://user-images.githubusercontent.com/24237865/138428440-b92e5fb7-89f8-41aa-96b1-71a5486c5849.png" align="right" width="12%"/> </a>

🔗 Quick Links

Tutorials:

Documentation:

📹 Stream Video SDK

Stream also offers seamless Video SDK solutions that allow you to implement video calling, audio/video room, and live streaming using Jetpack Compose. If you're interested in learning the Stream Video SDKs, check out the tutorials below:

🤝 Contribution

Submissions are always welcomed! You can create your own open-source project or sample app by creating a new module for this project following our Android Chat Tutorial or Compose Chat Tutorial. After building your project, create an issue or pull request. Your project will be categorized 😎 under our featuring list after reviewing the project in our team.

We also welcome code changes that improve the apps or fix a problem. Please follow all best practices and add tests if applicable before submitting a Pull Request on Github.

🚀 Main Samples

Project
<br><h3>UI Components Sample App</h3> <br>The main sample app built on top of our UI components. Maintained to support the latest version of the SDK. <br><br>• Multiple users accounts<br>• Offline support<br>• Message search and filtering<br>• Channel creation<br>• Push notifications<br>• Threads and replies<br>• Emoji reactions<br>• User mentions<br>• Giphy integration<br>• Attachments picker<br>• Typing indicators<br><br> > Source Code<br><br><img src="previews/ui-components-sample.gif" width="320" alt="UI Components Sample App Preview">
<br><h3>Compose UI Components Sample App</h3> <br>The main sample app built on top of our Compose UI Components. Maintained to support the latest version of the SDK. <br><br>• Multiple users accounts<br>• Offline support<br>• Channel search and filtering<br>• Push notifications<br>• Threads and replies<br>• Emoji reactions<br>• User mentions<br>• Giphy integration<br>• Attachments picker<br>• Typing indicators<br><br> > Source Code <br><br><img src="previews/compose-sample.gif" width="320" alt="Compose UI Components Sample App Preview">

✈️ Additional samples

Project
<br><h3>Video Chat Sample</h3> <br>Livestream app that demonstrates how to use the low level client to listen for events. <br><br>• Video list and details<br>• Custom message list<br>• Low level client integration<br><br>> Source Code<br><br><img src="previews/video-chat.gif" width="320" alt="Video Chat Sample Preview">
<br><h3>Virtual Event Sample</h3> <br>Virtual event sample app. <br><br>• Direct and livestream chats<br>• Light and dark modes<br>• Multiple user accounts<br><br>> Source Code <br><br><img src="previews/virtual-event.gif" width="320" alt="Virtual Event Sample Preview">
<br><h3>WhatsApp Clone</h3> <br>WhatsApp clone app. <br><br>• Custom message input<br>• Custom message list header<br><br>> Source Code <br><br><img src="previews/whatsapp-clone.gif" width="320" alt="WhatsApp Clone Preview">
<br><h3>WhatsApp Clone Compose</h3> <br>WhatsApp clone app built with Jetpack Compose and Stream Chat SDK for Compose. <br><br>• Demonstrates ChatGPT's unofficial APIs<br>• Implementing entire UI elements with Jetpack Compose<br>• mplementation of Android architecture components with Jetpack libraries such as Hilt and AppStartup<br>• Performing background tasks with Kotlin Coroutines<br><br> > Source Code<br><br><img src="previews/whatsapp-clone-compose.gif" width="320" alt="WhatsApp Clone Compose Preview">
<br><h3>ChatGPT Android</h3> <br>ChatGPT Android demonstrates OpenAI's ChatGPT on Android with Stream Chat SDK for Compose. <br><br>• Implementing entire UI elements with Jetpack Compose<br>• Implementation of Android architecture components with Jetpack libraries such as Hilt and AppStartup<br>• Performing background tasks with Kotlin Coroutines<br>• Integrating chat systems with Stream Chat SDK for real-time event handling<br>• Integrating chat systems with Stream Chat SDK for real-time event handling<br><br> > Source Code<br><br><img src="https://raw.githubusercontent.com/skydoves/chatgpt-android/0f91a4ebc0e24a9c974f3e1ffd6cffc4add1bd1a/previews/preview2.gif" width="320" alt="ChatGPT Clone Compose Preview">
<br><h3>Gemini Android</h3> <br>Gemini Android demonstrates Google's Generative AI on Android with Stream Chat SDK for Compose. <br><br>• Implementing entire UI elements with Jetpack Compose<br>• Implementation of Android architecture components with Jetpack libraries such as Hilt and AppStartup<br>• Performing background tasks with Kotlin Coroutines<br>• Integrating chat systems with Stream Chat SDK for real-time event handling<br>• Integrating chat systems with Stream Chat SDK for real-time event handling<br><br> > Source Code<br><br><img src="https://raw.githubusercontent.com/skydoves/gemini-android/b70c8c13476e84a09014b5efb206a07049993a4f/previews/preview2.gif" width="320" alt="Gemini Clone Compose Preview">
<br><h3>Twitch Clone Compose</h3> <br>Twitch clone project demonstrates modern Android development built with Jetpack Compose and Stream Chat/Video SDK for Compose. <br><br>• Implementing entire UI elements with Jetpack Compose<br>• Implementation of Android architecture components with Jetpack libraries such as Hilt and AppStartup<br>• Performing background tasks with Kotlin Coroutines<br>• Integrating chat systems with Stream Chat SDK for real-time event handling<br>• Integrating video call systems with Stream Video SDK using WebRTC under the hood<br><br> > Source Code<br><br><img src="https://raw.githubusercontent.com/skydoves/twitch-clone-compose/b3f7679c2fe99d496e0c59075ddaf5a83a967934/previews/preview1.png" width="320" alt="Twitch Clone Compose Preview">
<br><h3>Slack Clone Compose</h3> <br>Slack clone app built with Jetpack Compose and Stream Chat SDK for Compose following clean architecture principles.<br><br>• Implementing entire UI elements with Jetpack Compose<br>• Implementation of Android architecture components with Jetpack libraries such as Hilt<br>• Performing background tasks with Kotlin Coroutines<br>• Integrating chat systems with Stream Chat SDK for real-time event handling and authentication<br><br>> Source Code <br><br><img src="previews/slack-clone-compose.gif" width="320" alt="Slack Clone Compose Preview">
<br><h3>Avengers Chat</h3> <br>Demo application based on modern Android tech stacks and Stream Chat SDK. <br><br>• Light and Dark themes<br>• Different color themes by a chosen character<br>• 100% offline mode supports<br>• Live stream chat example<br>• Channel and message lists<br>• Direct message and group messages<br>• Mentioned message list<br>• Custom emoji reactions<br>• Guest mode<br>• User online/offline status<br>• User last active date<br>• User info & direct message dialogs<br>• Visual animations like transition<br><br>> Source Code <br><br><img src="previews/avengers-chat.gif" width="320" alt="Avengers Chat Preview">
<br><h3>Facebook Messenger Clone</h3> <br>Facebook Messenger clone using Stream SDK & Jetpack Compose. <br><br>> Source Code <br><br><img src="previews/facebook-messenger-clone.png" width="320" alt="Facebook Messenger Clone Preview">
<br><h3>Stream Draw</h3> <br>Real-time multiplayer drawing & chat game app built entirely with Jetpack Compose. <br><br>• Light and Dark themes<br>• Creating and joining a group channel<br>• Supports host mode and guest mode<br>• Welcome and exit messages<br>• Fetches a list of words from the network<br>• Real-time drawing on the sketchbook<br>• Real-time chat messaging with multiple users<br>• Real-time participants' list of a connected channel<br>• Guessing a word and congratulation animations<br>• Single message notification and real-time chat dialog for the host<br>• Restarting game by the host<br>• Exiting and deleting the channel by the host<br>• And a lot of additional features using Stream Chat SDK for Android!<br><br>> Source Code <br><br><img src="previews/stream-draw.gif" width="320" alt="Stream Draw Preview">
<br><h3>Foldable Chat</h3> <br>Demonstrates adaptive and responsive UIs with Jetpack WindowManager API. <br><br>> Source Code <br><br><img src="previews/foldable-chat.png" width="320" alt="Foldable Chat Preview">

Chat Guides

See here for all our chat guides.

These guides explore our UI components in greater detail and demonstrate how to easily perform a variety of common actions using the Stream Chat Android SDK, such as:

UI Components:

Compose UI Components:

What is Stream?

Stream allows developers to rapidly deploy scalable feeds and chat messaging with an industry leading 99.999% uptime SLA guarantee.

With Stream's chat components, developers quickly add chat to their app for a variety of use-cases:

💼 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.

License

The MIT License (MIT)

Copyright (c) 2014-2022 Stream.io Inc. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.