Progressive web applications
Progressive web applications (PWAs) became popular due to the success of responsive applications. It was made possible by the support of service workers and new releases of mobile browsers. Alex Russell coined the term "progressive web application" in his 2015 blog post “Progressive apps: Escaping tabs without losing our soul.” The term progressive refers to a development methodology called progressive enhancement. Progressive enhancement means there is a quality baseline for everyone, that is then progressively enhanced based on the additional available technologies. Where graceful degradation promises a quality experience for the latest and greatest technology users, progressive enhancement seeks to deliver a consistent baseline with additional affordances. Because of this, apps are inherently more accessible.
To determine if an app is progressive, browsers will seek the answer to a few questions.
Is the app already installed? If no, then;
Do users remain engaged with the domain for at least 30 seconds? If yes, then;
Is there a web app manifest with the appropriate attributes? If yes, then;
Is it served via HTTPS? If yes, then;
Does it have a service worker with a fetch event handler? If yes, then;
Chrome fires an event to prompt the user to install the PWA to their device home screen.
Service workers are specialized scripts that run in the background, allowing PWAs to utilize functionality such as background data sync and push notifications. This also allows users to feel the application is responding to their interactions because it’s running on the device and only reaching out to the network if it’s needed. With a multi-device reach, and near-native capabilities, PWAs are a compelling starting place for mobile strategies.
Functionality includes:
Development characteristics
Discoverability: Web only
The app is accessed via web browsers, direct URL or indirectly via a search engine or link. The app is not published in the app marketplace.
App updates: Author controlled
Updates can be made at any time without delay by pushing new code to the server. When installed locally, updates are automatically incorporated when the PWA launches.
Supported devices: Any device with a web browser
PWAs work for any device with a web browser, desktop or mobile.
Network dependency: Some offline functionality possible
The amount of offline storage available varies by platform. Some platforms have a policy of
limiting the amount of available storage.
Certification: Qualifications required to trigger the install modal
PWAs have minimum qualifications to be met, such as having an app icon, employing service workers, and having a manifest included.
Codebase: Single codebase for desktop and mobile devices
PWAs, at their core, are web applications. There is no need for different codebases. Due to requirements, a strict quality and testing approach must be employed when developing a PWA.
Performance: Dependent on the architectural approach
Service workers and offline cache enable the app to feel native while loading new information or experiences.
Time to market: Dependent on scope and functionality
These apps are often more feature-rich. While they take more time to develop than responsive apps, PWAs are the most efficient path to getting an application on multiple devices with minimal investment.