Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Overcoming Challenges in WebRTC Mobile App Development

DZone's Guide to

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.

· Mobile Zone
Free Resource

Download this comprehensive Mobile Testing Reference Guide to help prioritize which mobile devices and OSs to test against, brought to you in partnership with Sauce Labs.

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.

Implementing WebRTC on Mobile

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:

Device 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.

Medium Challenges:

  • 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.

3. HookFlash

Hookflash is among the only WebRTC SDK which was first to provide support for iOS App Development. It was then followed by Android and JavaScript framework.

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.

5. Bistri

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.

6. Twilio

Embedded by WebRTC functionality Twilio offers voice calling feature into your web interface using simple JavaScript library. Twilio’s global low latency cloud infrastructure is icing on the cake. The Twilio’s clientage includes Salesforce, Intuit, Hulu, Sprint and the list is unending.

Finishing Line:

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.

Analysts agree that a mix of emulators/simulators and real devices are necessary to optimize your mobile app testing - learn more in this white paper, brought to you in partnership with Sauce Labs.

Topics:
webrtc ,twilio ,telefonica ,voip ,mobile

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}