We've now released a newer version of the Video collaboration app – for the newest deploy instructions, follow this link.
Today we are excited to announce that we are open sourcing three video collaboration applications, one for iOS, one for Android, and a ReactJS one for the Web. Whether you are building a healthcare, education, or general video collaboration solution, these apps can accelerate development by providing you with a fully functioning video app that can be deployed to the cloud in minutes. In addition, they provide a canonical reference for developers building out their communication solutions by showcasing the Programmable Video capabilities. These applications are available today on Github under the Apache 2.0 license:
- Web - https://github.com/twilio/twilio-video-app-react
- iOS - https://github.com/twilio/twilio-video-app-ios
- Android - https://github.com/twilio/twilio-video-app-android
At Twilio we strive to build a reliable, extensible platform so that our customers can build high quality communication experiences in their applications. Our Video SDKs provide the API building blocks for mobile and web developers to create custom communications experiences in their apps. We believe we can help our customers build better communications apps by producing these fully featured reference apps.
Above image shows how the open source app renders across desktop, iPhone, and Android.
Open Source Video Apps
Our team began implementing these applications as an internal means to exercise and validate the Programmable Video APIs. Over the years, we have found that the implementation and daily use of these applications provide valuable feedback for building a better Video platform. Additionally, we believe these applications can be helpful to developers embarking on building or enhancing their own Programmable Video apps. These apps are intended to accelerate development, provide a full reference of Programmable Video, and demonstrate best practices with easy-to-read code.
How is this different from a Quickstart?
Twilio uses quickstarts as a means to introduce developers to our Programmable Video SDKs. The quickstarts provide a simple and quick way for developers to build a reference app and familiarize themselves with the different capabilities of the platform with a minimal amount of code.
In contrast, the purpose of these open source apps is to provide a more comprehensive demonstration of Programmable Video features such as:
- Connecting to a Room and publishing audio & video tracks
- Screen sharing between participants
- Defining participant bandwidth usage with Network Bandwidth Profile API
- Monitoring network conditions with Network Quality API
These applications leverage a new Twilio CLI RTC plugin which supports quickly developing and deploying real-time communication applications using the Twilio Runtime. You can go from exploring an application’s source code to trying it out for yourself in five steps. The snippet belows shows an example of how to deploy the web application.
# Clone the web application $ git clone https://github.com/twilio/twilio-video-app-react # Change directories $ cd twilio-video-app-react # Build the application $ npm install # Install the Twilio CLI $ npm install twilio-cli -g # Login to your Twilio account using your Account SID and Auth Token $ twilio login # Install the RTC plugin $ twilio plugins:install @twilio-labs/plugin-rtc # Deploy! $ npm run deploy:twilio-cli deploying app... done Web App URL: https://video-app-1111-dev.twil.io?passcode=1111111111 Passcode: 1111111111
Check out this video to see how to deploy the three apps, iOS, Android, and ReactJS, in under five minutes.
For additional getting started details or information about the applications you can check out each of the projects below. Note in this sample app the generated url and passcode expire after one week. To securely manage your users you can update the provided Access Token server or host your own. See our documentation here on how to manage your own Access Token server.
The iOS application is written in Swift and ObjC, but our team is in the process of migrating to Swift. You can get started using the project README and we invite you to provide your feedback if you encounter any issues.
The Android application is written in Java and Kotlin, but our team is in the process of migrating to Kotlin and incorporating Google’s App architecture guidelines. You can get started using the project README and we invite you to provide your feedback if you encounter any issues.
The Twilio RTC plugin is a Twilio CLI plugin created to help developers develop and deploy real-time communication applications. This plugin presents a new approach to getting started with Twilio Voice and Video and we welcome your feedback!
Wrapping Up and Looking Ahead
At Twilio we strive to wear the customer’s shoes as a means to understand our customer challenges and guide us toward building a better platform. We believe these open source reference apps will help accelerate developers as they build the next generation of video experiences for healthcare, education, collaboration, and more. We look forward to collaborating and can’t wait to see what you build with Programmable Video!