This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
(Learn how and when to remove this template message)
|
Progressive Web Apps (PWAs) are web applications that are regular web pages or websites, but can appear to the user like traditional applications or native mobile applications. The application type attempts to combine features offered by most modern browsers with the benefits of a mobile experience.
Since around 2005 web development technologies have shifted from static to dynamic documents driven by server (PHP, ASP.NET) and client side (e.g. Ajax[1]) tools, and responsive web design.[2] Despite an early push for web-based apps based on these technologies on devices such as the 2007 iPhone, attempts at web-apps failed by comparison to native-apps. Native apps provided a better user experience and booted faster compared to having to load in a browser at runtime. Packaged resources and direct access to hardware allowed native apps to perform much faster and to provide more features. By the mid 2010s, however, continued enhancements in HTML5, CSS3, and JavaScript, significantly more capable and standards compliant web browsers, along with powerful processors such as the A10 and Snapdragon 821 made performant hybrid-apps a viable alternative.
Hybrid apps mimic the native mobile UX, and need an App store download. As such they consume storage. The combination of markup, styling sheets, and scripts enable custom interactive page elements without the use of closed systems such as Flash. Partially running in a mobile browser, hybrids did not have a URL, supported a rich user interface and access to system capabilities. Newly released CSS3 and JavaScript frameworks allowed new design patterns such as the box model followed by grids and flex, accompanied by translations, transformations, animations.
In 2015, designer Frances Berriman and Google Chrome engineer Alex Russell coined the term "progressive web apps" [3] to describe apps taking advantage of new features supported by modern browsers, including service workers and web app manifests, that let users upgrade web apps to progressive web applications in their native operating system (OS). According to Google Developers,[3][4][5] these characteristics are:
Progressive web apps are an enhancement of existing web technology. As such, they do not require separate bundling or distribution. Publication of a progressive web app is as it would be for any other web page. As of April 2018, progressive web apps are supported by the Google Chrome, Mozilla Firefox and Safari browsers, but more browsers may support the features needed in the future.
The technical baseline criteria for a site to be considered a progressive web app by browsers were described by Russell in a follow-up post:[7]
Commonly used technologies serve to create progressive web apps[8][9][10] are the following:
The web app manifest is a W3C specification defining a JSON-based manifest[6] to provide developers a centralized place to put metadata associated with a web application including:
By setting and manipulating the metadata for the web manifest file, developers enable user agents to create seamless native-like mobile experiences through the progressive web app.
Native mobile apps deliver rich experiences and high performance, purchased at the expense of storage space, lack of real-time updates, and low search engine visibility. Traditional web apps suffer from the inverse set of factors: lack of a native compiled executable, along with dependence on unreliable and potentially slow web connectivity. Service workers are used in an attempt to give progressive web apps the best of both these worlds[11].
Technically, service workers provide a scriptable network proxy in the web browser to manage the web/HTTP requests programmatically. The service workers lie between the network and device to supply the content. They are capable of using the cache mechanisms efficiently and allow error-free behavior during offline periods.
Properties of service workers
Benefits of service workers
Some progressive web apps use an architectural approach called the App Shell Model[12]. For rapid loading, service workers store the Basic User Interface or "shell" of the responsive web design web application. This shell provides an initial static frame, a layout or architecture into which content can be loaded progressively as well as dynamically, allowing users to engage with the app despite varying degrees of web connectivity. Technically, the shell is a code bundle stored locally in the browser cache of the mobile device.[13]
Cost of a progressive web app
For an app publisher, the biggest advantage is the cost saving in terms of app development and maintenance. Average customer acquisition costs may be up to ten times smaller compared to those of native applications. [14]
This list includes progressive web apps together with their scores from Google Chromes' PWA audit powered by Lighthouse.[15] The audit validates the aspects of a PWA, as specified by Google's baseline PWA Checklist and ranges from 0 (worst) to 100 (best).
Name | Description | Link | Audit score |
---|---|---|---|
ReSTbasis | Web Starter Kit. | [1] | 100 |
The Air Horner | An Air horn. | [2] | 100 |
chromestatus | Chrome Platform Status | [3] | 100 |
Dev.Opera | Web features and implementations | [4] | 73 |
Bet Calculator | Online bet calculator | [5] | 91 |
emojoy | [6] | 82 | |
Expense Manager | Example expense manager | [7] | |
Firefox Platform Status | Roadmap for web platform features | [8] | |
Flipkart Lite | Online shopping | [9] | 55 |
GitHub Explorer | [10] | ||
Google I/O | [11] | 82 | |
Guitar Tuner | Tune a guitar | [12] | 82 |
Kite OnAir network | Kite Network | [13] | |
koolsol | solitaire card game | [14] | 100 |
Memory Game PWA | [15] | 91 | |
Notepad | Offline Notes | [16] | |
Paytm Lite | [17] | 91 | |
Pokedex | [18] | 91 | |
Polymon by Polymer | [19] | ||
Progressive Beer | [20] | 82 | |
QR Code Scanner | Offline QR code scanner | [21] | 100 |
React HN | [22] | ||
Remember | GPS logging | [23] | 73 |
Resume Nation | [24] | 91 | |
SVGOMG | SVG editor | [25] | 82 |
Smaller Pictures | [26] | ||
Soundslice | [27] | 64 | |
SplittyPie | [28] | ||
sv-ginger | WebGL Morph Demo | [29] | 91 |
SuperPWA | [30] | 100 | |
Taskade | [31] | ||
TeamGrid | [32] | ||
[33] | 82 | ||
voice-memos | [34] | ||
Washington Post | [35] | 55 | |
Wave-PD1 | Synthesizer with Web Audio API | [36] | 73 |
Web Bluetooth (Intel® Edison demo) | [37] | 100 | |
Web NFC enabled shopping cart | [38] | 100 | |
Wiki Offline | [39] | 73 | |
X Sound | [40] | 45 |
The following apps are or were claimed to be PWAs but fail to register an obligatory service worker:
Name | Link | Audit score |
---|---|---|
abc.xyz | [41] | 55 |
AMP project | [42] | 64 |
DevSpace | [43] | 55 |
Housing | [44] | 64 |
Medium | [45] | 55 |
Topple Trump! | [46] | 45 |