Progressive Web Applications (PWA) are a type of web application that is built to behave as a native application. They run in the browser, therefore no installation is required and they are available across multiple platforms. This combination makes PWAs both a convenient way for developers to publish their applications and for users to consume them. They are especially popular for mobile applications.
At first sight, a WebRTC PWA sounds like a good idea, right? You take advantage of the capabilities that WebRTC provides, and add to it the convenience of PWA development in order to build the perfect real-time communication application.
While this can indeed be the case, there are some things you need to consider. In this post, we will take a look at the pros and cons of building WebRTC mobile applications as a PWA vs native application.
Advantages of Building a WebRTC Application as a PWA
Let’s start by taking a look at the benefits of building your WebRTC application as a PWA.
PWAs are web applications. In other words, wherever a compatible browser is available, the application will be available too. This means that they are able to run virtually everywhere. Technology-wise, this also means that you only need to build your application once, instead of having multiple versions for each platform.
Easy to Install and Update
PWAs run in the browser so there’s no need to install anything in the device. The only requirement is to navigate to the application URL. Most OS vendors provide the ability to create shortcuts to make it easier for users to open your application, similar to how native applications work.
In the same vein, PWAs are easier to update. At least from the user’s perspective, since they don’t need to continuously download updates for it.
From the development perspective, this means that you don’t need to build binaries for multiple platforms. Neither do you need to go through the process of publishing such binaries and its updates to each device’s store. Instead, you install your application in your application servers and send updates there.
PWAs are also cost effective. As we mentioned before, you only need to build and maintain one application using one stack, instead of multiple applications using different technologies. This can be handled by a single development team whose expertise revolves around web technologies only.
Disadvantages of Building a WebRTC Application as a PWA
The benefits might have convinced you. But before you make this important decision let’s check the cons.
Limited Access to Device’s Hardware and Features
PWAs are all fun and games until you a specific hardware or feature from the device that the browser is not able to access. Think about CPU-intensive tasks that the browser can’t handle well, running in the background or push notifications for incoming calls, for example.
These scenarios are the ones where your application benefits from the specific APIs that each platform’s SDK has to offer.
PWAs run in the browser. Yes, I know we mentioned this as a benefit before! But, it also means that they will only be as efficient as the browser in which they are running. You also need to have in mind the overhead of having such a browser running, which can lead to higher battery consumption.
A native application benefits from the fact that it is built specifically for the device to which it is targeted. Therefore, it will perform better than a PWA. On top of that, it doesn’t depend on any other software, the browser in this case, running at the same time.
Browser Inconsistencies and Vendor-related Bugs
The ability to run in browsers makes PWAs able to run on virtually any device. However, browsers are built by different vendors and some of them do things differently in different OS. These differences have reduced in the last couple of years, yet they still exist and can lead your application to behave inconsistently across different platforms.
Add to this that some vendors add limits to PWAs. For instance, as of writing this post, iOS does not support the “Add to Home Screen” banner for PWAs, which makes it harder for users to discover and install these on their devices. This can lead to lower adoption rates for PWAs on iOS devices.
Also have in mind other vendor-related issues like the one reported for iPhone devices where iOS 16 introduced bugs when putting the browser in the background during a call.
When to Choose a PWA vs. a Native Mobile Application?
Now that you know the pros and cons, you should have a better view on what your application needs. Before making any decision, let’s recap some situations where you can pick one over the other one (or better, hire a team that can do both 🙂)
If your WebRTC Application needs…
|Then it should be…|
|Access to specific hardware & features||✅︎|
|High performance and efficiency||✅︎|
|Consistent behavior for each platform||✅︎|
|Single code compatibility across different platforms||✅︎|
|Easy installation and updates||✅︎|
|Cost-effective development and maintenance||✅︎|
|Support for a platform lacking PWA features||✅︎|
Which way will you go?
PWAs are a great way to build WebRTC applications that can run virtually everywhere. But, when you need to access specific features not available in the browser or to make sure that your application performs as efficiently as possible, you are better to go with a native approach as it will provide you with the best suite of tools.
All in all, it will ultimately depend on your application requirements and the resources you have at hand.
If you’re looking to build your next PWA or native application, or are unsure about what is the best for you, our team has plenty of experience building both web and native WebRTC applications. Contact us to learn more about our services. Let’s Make it Live!