PWA advantages over native and hybrid apps
Progressive Web Applications are often compared to native and hybrid apps because they share many of the same functionalities. Each approach has its advantages.
Cost of development and distribution
One of the top reasons why companies build web applications or hybrid applications over native applications is cost. By targeting the web they are able to build one application that works for all platforms. This means that they do not need to maintain teams with different skill sets. They also don't need to worry about distributing binaries and maintaining backwards compatibility in their service APIs as there is only one version of the application.
Poor conversion and friction
Both native applications and hybrid applications are distributed mainly through centralized application stores. This means that users either need to find your application through the store – which is unlikely if you are not in the top 20 or so apps in a given category – or that you need to convince them to install your application after they find you on the web.
The effort of convincing a user to install an application is commonly referred to as friction. This is the effort required to go through all the steps of finding an app in the app store, pressing install, authenticating, accepting permission checks, waiting for the download and finally opening the app once it's installed. It has been shown that the conversion decreases by about 20% for each step added between a potential user and using the app. This means that applications that need to be installed through an app store can commonly see conversions of around 25% of interested users.
Progressive Web Applications have a significant advantage over native and hybrid applications because they are so easily accessible. If someone finds your application online or is given the link to it, they can begin using it instantly.
Network resilience
Another factor that is driving companies to develop native and hybrid applications is reliability. A user expects an application to at least open if they tap on its icon, regardless of if they are online or not. This is something that web applications have failed at in the past. The web was not initially designed to deal with offline situations. Native applications on the other hand are built using tools and using practices that were specifically designed to deal with devices that are often exposed to poor or no network access.
With the introduction of ServiceWorker, web applications finally have a way of controlling network access themselves. This means that web app developers can decide which assets to cache and how to deal with slow or disconnected network situations in their specific application.
Device API access
Native and hybrid apps have given developers much more access to the device hardware than web apps have had. While this is still the case for some hardware, the web has come a long way. There are now ways of accessing 3D acceleration, accelerometer, position, camera and all kinds of other device APIs. You can find a good overview of APIs being worked on at MDN.
Read more about what APIs are available on the web today.
User engagement
Web applications have until now been very poor at engaging users. According to a comScore report, users visit about 5x more sites than apps in a given month on their mobile device, but spend almost 20x more time in the apps.
Native and hybrid apps have the benefit of being right there on the home screen and application list for easy access. They are able to send users notifications when important events occur. Now, with Progressive Web Applications, the web can do the same.
It all boils down to user experience
In the end, Progressive Web Applications will allow you to spend your efforts on building one really great application instead of spreading your effort across two or three platforms. PWAs will not be suitable for all applications, but for most business applications they will offer a better end user experience with their low friction at a fraction of the development cost of a native application.