Software Engineering

Introducing Progressive Web Apps

October 6, 2019

Stuart Arthur

Chief Technology Officer

Introducing PWAs and why you should consider them over native apps

So, what exactly is a PWA

There is a lot of confusion about a PWA, some people conflate them with native apps (Swift iOS / Java Android) and cross platform apps (React Native / Flutter), but they are different. Unhelpfully there are a lot of different definitions bandied around the web, so I am going to attempt to provide my own definition.

A PWA is a web app on steroids or as Alex Russell stated "websites that took the right vitamins". Being web based a PWA can be accessed as a website via a browser, but crucially they can also be presented as if they are a native app on a device.

However, where a native app is deployed via the app stores as PWA is deployed via a web browser, and you have the option to "add it to your home screen" where it will appear as an app icon and can be rendered within a shell so it looks as if it's any other native app.

Characteristics that constitute being a PWA

To be considered a PWA, Jeremy Keith asserted the following criteria must be satisfied:

  • Served via HTTPS
  • Includes an app manifest
  • Uses a service worker

In theory, any website that includes the above could be consumed as a PWA.

Advantages of a PWA

Having always admired the openness and inclusivity of the web, I've always felt comfortable building web apps using open standards. I believe in the beliefs underling the web and the intent of it. Native apps, however, are a challenge to this and can be thought of as walled gardens driven and controlled by specific vendors yet the growth of native app development is siginificant, but native apps and app store deployment processes can still be painful to work with.

What I like about a PWA is that you can build them using the same stack you would use to build any web app, their content is indexable, you can build them once for the web, but you can also present them as native apps and hook into the majority of native device capabilities, such as notifications and location services, for example. It is like having the best of both worlds and that can be a huge advantage and is potentially a very efficient approach.

Performance of a PWA when consumed via the native shell is increased over browsing a website on your phone because you can utilise the device hardware, which is another good advantage to consider.

Challenges of a PWA

When building a PWA most things work as expected when it comes to utilising native Android device capabilities; however Apple support for PWA is lagging behind in some places and is less reliable, so you need to consider this if your target device is Apple. You should also be prepared to find workarounds if your need for native capability is significant, but I would only expect this to improve as popularity and appetite for PWAs increase.

Here is a good list outlining Apple support for PWA at the time of writing that can help you make an informed choice.

You might also like...

The Impact Of AI Related Technologies
Software Engineering
read article
October 28, 2019
Consulting Model Of The Future
Strategy & Consulting
read article
January 30, 2018
How User Centred Design Can Help Us Build Great Products
User Experience & Design
read article
February 21, 2018
Startup Thinking...
Strategy & Consulting
read article
October 27, 2019
Startup Thinking...
Strategy & Consulting
read article
October 27, 2019
Solutions To Common Anti-Patterns A Tech Leader May Face
Strategy & Consulting
read article
April 16, 2018
The Impact Of AI Related Technologies
Software Engineering
read article
October 28, 2019
Startup Thinking...
Strategy & Consulting
read article
October 27, 2019
You Don't Need Scrum, a Scrum Master or Kanban
Strategy & Consulting
read article
October 16, 2019
Let's create
something great!
work with us