Connect with us


WebRTC in Jetpack Compose – Real-time video communications with Jetpack Compose

This project demonstrates WebRTC protocol to facilitate real-time video communications with Jetpack Compose.

The purpose of this repository is to demonstrate below:

  • Implementing entire UI elements for real-time video communication with Jetpack Compose.
  • Performing real-time communication in background with Kotlin Coroutines.
  • Understanding the peer connection based on WebRTC.
  • Communicating with a signaling server to exchange peer connection information between clients.

writing_hand Technical Content

We’re preparing to publish a blog post about WebRTC in Jetpack Compose. If you need to understand WebRTC and communication protocols, check out the HTTP, WebSocket, gRPC or WebRTC: Which Communication Protocol is Best For Your App?.

If you’d like to get notified as we release future posts, join the watchers on GitHub or follow Stream on Twitter. You can also follow the author of this repository on GitHub.

motor_boat Stream Chat and Voice & Video calling SDK

If you’re interested in adding powerful In-App Messaging to your app, check out the Compose Chat SDK for Messaging! We’re also planning to release voice & video calling SDK very soon! Check out the Video & Voice Calling API on Stream’s Global Edge Network, if you want early access to our SDK.

hammer_and_wrench Tech Stacks & Open Source Libraries

  • Minimum SDK level 23.
  • 100% Jetpack Compose based + Coroutines + Flow for asynchronous.
  • WebRTC: To build real-time communication capabilities to your application that works on top of an open standard.
  • WebRTC-android: WebRTC pre-compiled library for android.
  • Retrofit2 & OkHttp3: Construct the REST APIs and paging network data.
  • StreamLog: A lightweight and extensible logger library for Kotlin and Android.
  • Ktor: Building a signaling client websocket server.

computer How to build the project?

To build this project properly, you should follow the instructions below:

  1. Run the WebRTC backend server.
  2. Add the local ip address of your pc on the file on the project (Android Studio) like the below:
# You should change to your local ip address, which is running the WebRTC backend server.
  1. Lastly, run the WebRTC android project on your multiple devices to test peer communication.

handshake Contribution

Most features are not completed except the chat feature, so that anyone can contribute and improve this project following the Contributing Guideline.

Find this repository useful? blue_heart

Support it by joining stargazers for this repository. star
Also, follow maintainers on GitHub for our next creations! star_struck

WebRTC in Jetpack Compose on GitHub:
Platform: Android
⭐️: 140