PWAs go beyond what traditional web applications can do. They give users a reliable, secure and always available experience regardless of network connectivity. They also carry a very small footprint and don’t need to be installed unlike native applications. PWAs can just be pinned to the home screen while maintaining essential features like push messages and notifications.
To put this in perspective, switch your phone to airplane mode and try accessing your favorite website. You will be greeted by your browser with a message informing you network connectivity is not available and no content. Properly designed PWAs load instantly and don’t suffer from this problem. Developers can present you with a working interface, previously loaded content and a message letting you know things might not be up to date until connectivity is restored. A behavior much closer associated with native applications you download from the Microsoft, Apple or Google Play stores. In a nutshell, these are web application that remains useful even if network connectivity is not available.
Native applications undoubtedly have their advantages. They are usually developed on the platforms native programming language which means they most times perform favorably. They also have direct access to platform specific APIs which gives developers a lot of power and flexibility. They can be optimized to be power mindful and usually provide a consistent user experience parallel with that of the host operating system.
Web application development has evolved rapidly in the last 5 years. Rapid adoption of web standards have paved the way for these advancements to bridged the gap between native and web experiences to a point where in many cases the differences are negligible and sometimes barely noticeable.
A few years back the capabilities of web applications was very limited. All that has changed, web applications now support things like push messages and notifications. Bluetooth support is also now a reality through the implementation of the Bluetooth Web API. Although still not widely supported, it is being slowly adopted.
Another important feature is the ability to read information from devices sensors; this opens the door to simple user experiences like full screen video on rotation or allowing you to control games by tilting or rotating your device’s position. When you put these things together you end up with a recipe for a great user experience, previously only available to native applications.
Among some less obvious but very important features is the ability to sense whether your application is in the foreground. Although PWAs live in the browser, developers can minimize battery impact by turning off power intensive animations or network activity while the application is in the background. These features in conjunction with functionality like payment support, credential management and hardware graphics acceleration provide users with a nearly seamless experience.
There are benefits to developers. The cost of maintaining a web application which runs across a wide range of devices and operating systems is much less than the one associated with developing and maintaining a native application across the three major platforms.
Then comes the question of distribution. One of the advantages of having a native application is making use of the platform’s app store. It provides users with relative peace of mind that applications have gone through scanning and inspection to make sure they are not doing anything malicious or undisclosed. It also provides a platform for them to be promoted, rated and reviewed which in itself helps boost adoption as users tend to gravitate towards favorably rated applications.
PWAs on the other hand live outside the Apps stores, they can be easily pinned to your home screen which provides users quick access and the ability to keep up with notification. They are available on any platform and most modern browsers support them.
The takes us to the question of size, one of the most successful PWA applications was created for Starbucks in 2015. It outperforms the native iOS application while retaining the same experience. Not only that but the result was a ~300KB application, that is much smaller than the native application which comes it at around 80MB.
A final note, a lesson which I’ve painfully learn through personal experience is that while most use cases are covered and the features work well across Windows, MacOS, Linux and Android devices; not the same can be said for iOS. Safari lags behind in terms of adopting many of features that make web applications useful, powerful and a viable alternative to the traditional native app approach. Although this might seem unimportant, a large number of people use iOS powered devices.