4 |
5 | 
6 |
7 |
16 | 🛥 Stream Draw is a real-time multiplayer drawing & chat game app built entirely with Jetpack Compose.
17 | Draw and guess words with your friends! This project was inspired by Skribbl.io.
18 |
19 |
20 | ## Previews
21 |
22 |
23 |
30 |
31 |
32 | ## 🛥 Stream Chat SDK
33 | Stream Draw was built with __[Android Chat SDK for Messaging](https://getstream.io/chat/sdk/android/?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Mar2022_AndroidSDK&utm_term=DevRelOss)__ to implement messaging systems.
34 | If you’re interested in adding powerful In-App Messaging to your app, check out the __[Android Chat Messaging Tutorial](https://getstream.io/tutorials/android-chat/?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Mar2022_AndroidSDK&utm_term=DevRelOss)__!
35 |
36 | - [Stream Chat SDK for Android on GitHub](https://github.com/getStream/stream-chat-android)
37 | - [Android Samples for Stream Chat SDK on GitHub](https://github.com/getStream/android-samples)
38 | - [Stream Chat Compose UI Componenets Guidelines](https://getstream.io/chat/docs/sdk/android/compose/overview/)
39 |
40 | ## 🛠 Tech Stack & Open Source Libraries
41 | - Minimum SDK level 21.
42 | - 100% [Jetpack Compose](https://developer.android.com/jetpack/compose) based + [Coroutines](https://github.com/Kotlin/kotlinx.coroutines) + [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/) for asynchronous.
43 | - [Compose Chat SDK for Messaging](https://getstream.io/chat/compose/tutorial/?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Mar2022_AndroidSDK&utm_term=DevRelOss) - 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.
44 | - Jetpack
45 | - Compose - Android’s modern toolkit for building native UI.
46 | - Lifecycle - Observe lifecycle changes.
47 | - ViewModel - UI related data holder and lifecycle aware.
48 | - App Startup - Provides a straightforward, performant way to initialize components at application startup.
49 | - [Hilt](https://dagger.dev/hilt/) - Dependency Injection.
50 | - [sketchbook-compose](https://github.com/getStream/sketchbook-compose) - Jetpack Compose canvas library that helps you draw paths, images on canvas with color pickers and palettes.
51 | - [landscapist](https://github.com/skydoves/landscapist) - Jetpack Compose image loading library that fetches and displays network images with Glide, Coil, and Fresco.
52 | - [Retrofit2 & OkHttp3](https://github.com/square/retrofit) - Construct the REST APIs and paging network data.
53 | - [Moshi](https://github.com/square/moshi/) - A modern JSON library for Kotlin and Java.
54 | - [Konfetti](https://github.com/DanielMartinus/Konfetti) - Celebrate more with this lightweight confetti particle system.
55 | - [Timber](https://github.com/JakeWharton/timber) - A logger with a small, extensible API which provides utility.
56 |
57 | ## ✅ Available Features
58 | - Light and Dark themes.
59 | - Creating and joining a group channel.
60 | - Supports host mode and guest mode.
61 | - Welcome and exit messages.
62 | - Fetches a list of words from the network.
63 | - Real-time drawing on the sketchbook.
64 | - Real-time chat messaging with multiple users.
65 | - Real-time participants' list of a connected channel.
66 | - Guessing a word and congratulation animations.
67 | - Single message notification and real-time chat dialog for the host.
68 | - Restarting game by the host.
69 | - Exiting and deleting the channel by the host.
70 | - And a lot of additional features using Stream Chat SDK for Android!
71 |
72 | ## ☑️ TODO
73 | - [ ] Available channel list.
74 | - [ ] Game rounds.
75 | - [ ] Time limits.
76 |
77 | ## 💙 Contribution
78 | Anyone can contribute to improving code, docs, or something following our [Contributing Guideline](/CONTRIBUTING.md).
79 |
80 | ## 📱 Game Screenshots
81 |
82 |
83 |
84 |
85 |
86 |
94 |
95 | ## Find this repository useful? 💙
96 | Support it by joining __[stargazers](https://github.com/GetStream/stream-draw-android/stargazers)__ for this repository. :star: