Blogi 22.2.2018

Should I do PWA instead of native app?

Kiva kun löysit tämän artikkelin! Se sisältää varmasti hyvää tietoa, mutta pidäthän mielessä, että se on kirjoitettu 6 vuotta sitten.

Are you in a situation where you need to choose between a Progressive Web App and a native application and have no clue how to assess which one suits your needs better? If so then this blog post is for you as I explain how I help our clients to make the right choices for their businesses. In case you need an introduction for PWAs first, please check my earlier blog post What is a PWA and why should I care?

Current support

To give an overview on the level of support for PWAs, below is a list of all major platforms (desktop and mobile) with their current and upcoming support. I’ll try to keep the list up-to-date while things are still progressing. Here, support is defined by implementing the two most important features of PWAs: Service Workers and Web App Manifest. The support for native features (such as Virtual Realitypayments and device motion) varies greatly among the browsers.

Desktop
  • Chrome:   Not so surprisingly the support for PWA features has been around for a while in Google Chrome.
  • Firefox:   Latest Firefox for Android release brought the support for Web App Manifests, and Service Workers have been available on Firefox for quite a while already. I suppose the support for manifests will be seen in the desktop versions soon too.
  • Safari:   The support for Service workers was introduced as part of Safari 11.1. Same limitations (no Push notifications and support for Web App Manifest) apply as for iOS version below.
  • Edge On 6th of February Microsoft announced the support for PWAs in EdgeHTML 17.17063 soon to be released.
  • IE11:  No current or upcoming support.
Mobile
  • Apple: iOS 11.3 was released 29th of March 2018 with support for Service Worker. Support for Push notifications and Web App Manifest is still to be added. Luckily iOS has supported installing app as a desktop icon for quite some time already with vendor-specific functionality so that can be leveraged. iOS users are luckily known for quick update cycle so the support can be expected to reach a decent level relatively soon.
  • Android In Android there are multiple browsers that are used. The default browser (based on Chrome) has supported PWAs since the release of Android 5 and the support is also available in the Samsung Internet and Firefox for Android. Android 5+ represents over 80% of Android devices according to Google.
  • Windows Phone:  According to at least this article there is no support expected for the Windows Phones..

(Last updated 5th of April 2018)

What to consider when choosing?

Below are the main points to consider when evaluating whether a PWA can be used instead of a native application. Choosing isn’t always straightforward and often requires knowledge about the expected user base, plans & requirements for the application itself and state of support for multiple native features.

1. Know your user base!

The very first thing to consider is your user base. Even though the support for PWAs is spreading all the time, it just isn’t quite there yet. You need to understand what kind of devices the users are using the app with. Let’s view this via examples for both suitable and unsuitable cases for PWAs.
Suitable user bases

  • App is to be used only by your organization’s own employees and your organization only provides employees with high-end Android phones. Such a case is usual in public sector and also in large enterprises.
  • App is to be used mostly in geographical areas where the percentage of high-end devices is high enough and the users without such device can be ruled out. Even though it might sound harsh and infeasible, it is actually done all the time with native applications too as they more often than not don’t anymore support devices like Android 4 to provide the best possible user experience and to ease the development burden.

Unsuitable user bases

  • App is to be used by public, mostly in geographical areas where low-end devices are typical and for example Android 4 is still a major factor. Africa and South America are examples of such areas.
  • App is to be used with devices that don’t support the native features required for the app to provide value. See the next point for more details. Whether a PWA is currently a solution for your case is essentially a business decision and thus should be evaluated as such. If you are okay with some users missing features provided on top of the basic web site, PWA is a suitable option for you.
we are hiring
2. Nature of the app

What are the features required by the app and how do they or lack of them affect the user experience? Not all native features are supported by the web platform yet. Want to do geofencing, Virtual Reality or NFC? Then PWAs maybe aren’t for your use case (yet). Or maybe they are! The P in PWA stands for Progressive. What it means is that the user experience is enhanced based on the capabilities of the browser. So the decision comes down to if these features are a mandatory part of the application or is the app valuable enough without these features. What I can’t unfortunately provide here is a comprehensive list of native features available on the web platform. This is mostly because the list of native features is huge and the support is evolving all the time so the list would be outdated anyways. It needs to also be noted that even though many features are available on web platform they might differ in user experience and options when compared to using them in native apps. To give an example of such feature, consider an app that wants to utilize the camera with an overlay on top of the camera preview (e.g. Snapchat as seen in image below). It simply isn’t possible even though you can access the camera functionality itself.

To investigate the feasibility for your business case, you can start by taking a look at What Web Can Do Today, which checks your current browser’s support against all native features, and Can I Use?, which allows you to search for certain feature and check the compatibility table for most used browsers.

 3. Technological suitability

Even though web technologies and browsers have taken huge leaps forward over the past years, the performance doesn’t exactly match the native application performance. And it most probably never will. Still, the performance is high enough for most use cases. Besides performance, one important thing to consider is the look’n’feel of your app. It has already been proven by many web apps that it can be imitated extremely well. Yet it requires some effort compared to using the UI components made available by the operating system itself. The native UI components are also what the hybrid apps (built with for example React Native) have been utilizing for a while now by combining them with the powerful JavaScript ecosystem.

Conclusions

Implementing your app as a PWA usually reduces the development costs heavily as you can skip the expensive native development for each platform you want to support while still being able to utilize many of the native features. The support is getting there and 2018 will be a big year for PWAs as iOS support is finally landing. Choosing a PWA over a native app boils down to understanding what are the trade-offs and how is it limiting your potential user base. This has to be evaluated on a case-by-case basis and requires extensive comprehension of the business case. Gofore has a wide experience in both service design and technologies empowering PWAs and can help you to make the right choice for your business case. Contact us and let’s see together how can we help you. In case the PWAs aren’t the right choice for your case, Gofore also possesses wide experience in native and hybrid apps so let’s craft the app together!

Further reading form the Gofore blog

What is a PWA and why should I care?
Agile Transformation in Action – Part 1
Agile Transformation in Action – Part 2

Roope Hakulinen

Roope worked as a lead software developer at Gofore.

Takaisin ylös