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.
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:
According to a recent report carried out by Vision Mobile, HTML5 is the most widely used language for mobile app developers.
2. Compiled App
- 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.