| This is different from how I understood the term... here's something closer to what formed my understanding. https://developers.google.com/web/fundamentals/codelabs/your... "Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet." My impression was that a progressive web app was built with the simplest technology and UI at first (simple HTML and CSS), and enhanced progressively for different environments (javascript for browsers, various mobile environments) I like this approach a lot because it preserved the ability to do something simple when that was all that was needed, but with the option of adding more complexity in exchanged for a more sophisticated UI later, as needed. This approach, I think, also gained popularity as a counter point to the pure SPA, single page app, which required using a more complicated and powerful front end framework. I noticed some people felt that a progressive web app was equivalent to elegant degradation to HTML for javascript heavy apps. To be clear, this is just how I thought of things (by no means is this an industry definition), but I saw that as slightly inaccurate. A pure SPA from a dev point of view can degrade to HTML without error, but it wouldn't have been built iteratively from simplest HTML and enhanced later. Likewise, a developer could add javascript to a simple HTML layout in a way that no longer degrades gracefully. Personally, I think that progressive enhancement is the right way to go, and will continue to be so, for a huge number of apps for a long time. I see this as similar to the NoSql cycle - many of the technologies that emerged are extremely good and critical to many types of databases, but SQL databases actually do meet the business needs (and scalability) for a huge number of projects. Similarly, there really are apps that should be written as SPAs with powerful front end JS frameworks, but this is currently very over-applied, resulting in high complexity costs that had either no benefit or not nearly enough benefit to justify the increase in development and maintenance costs. |
In the specific context of PWA, I've seen progressive enhancement is most often specific to how the app-like enhancements are applied (ie, use platform notifications if they are available, fallback to something like a JS toast library, if not), not necessarily to, say, the relationship of the HTML and JS. Many PWAs in the wild are still SPAs (and still going to be SPAs), and arguably a SPA is going to provide the most app-like feel for a PWA on a user's device, rather than something "pure" and HTML page driven.