/stream-draw-android

πŸ›₯ Stream Draw is a real-time multiplayer drawing & chat game app built entirely with Jetpack Compose.

Primary LanguageKotlinApache License 2.0Apache-2.0



License API Build Status Kotlin Weekly Android Weekly

πŸ›₯ 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!

πŸ›  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

summary

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.