My take on... Hybrid vs PWA

My take on... Hybrid vs PWA

ยท

4 min read

Nowadays, the goal for every company is to deliver an experience with the lowest barrier of entry possible for both the consumers and the company itself. Here I'll try to give a brief take on each approach and the reason why they should be chosen over the other one.

When planning a new application, there are many things that should be considered. Among them, we can discuss how long (and how much) it will take us to develop the app, how easy it is for the consumer to use it, and if we have access to everything we need to provide the experience we want. Before comparing, let's discuss the main features they offer.

PWA

... or Progressive Web Applications, are Web applications that run in a separate window, giving the appearance of working with a native application. They are limited, because they are still working within a browser shell. It has a limited API, but it's quite enough for simple scenarios.

Hybrid

Hybrid applications still use web technologies. It means that if you have HTML, CSS, and Javascript in your toolbox, you are ready to launch your hybrid app. They can be published on any major app store. And they extend HTML's API further in order to access different parts of their host's hardware.

Both of them require almost the same kind of expertise to bring a project to reality, and that's great because it's easier to find web developers than native developers for each platform where the application is running.

However, there are some differences that we should take into account.

Access to specific parts of the device

Let's say we want our application to access the NFC reader on our phone to get some data. At the time of writing this article, it is not possible with a PWA, but we can do it with a hybrid application. However, if your only purpose is a basic app with no access to any specific hardware feature, a PWA will do just fine.

Technical Debt

Having a framework as a middle-man between your app and the device means the whole app relies on the framework. However, we can say the same for PWA (if we use the same framework as Angular). The thing is that if something changes in Angular, we can still rely on the HTML's API. It's not the case if we depend on a framework's library or a framework's feature that can be deprecated.

Performance

Neither option is performant as a native application. At best, there is an additional layer between the code we write and the device, and we have to keep that in mind. On the other hand, most of the devices where the app may run are quite powerful, so if the application is simple enough, the user may not notice the difference.

If the application is graphic-intensive, I think a PWA or hybrid app is a no-go. Although, WebGL is getting some improvements in performance lately, is still behind native applications.

Support

PWA are not well supported by Apple at the moment. You can add a shortcut to your homescreen (only in Safari) or workaround it with third party solutions (https://blog.pwabuilder.com/docs/build-your-ios-app) and that's about it. With a hybrid approach, you can be confident that your application will be available on Windows, Linux, Android, and iOS. I suggest considering this with your consumers in mind. But, they must go through a review process in each marketplace (and I think in each update as well).

Costs

The difference between PWA and hybrid apps in terms of costs depends exclusively on the framework used to make the PWA hybrid. There is a learning curve for the framework, and having to publish the app in both the Play and App Store means you have to get a developer account on both marketplaces (which is not much, I know).

What should I do?

My take is to start with a PWA and try to stretch it as far as you can, covering all the requirements with everything HTML and JS have to offer. If you meet a specific requirement that is a deal breaker for the consumer, then I'll suggest moving to a hybrid approach, or you may not need to move at all.

Also, working with a framework like Ionic for a hybrid app, will allow us to have a more consistent experience between platforms.

In the end, a PWA should become a "lite" version of your app, inviting consumers who want a more immersive experience to download the native (or hybrid) version.

As always, I hope you can take anything useful from this and I'd like to know your thoughts.

Feel free to reach me on LinkedIn or Twitter . ๐Ÿ‘‹๐Ÿป

Did you find this article valuable?

Support Ezequiel E. Tejada by becoming a sponsor. Any amount is appreciated!

ย