PWA Disadvantages

Do you bounce around the web researching Progressive Web Apps?

I bet you found one or more articles sharing Progressive Web Apps disadvantages, limitations or drawbacks.

Hopefully, this has not scared you away from this great technology. Progressive web apps leverage great user experience. This makes your employees more productive doing their day to day work.

PWAs use many modern web features, especially service workers, but there is more, so much more.

There are many trolls on the Internet writing about PWA disadvantages. Their messages get shared by others, often word for word.

I will address the most common false progressive web application assumptions. You will then understand why these arguments are wrong. Hopefully this will deter you from making a mistake deciding between native or the web.

PWAs Are Not JavaScript Websites or Single Page Applications

I see this message propagated by both the marketing and developer communities. Both are wrong.

Progressive web apps are not single page apps (SPA) or JavaScript sites, they can be, but do not need to be.

A progressive web app can be any website served via HTTPS, has a valid web manifest file and registered service worker. The service worker should have a fetch event handler.

That's it.

There is nothing about requiring 3MB of React, Angular or Vue in those items.

I argue against using these fast food frameworks because they create slow user experiences. This is contrary to the goal of PWA, which is to deliver amazing user experiences using the web.

PWAs Do Not Increase Battery Usage

I don't know why this has begun spreading around the Internet. The theory is PWAs rely on 'high-level' programming languages. The languages require more CPU, which translates to more battery usage.

Sure, if you use a fast food framework your site requires more CPU to process all their excess code. As I demonstrated in the previous section a progressive web app does not need frameworks.

The service worker does run in the background, but browsers limit the idle time. The process is terminated when idle too long. This is by design to limit their ability to consume battery life.

PWA Devices Access is Not That Limited

It is sad that many pro-native app advocates will use this argument. There are some platform specific APIs or features the web does not support. There are very few native apps that use these features.

I have built PWAs in the past 2-3 years that use the device camera, microphone, video streaming, scanning photos and bar codes. I have also built sites that access the device's USB ports and Bluetooth connectivity.

The web has also had access to the Geo-Location API for over a decade. You can get the exact location of the user right from their machine, not an inaccurate IP database.

The Media Capture API, video and audio playback have been supported for years. You can even stream live calls through these APIs. Skype has had a web client for several users based on WebRTC.

Most browsers support native push notifications. Apple is the lone holdout. When not available you can detect support and fall back to SMS and email as an alternative.

Biometric authentication enjoys broad support. This is where you can login to an application by swiping your finger or looking at the device. The authentication APIs are FIDO compliant. You can use external authentication keys or require an inserted USB key.

And if you are wondering about every major browser supports these features.

WebAuth Browser Support

You might think your banking app uses features requiring a native app. Probably not true. In my experience online banking can be done as a progressive web app.

Those making a case the web does not support features have not studied the web. They typically list supported features and act like they are not possible.

Many brands are phasing out native apps. They are replacing apps with PWAs.

The almost 100% feature parity to the native version is a reason why.

Twitter is one of the first, high profile, brands to do so. Today their native apps are hybrid apps that wrap their PWA. Netflix has been a PWA on Windows for years.

Secure by Default is Not a Negative

This is another argument I just shake my head. Requiring a TLS certificate and serving a site using HTTPS is not a bad thing.

Everyone, well not bad guys, are all for security and encryption. Especially when it is free and easy to install on every website.

How HTTPS Works

I have written how HTTPS works. HTTPS it secures communication between the browser and the server. It wraps the regular HTTP packets in a layer of encryption only your browser and the server can decrypt.

Many modern APIs, like service workers and push notifications are gated behind HTTPS. This is because they either send user sensitive information across the web. A service worker needs to have its scope limited to deter bad actors from exploiting the technology.

Progressive Web Apps Do Work on Older Hardware & Browsers

This assumes the web is not elastic. The reason 'progressive' is part of the name is to imply the site progressively enhances.

If a user visits using an older, obsolete browser no one should be using any longer, the site should just work.

Sure, the user will not get the benefits of the service worker. Maybe they can't access the USB port, but does it really matter?

I work on the assumption someone with these limitations is doing so by choice these days. They are, let’s say, used to those limitations and don't expect these enhanced features. I hate to sound biased against these folks, but you have to go out of your way to use an obsolete browser today.

Make sure you give them sort of level of success. Don't leave them with a blank screen or some insulting message. about their browser.

The Web Can and Has Supported Pretty Amazing Animations for a While

Another incorrect assumption is the web does not support animations or at least smooth animations. This is false and has been for a long time.

Browsers began supporting CSS animations, transitions and key-frame based over a decade ago. They also put the processing for these animations on the device GPU, not the CPU.

This means the animations you get in native apps is the same as you can achieve on the web.

Where I think this perception comes from is many developers still are not aware of how to use CSS properly. Instead they use heavy JavaScript libraries and techniques to manually change CSS properties. This was common over a decade ago, before CSS animations were supported.

When animations are done using JavaScript they do not take advantage of the GPU and other optimizations. They often use the setInterval method instead of the requestFrameAnimaition method. This is a bit inside baseball if you are not a web developer, but the latter is what you should use for smoother visual updates. Animations should rely on adding and removing CSS classes with animations defined.

Another closed-minded argument from our native only friends. They cannot imagine a world without curated platform app stores and a 30% sales tax.

Consumers don't imagine a world outside these stores either, they live there!

In 2015 we passed peak app, this was the point where the average adult stopped downloading apps. The average mobile user does not download an app within a given month anymore and have not for years.

What is more is limited is discoverability, especially in the Apple App Store. Recent research shows how they have been stacking search results with Apple apps, pushing competing brands so far down the results list they can no longer be found.

Apple has also been tightening its app guidelines and enforcing them more and more. They are rejecting more apps than ever and removing existing apps by the hundreds of thousands, even those with large customer bases.

With Progressive Web Apps you can leverage multiple marketing channels, especially organic search engine optimization, pay per click, email newsletters and more to drive traffic, cheaply, to your site.

Additionally, links from other sites help your content be discovered as well as driving more traffic.

It is still up to you to drive those visitors through a funnel to convert them to buyers, but that goes without saying.

Summary

I have written extensively on this site and a few others about PWA benefits. I even have a short eBook on why you should upgrade to a progressive web app available.

Somehow many still have not gotten the memo and are sharing fake news about progressive web apps and like most things on the Internet it scales, quickly.

I tried to address almost all the arguments against progressive web apps. As you can see, they are all wrong, based on inaccurate information or started by those with a vested interest in developing native apps.

Yes, I have a vested interest in the adoption of PWAs, but I try as much as possible to be honest about the limitations. There are not many.

What is still a common limitation are developers that understand proper web development and what the platform can do. That is one reason why I wrote my PWA by Example book and produced a course to train developers on progressive web application development.

If you are a business stakeholder and need more guidance about progressive web applications and how your business can use them instead of native apps, please contact me and I will be glad to answer questions for you.

Lastly, just because it is on the Internet does not make it true, especially when you read about disadvantages of progressive web apps.