Overcoming Challenges in WebRTC Mobile App Development
WebRTC is a fantastic media engine, and can be used to create rich, robust mobile applications. But using WebRTC presents challenges, which can be overcome.
Join the DZone community and get the full member experience.Join For Free
Whenever we talk about WebRTC we tend to think about Chrome and Firefox. But what about Mobile Applications? WebRTC is no doubt a great media engine, the source code is free and open and it would be great when Mobile Applications are featured with WebRTC tools and frameworks.
WebRTC however does come up with its own set of challenges. Let’s have a look over the challenges which developers may face during application development.
Challenges in Using WebRTC for Mobile
Building mobile applications using WebRTC can be a bit tricky. Certainly WebRTC comes with great features like ports for Windows, Mac, Android, and iOS, but in order to make a truly usable mobile app it is obvious that you will be facing a few challenges.
These challenges can be broadly categorized into two:
1- Device Challenges: These challenges are the ones which come from a variety of mobile devices we use. Various devices have hardware configuration and computation resources, processor architecture, CPU power, camera resolution, audio acceleration support, different sensors and battery.
2- Medium Challenges: Change in connectivity (WiFi, 3G, CDMA), change in network profile (network load, interference), changes in lighting etc. are some medium related challenges.
Let’s talk first about the device and medium related challenges:
Audio Hardware Configuration: Every device has its specific hardware configuration and its’ implementation for the in-built speakers and Bluetooth. Devices like Android, iOS and other requires special handling.
Device Image Differences: Device image also known as form factor difference means one device’s image will have a different look than the other in aspect ratio and resolution. What would be the scenario if someone is using iPad or Galaxy S4 mini phone? Or may be a Chrome browser connecting to a mobile app? How would these variations be treated?
Camera and Screen Resolutions: Different camera and screens have different resolutions and that could affect the quality of the image during video streaming process.
CPU Power: Your system’s CPU power can also be a limiting factor in frame rate and image resolution. This could be real pain (due to complexities of video encoding) especially when you are capturing image.
Sensor Power: Mobile devices changes the orientation. This affects the image generated by devices and the one displayed on their screen.
Battery Loss: Running a WebRTC video call does take a toll on the battery performance. But technology innovation has resolutions of all these issues.
Connectivity Change: There can be a change in network connectivity. For instance, if a device changes its connection from Wi-Fi to 3G within a session, then correct measures should be taken to keep the session alive.
Network Profiling: Mobile handsets tends to change the network profile more frequently than in a stationary (PC) environment. User may change position and Wi-Fi or 3G jitter may result in bandwidth change. While developers are busy developing mobile application using WebRTC elements like bandwidth, frame, rate and resolution, adaption must be taken into account.
Change in Light: The change in user’s position may affect the quality of the videos. User may move the phone from bright light to dim or vice versa, which may affect the quality of video.
WebRTC is certainly a great platform for making live video chat mobile applications. However, it requires some tuning, tweaking and twisting. It is still a challenge for companies to do such development and companies are struggling hard to get through. There are a few possible approaches while we are on the spree of getting rid of these challenges and these approaches are not restricted to certain criteria. In fact, the approaches vary from case to case. The option that fits your need should be carefully selected both based on your application and business considerations.
Lets’ have a close look of tools to implement WebRTC on mobile:
Tools to Implement WebRTC on Mobile
But yes the biggest challenge for developers can be that Apple browser Safari does not support WebRTC so you may have to go NATIVE way instead of web browser based way in app development.
Let’s now move into a resolution finding mode. Here are some popular third party WebRTC SDKs that provide iOS as well as Android support.
1. Telefonica Tokbox
Among the most used and most common WebRTC SDKs is Tokbox and its API platform OpenTok. More than 80,000 users are currently using WebRTC SDKs. Major Brands like Universal Music Group, Bridgestone, Golf and many others are prominent users of Tokbox. The platform is fully featured, robust and scalable platform which comes with value addition of huge plug-ins. Algoworks holds niche in using Tokbox for developing many WebRTC mobile applications.
2. Open Clove
OpenClove offers WebRTC support with large number of demos and sample codes. FreeMAD offers free source code for two-way communications and peer-to-peer communication with video the default voice and messaging options. OpenClove’s pay platform includes support for multi-party conferencing, streaming, recording and other advanced features.
4. AddLive WebRTC Platform
AddLive is a very powerful voice and video communication API. AddLive is used by over 5000 business and provides support for native iOS WebRTC application development. It is among the awarded webRTC tool in 2013.
Bistri is a video calling solution fully based on WebRTC standard. It is available on web, Android and on iOS too. The solution allow users to get in touch with one click. Bistri.com provides everyone with their own link, like an online phone number. Bistri provides a disruptive way of communicating and share things online with privacy, confidentiality and simplicity.
WebRTC is an out-and-out browser based technology. When we talk about WebRTC, perhaps the most imaginative might picture some technology on a mobile or at best a native application instead of a browser-based one, however most would imagine nothing but browsers and some story around it.
Opinions expressed by DZone contributors are their own.