Progressive web apps
There was a time when you needed to make a native app in order to take advantage of specific technologies. That time has passed.
Now you can do all of these things on the web:
push notifications,
offline storage,
camera access,
and more.
Take a look at the home screen on your phone. Looking at the apps you’ve downloaded from an app store, ask yourself how many of them could’ve been web apps.
Social media apps, airline apps, shopping apps …none of them are using technologies that aren’t widely available on the web.
“But”, you might be thinking, “it feels different having a nice icon on my homescreen that launches a standalone app compared to navigating to a bookmark in my web browser.”
I agree! And you can do that with a web app. All it takes the addition of one manifest file that lists which icons and colours to use.
If that file exists for a website, then once the user adds the website to their homescreen it will behave just like native app.
Try it for yourself. Go to instagram.com in your mobile browser and it to your homescreen (on the iPhone, you get to the “add to home screen” option from the sharing icon—scroll down the list of options to find it).
See how it’s now an icon on your home screen just like all your other apps? Tap that icon to see how it launches just like a native app with no browser chrome around it.
This doesn’t just work on mobile. Desktop browsers like Chrome, Edge, and Safari also allow you to install web apps straight from the browser and into your dock.
About half of the icons in my dock are actually web apps and I honestly can’t tell which is which. Mastodon, Instagram, Google Calendar, Google Docs …I’m sure most of those services are available as downloadable desktop apps, but why would I bother doing that when I get exactly the same experience by adding the sites to my dock?
From a business perspective, it makes so much sense to build a web app (or simply turn your existing website into a web app with the addition of a manifest file). No need for separate iOS or Android developer teams. No need to play the waiting game with updates to your app in the app store—on the web, updates are instant.
You can even use an impressive-sounding marketing term for this approach: progressive web apps:
A Progressive Web App (PWA) is a web app that uses progressive enhancement to provide users with a more reliable experience, uses new capabilities to provide a more integrated experience, and can be installed. And, because it’s a web app, it can reach anyone, anywhere, on any device, all with a single codebase. Once installed, a PWA looks like any other app, specifically:
It has an icon on the home screen, app launcher, launchpad, or start menu.
It appears when you search for apps on the device.
It opens in a standalone window, wholly separated from a browser’s user interface.
It has access to higher levels of integration with the OS, for example, URL handling or title bar customization.
It works offline.
But there’s still one thing that native apps do better than the web. If you want to be able to monitor and track users to an invasive degree, the web can’t compete with the capabilities of native apps. That’s why you’ll see so many websites on your mobile device that implore to install their app from the app store.
If that’s not a priority for you, then you can differentiate yourself from your competitors by offering your users a progressive web app. Instead of having links to Apple and Google’s app stores, you can link to a page on your own site with installation instructions.
I can guarantee you that users won’t be able to tell the difference between a native app they installed from an app store and a web app they’ve added to their home screen.
This was originally published on my own website, which is awesome.
Digital Transformation Leader, Innovator
1dHi Jeremy, great article. You are right, there was a time when PWAs were held back by missing features. I think the real gap now isn’t capability, it is UI, content and context. PWAs show the same UI whether you are in a browser or open them stand-alone. I have created something called Dual-UX, which addresses that issue. One PWA codebase, two intentional experiences. On the open web, you land on a discovery Website with SEO, shareable content, and marketing pages. Once installed, you get an App mode - the PWA opens and looks like a native app with app content and functionality. Check out the result for yourself, and I am looking forward to your feedback. https://dualux.progressivewebapp.ca NB. I am in the process of creating a free GNU developer license for open source use.
Consultant and Engineer for Front-end & UI
4dOne remaining big drawback of PWAs is that they are not listed in stores. So discovering them and learning about them via screenshots, description and user reviews isn't easily possible. I'd think that this is one of the reasons that folks still release native apps.
Fantastic post Jeremy Keith! For some reason, the article is opening in a LinkedIn “page wrapper” for me, rather than taking me to your website. No idea if that's intentional or another LinkedIn dark-pattern? If anyone else has the same, a link direct to the post on Jeremy's site is here: https://adactio.com/journal/22074
Full Stack Developer | Building Scalable Web Apps | Passionate About AI, ML & Real-Time Systems
5dThanks for sharing, Jeremy
"If you want to be able to monitor and track users to an invasive degree, the web can’t compete with the capabilities of native apps" - It's so sad that this is likely a main reason for coercing people to download a native app