This is a real-time meeting room app built with Jetpack Compose and Stream Video SDK for Compose, with a design reminiscent of Google Meet.
The primary objective of this repository is to showcase the following:
- Complete implementation of UI components using Jetpack Compose.
- Development of a real-time meeting room application with a seamless user experience, designed in a Google Meet style by customizing CallContent and ParticipantVideo.
- Creation of a lobby screen that provides control over physical devices before joining a meeting room, including toggling the camera/microphone and flipping the camera view.
- Illustration of multiple participants connecting from various platforms, such as web and Android.
If you're keen on learning about constructing a real-time meeting room application using Jetpack Compose, we recommend exploring Build a Real-Time Meeting Room App for Android With Jetpack Compose.
If you're interested in exploring more repositories that utilize Jetpack Compose and Stream SDK, take a look at the following repositories:
- ChatGPT Android: π± ChatGPT Android demonstrates OpenAI's ChatGPT on Android with Stream Chat SDK for Compose.
- Whats App Clone Compose: π± WhatsApp clone project demonstrates modern Android development built with Jetpack Compose and Stream Chat SDK for Compose.
- Slack Clone Android: π± A chat demo app built with Jetpack Compose and Stream Chat SDK following clean architecture principles.
- Stream Draw Android: π₯ Stream Draw is a real-time multiplayer drawing & chat game app built entirely with Jetpack Compose.
- Facebook Messenger Clone: Facebook Messenger clone using Stream SDK & Jetpack Compose.
Go to the Releases to download the latest APK.
Meeting Room Compose is built with Stream Video SDK for Compose to implement real-time video room features. If youβre interested in adding powerful In-App Video Calling, Audio Room, Livestream features to your app, check out the Android Video Calling Tutorial!
- Stream Video SDK for Android on GitHub
- Video Call Tutorials
- Audio Room Tutorials
- Livestream Tutorials
If you want to build your own video meeting room project, you should follow the instructions below:
- Go to the Stream login page.
- If you have your GitHub account, click the SIGN UP WITH GITHUB button and you can sign up within a couple of seconds.
- If you don't have a GitHub account, fill in the inputs and click the START FREE TRIAL button.
- Go to the Dashboard and click the Create App button like the below.
- Fill in the blanks like the below and click the Create App button.
- You will see the Key like the figure below and then copy it.
-
Go to the MeetingRoomApp class and change the
apiKey
property with your key. -
Build and run the project.
- Minimum SDK level 21.
- 100% Jetpack Compose based + Coroutines + Flow for asynchronous.
- Stream Video SDK for Compose: Stream's versatile Core + Compose UI component libraries that allow you to build video calling, audio room, and, live streaming apps based on Webrtc running on Stream's global edge network.
- Jetpack
- Compose: Androidβs modern toolkit for building native UI.
- ViewModel: UI related data holder and lifecycle aware.
- Navigation: For navigating screens and Hilt Navigation Compose for injecting dependencies.
- Hilt: Dependency Injection.
- Retrofit2 & OkHttp3: Construct the REST APIs and paging network data.
- Sandwich: An adaptable and lightweight sealed API library designed for Kotlin and Android, specializing in efficient Retrofit response modeling and exception handling.
- ksp: Kotlin Symbol Processing API.
For interactive tests across different platforms, you can utilize Stream web applications. You can simply join the web application with Stream Video Web Demo.
Most of the features are not completed except the chat feature, so anyone can contribute and improve this project following the Contributing Guideline.
Support it by joining stargazers for this repository. β
Also, follow maintainers on GitHub for our next creations! π€©
Copyright 2023 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.