Rodney Wirtz

Industrial Programmer

RWirtz@bxxe.us

Progressive Web Apps

The Background Story


A progressive web app (PWA) is a website that looks and behaves as if it is a mobile app. PWAs are built to take advantage of native mobile device features, without requiring the end user to visit an app store, make a purchase and download software locally. Instead, a PWA can be located with a search engine query and accessed immediately through a browser.


PWAs eliminate the need for e-commerce merchants to develop native apps for multiple mobile operating systems. Just like YouTube videos, PWA content is downloaded progressively, which provides the end user with a better user experience than a traditional website that uses responsive design. The term “progressive web apps” was coined in 2015 by designer Frances Berriman and Google Chrome engineer, Alex Russell


The goal of PWAs is to blur the distinction between native apps and the mobile web by bringing most of the benefits of native mobile apps to the mobile browser. PWAs use standards-based technologies and run in a Container that is secure and accessible to anyone on the web. They can send web push notifications, work offline and be accessible from the home screen, just like a mobile app from an app store.


PWAs can also take advantage of APIs and browser plugins to ensure that deploying and maintaining a website remains as easy as possible. Another benefit PWAs have inherited from traditional websites is the use of URIs to indicate current state. This allows the web app to retain or reload its state when the user bookmarks or shares the app’s URL.


A progressive web app’s UI should be correctly sized for the device’s form factor and screen size. In addition, it should look like a native app and be built on an application shell model. The PWA should have few page refreshes, and the app should work in areas of low connectivity or even offline.  What’s more, new content should be made available in the app. Because network requests can be intercepted, the app should be hosted over HTTPS to prevent man-in-the-middle ( MiTM ) attacks.