Progressive Web Apps (PWA) is a rather new term in the web industry. You may know the term “Progressive”, which has been around for a while, but now we postfix it with “Web Apps”, and not “Enhancement”. Let’s face it: Apps are an easier sell.
When you hear “Progressive”, think Enhancement, not Apps.
To be honest, I like PWA much better than Responsive Web Design (RWD). From a mobile perspective, the industry made so many mistakes when moving to RWD. Mostly due to the misunderstanding that RWD is the ultimate plug-and-play-solution to mobile friendliness. Sure, the page does fit on the screen but usually at the cost of poor performance and a poor user experience. Performance and user experience have always been THE most important thing on mobile. The mobile(web) industry has been addressing these challenges since the dawn of mobile web. This materialized in WAP standards, m-dot sites, and more recently, AMP, which all address the same challenges.
The reason why I have so much faith in PWA is that the basic idea of PWA is to address these challenges. Progressively. Sure, the web app may still use principles from RWD, but features and functionality should be added on progressively according to the context (yes, I use this word). By context I mean the variables in the environment the PWA can run. Such variables may be browser, device, network conditions, battery level, device capabilities, user preferences etc.
Accounting for all this is not easy. We didn’t quite make it with RWD, so let’s try to do it right this time. A great example is this post by Max. Don’t forget Mobile First! Mobile has many faces. The default browser is on thing, but more than 1/3 of the traffic comes from in-app browsers (webviews). And then, like Max says, you should test that your PWA actually work as a web app on mobile…
Responsive or Progressive or not: Mobile First is still the key mindset.
Don’t buy more books on RWD, buy this. The web has always been mobile, and it always will.
The main reason why I am excited about PWA is the freedom of choice we get on how to implement the progressiveness. We can stick with media queries, flexible images and fluid grids, sure, but there si so much more we can do! Content negotiation is one thing. For example the emerging Client Hints standard. Content negotiation mechanisms provide us with lots of valuable contextual information on how to progressively enhance our app. Images, for example, are a low hanging fruit. This really illustrate the great potential of PWA vs. RWD. RWD was a client side thing only, while PWA may well be a server side thing and/or a client side thing. And this is a big deal! Generally speaking, I’d say that the more you can do server side, the better. It makes the life of the browser easier: better performance and less networking.
To summarize, my hopes for PWA is that we can start thinking of the web server as a powerful tool and not just storage space for our css and JavaScript. With PWA we should use the server to do content negotiation and have it make informed decisions. …and not to forget, test your PWA on mobile first.