Whereas most desktop app developers are happy to use effective third party WebRTC SDKs to create desktop apps, the goal for most mobile app developers is to create a native WebRTC application that uses all of its own coding.

However, browser limitations placed on WebRTC developers means that creating a native app is tricky and thus, there’s no completely fool-proof solution to developing a mobile WebRTC solution.

WebRTC App: Native or Hybrid?

What’s more, finding a WebRTC app developer who can work well in mobile is somewhat of a big ask, given that WebRTC as a platform is still very much in its infancy. This post will explore the current solutions available to WebRTC developers when creating mobile applications.

What is a Hybrid Mobile Application?

First of all, let’s define our terms. A hybrid application is an app that uses third party technology, i.e. software that has been developed by other companies. Generally speaking, there are two main ways of building a hybrid app:

1. WebView

This is an HTML5 web application that enables developers to create mobile apps using third party software. With WebView, the app is displayed on a user’s web browser and is given access to the browser’s webcam and microphone. This is achieved by using plugins that use JavaScript APIs. Unlike a native app that uses all of its own resources, a hybrid app created using WebView will be mobile responsive. Some examples of WebView software include:

  • Sencha
  • Cordova
  • PhoneGap
  • Trigger

According to a recent report carried out by Vision Mobile, HTML5 is the most widely used language for mobile app developers.

2. Compiled App

Unlike WebView apps, compilation applications only use one programming language. The code is typically written as C# or JavaScript and is translated into native code for each of the platforms on which the app will run, meaning that each platform will have its very own native app. Some examples of compilation software include:

  • Xamarin
  • RubyMotion
  • Appcelerator
  • Embarcadero Firemonkey

The Benefits and Drawbacks of Hybrid Apps

Hybrid apps allow code to be reused across different platforms, making them a flexible, effective solution for developers. However, not all of the resources used by hybrid apps are readily available across native platforms.

Hybrid applications can be built quickly and cost-effectively by non-professional WebRTC developers - often just as quickly and inexpensively as pure HTML5 native apps. A drawback of hybrid apps however, is that they run slower than native apps, despite the fact that they look the same to the end-user.

Hybrid apps are able to make use of third party software platforms. However, because there can be several different software sources within the one app, other developers may find it difficult to work within the framework in question. In short, there’s no standard way of developing hybrid apps.

What is a Native Mobile Application?

A native mobile application is an app that has typically been developed exclusively using HTML5 code for a particular device and/or browser. A native mobile app can only be used on the device/browser for which it was purposely built and can’t be used across any other platforms.

Generally speaking, most WebRTC mobile developers would aim to create native apps, given their speed and usability. Native app developers tend to start developing an app on the iOS platform, then develop the same app for Android browsers. Eventually, the app would be developed as a fully-fledged native app for Android, rather than a browser-based one.

Because Android and iOS don’t offer the best native support for apps, developing native applications on mobile platforms is tricky and Apple don’t support WebRTC native apps at all.

The Benefits and Drawbacks of Native Apps

Native applications are generally quicker than hybrid apps and offer a better user experience. However, finding a developer for a WebRTC native app can be challenging. The skills required are generally out with the abilities of a non-professional hobbyist developer.

Although WebRTC isn’t a complete solution for native app developers, it can make their job a bit easier, given WebRTC’s in-built high quality video and audio capabilities. However, not all mobile browsers (particularly iOS) support WebRTC functions like MediaStream API and PeerConnection, meaning that the only solution could be to create a brand new internet browser rather than building for existing web-based ones.

Given the advantages and disadvantages of both, there’s no one clear winner for native vs hybrid apps. It’s important to first consider the purpose of the app and the devices it will be used on. In any case, it’s not uncommon to find WebRTC mobile apps that are available on both web-based browsers and native mobiles, just look at Facebook and Google Hangouts.

What are your thoughts on the hybrid vs native mobile app debate? Do you favour one approach over the other? We’d be keen to hear what you think.