Introducing Progressive Web Apps
October 6, 2019
Introducing PWAs and why you should consider them over native apps
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.
To be considered a PWA, Jeremy Keith asserted the following criteria must be satisfied:
In theory, any website that includes the above could be consumed as 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.
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...