Create an Open-Source Zoom like Conferencing app for Android, iOS, and Web

{% include_relative nav.html selected="prep" %}

In this tutorial, we will create a fully-featured Zoom-like Video Conferencing app for Android, iOS, and Web. Once you go through this tutorial, you will be ready to build different types of conferencing and streaming apps, for example, webinars, on-demand streaming, social interaction app like Clubhouse, etc.

The entire source code for Android, iOS, and Web conferencing apps is available on Githubopen_in_new repo, which you can download, modify and reuse without any restrictions.

Prerequisites

Before we get started, ensure that you have gone through the following prerequisites:

Basic Requirements for a Video Conferencing app

A typical conferencing app has the following requirements which we will be implementing in this tutorial.

  • Log-In, allow users to login using some kind of identification, for example, email, phone, enterprise ID, etc. In this app, we will be using an email-based login. Note that mesibo does not recommend or enforce any particular login method.

  • Create a room, Users should be able to create and join rooms on the fly. Each room will need a PIN for authentications and the creator of the room needs to share this pin with those who need to access the conference room.

  • Invite people to join the room by sharing room credentials, Rooms should be secure and only people with permissions to access the room should be able to join the room, for example, a right room-id and PIN combination.

  • Viewing others Participants should be able to view each other's videos and interact with them. They should be notified whenever any participants join or leave the room. They will be notified whenever someone in the room starts publishing their video/audio and they will be able to view/listen to them.

  • Share Screen Participants should be able to share multiple screens and cameras simultaneously. This is handy for making presentations, teaching, etc. (The web demo has a Whiteboard example). In the web conferencing demo, we will implement sharing multiple screens at once. On the Android and iOS versions of the conferencing apps, we will implement switching between sharing screen and streaming from camera.

  • Group Chat Participants should be able to chat with the group, one-to-one chat, and able to share media. In these conferencing apps, we have one-to-one messaging as well as group messaging built using mesibo messaging UI Modules for Android & iOS. Users can send rich messages, files, etc.

Download the Source Code

The latest code for all the conferencing apps are updated and pushed on conferencing repositoryopen_in_new. There are multiple ways of "downloading" code from GitHub.

If you have git installed, this is a recommended approach as you can quickly sync and stay up to date with the latest version. This is also a preferred way of downloading the code if you decide to contribute to the project.

To download, open a terminal and issue the following commands:

$ mkdir Conferencing 
$ cd Conferencing 
$ git clone https://github.com/mesibo/conferencing

Download the code as a zip file

Alternatively, you can also download the complete conferencing source code as a zip file. Although simple, the downside of this approach is that you will have to download the full source code every time it is updated on the repository.

Click on the Download button to start downloading.

Downloadopen_in_new

Once the download completes, unzip it into a folder.

Stay Up-to-date

Whatever approach you take to download the code, it is important to stay up-to-date with the latest changes, new features, fixes, etc. Ensure to Star(*) the project on GitHub to get notified whenever the source code is updated.

Star

Conclusion of part one

In this part, we have learned a brief about the Conferencing app features and key components.

Next, we will start building the Android app.

On to Part 2 >>