π₯ Stream Draw is a real-time multiplayer drawing & chat game app built entirely with Jetpack Compose.
Draw and guess words with your friends! This project was inspired by Skribbl.io.
Previews
Download
Go to the Releases to download the latest APK.
π₯ Stream Chat SDK
Stream Draw was built with Android Chat SDK for Messaging to implement messaging systems. If youβre interested in adding powerful In-App Messaging to your app, check out the Android Chat Messaging Tutorial!
- Stream Chat SDK for Android on GitHub
- Android Samples for Stream Chat SDK on GitHub
- Stream Chat Compose UI Componenets Guidelines
π Tech Stack & Open Source Libraries
- Minimum SDK level 21.
- 100% Jetpack Compose based + Coroutines + Flow for asynchronous.
- Compose Chat SDK for Messaging - The Jetpack Compose Chat Messaging SDK is built on a low-level chat client and provides modular, customizable Compose UI components that you can easily drop into your app.
- Jetpack
- Compose - Androidβs modern toolkit for building native UI.
- Lifecycle - Observe lifecycle changes.
- ViewModel - UI related data holder and lifecycle aware.
- App Startup - Provides a straightforward, performant way to initialize components at application startup.
- Hilt - Dependency Injection.
- sketchbook-compose - Jetpack Compose canvas library that helps you draw paths, images on canvas with color pickers and palettes.
- landscapist - Jetpack Compose image loading library that fetches and displays network images with Glide, Coil, and Fresco.
- Retrofit2 & OkHttp3 - Construct the REST APIs and paging network data.
- Moshi - A modern JSON library for Kotlin and Java.
- Konfetti - Celebrate more with this lightweight confetti particle system.
- Timber - A logger with a small, extensible API which provides utility.
β Available Features
- Light and Dark themes.
- Creating and joining a group channel.
- Supports host mode and guest mode.
- Welcome and exit messages.
- Fetches a list of words from the network.
- Real-time drawing on the sketchbook.
- Real-time chat messaging with multiple users.
- Real-time participants' list of a connected channel.
- Guessing a word and congratulation animations.
- Single message notification and real-time chat dialog for the host.
- Restarting game by the host.
- Exiting and deleting the channel by the host.
- And a lot of additional features using Stream Chat SDK for Android!
βοΈ TODO
- Available channel list.
- Game rounds.
- Time limits.
π Contribution
Anyone can contribute to improving code, docs, or something following our Contributing Guideline.
π± Game Screenshots
π― MAD Score
Find this repository useful? π
Support it by joining stargazers for this repository. β
Also, follow maintainers on GitHub for our next creations! π€©
License
Copyright 2022 Stream.IO, Inc. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.