I’ve been familiar with the “progressive web app” (PWA) concept for a while now. But there’s always been an itch in the back of my mind about it.
I’ve been to talks at conferences and meetups about the subject. I’ve read the main docs and top-level “what is a PWA” articles. I’ve read Alex Russell’s post, about the discussion between himself and Frances Berriman that originated the term.
And still, I have found it difficult to conclusively, accurately, and concisely define it (based on concrete citation, that is). I see similar confusion across the internet.
This morning I went to write an article outlining a few tips about implementing a progressive web app (PWA). But when I went to introduce the topic, I again encountered what was the hardest part about the whole topic in the first place: I have a really hard time describing what a progressive web app actually is.
He captured a lot of my “is this just me?” feels too:
He captured a lot of my “is this just me?” feels too:
Perhaps PWA is meant to be inclusive of a lot of technical approaches, so they need to be vague. This might be okay if it were just the source docs that were this way, but I feel like alternative introductions and how-tos scattered across the web have latched on to this vague language and the confusion has proliferated.\
It’s socially hard to say “hold on, I don’t understand any of that”, because you don’t know if everybody else just gets it and you’re the stupid one. In the PWA space, I really do feel like there’s a lot of people nodding along assuming everyone else understands what a PWA is and they must be missing something. You know, imposter syndrome.
What had me particularly confused, personally, is that parts of the internet have seemingly coalesced around three baseline requirements for what comprises a progressive web app — and none of them cite where it came from. It’s impressive to me to achieve that level of unofficial, broad accord, given zero citation — it just echoes across the internet.
Because this time I couldn’t bring myself to divert from this mental rabbit hole, I started looking into:
1. The origin of the listing of attributes that constitute a PWA that are generally referenced in docs and posts,
2. The origin of the three baseline requirements for a PWA that are generally referenced in docs and posts, and,
3. The variation in definitions among the top-level search results for “progressive web app”
At the end, I’ll post my conclusion of a definition for PWA (for whatever that’s worth).
1. Google Developers: Progressive Web Apps
Progressive Web Apps are user experiences that have the reach of the web, and are:
Reliable — Load instantly and never show the downasaur, even in uncertain network conditions.
Fast — Respond quickly to user interactions with silky smooth animations and no janky scrolling.
Engaging — Feel like a natural app on the device, with an immersive user experience.
2. Google Developers: Your First Progressive Web App
Progressive Web Apps are experiences that combine the best of the web and the best of apps. They are useful to users from the very first visit in a browser tab, no install required. As the user progressively builds a relationship with the app over time, it becomes more and more powerful. It loads quickly, even on flaky networks, sends relevant push notifications, has an icon on the home screen, and loads as a top-level, full screen experience.
This resource also lists the canonical list of attributes, but adds a tenth:
Progressive — Works for every user, regardless of browser choice because it’s built with progressive enhancement as a core tenet.
3. Wikipedia: Progressive Web Apps
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.
4. MDN: Progressive Web Apps
Progressive web apps use modern web APIs along with traditional progressive enhancement strategy to create cross-platform web applications. These apps work everywhere and provide several features that give them the same user experience advantages as native apps.
PWAs should be discoverable, installable, linkable, network independent, progressive, re-engageable, responsive, and safe.
5. Smashing Magazine: A Beginner’s Guide To Progressive Web Apps
A progressive web application takes advantage of the latest technologies to combine the best of web and mobile apps. Think of it as a website built using web technologies but that acts and feels like an app. Recent advancements in the browser and in the availability of service workers and in the Cache and Push APIs have enabled web developers to allow users to install web apps to their home screen, receive push notifications and even work offline.
Comments
Post a Comment