What Is A Progressive Web App?

If you are interested in having a progressive web app developed by McKenna Consultants, please fill in the contact form at the bottom of this page and see our page on Web Development.

So What Is A Progressive Web App?

A progressive web app is a web site that runs in a web browser, but provides an experience to the visitor that is more like a familiar mobile app (like the ones that run on your iPhone, iPad or Android phone).

Why Would I Want A Progressive Web App?

If you want to deliver a service over the Internet to your customers or build an internal system for your colleagues, then a progressive web app could be for you. It could be that you want to build a portal for HR or it could be that you want to provide your customer business services to your customers online.

You could build a normal web site to deliver the service, but increasingly, people are becoming very used to the great experience that they get on apps on their mobile devices. The days of poorly constructed web sites with difficult user experiences are increasingly a thing of the past! Equally, standard web sites are nor great on mobile devices. The user interface of a standard web site does not scale well to smaller mobile devices. Internet connections on mobile devices can be erratic and slow on standard web sites too.

Progressive web apps seek to deal with these challenges by providing a responsive user experience where the app’s user interface scales elegantly and seamlessly to devices of all sizes. Progressive web apps also provide some offline functions (and other technical mechanisms) to deal with poor Internet connections and ensure that the user always has a good experience when using the app.

Progressive Web App Or Mobile App?

You might also be considering building your service as a mobile app for iOS and / or Android rather than as a progressive web app. You should consider a mobile app i you want to make full use of a device’s capability (e.g. video camera, scanning bar codes, accelerometer, fingerprint scanner, NFC, bluetooth etc). You should also consider a mobile app if you want to have users install your app in a familiar way via the Google Play Store / App Store. You can also easily sell your mobile app through an app store and revenue share with Apple or Google too.

However, you may want to create a progressive web app because you can’t or don’t want to sell your app on Apple or Google’s store. You may have an idea for an app that is not suited or permitted to the app store. You may be creating an app for internal use at your company. You may not want to share 30% of your revenue with Google and Apple!

Additionally, your progressive web app will work through a standard web browser on a Windows computer, Apple Mac, Linux computer, iPhone, iPad, Android phone or tablet or any other device running a modern web browser! This gives your progressive web app much better coverage in terms of the number of devices it can be accessed from. A progressive web app also ensures that you only have to maintain a single app rather than looking after two apps (for Android and iOS). Your users can also install your app on a computer and it will feel just like a native app!

You should also note that web stores are on the increase for progressive web apps such as Microsoft’s own store.

What Technical Stuff Do I Need To Know?

Progressive web apps are evolving on a daily basis, so this is the current state of play.

Generally, progressive web apps work on all (reasonably modern) browsers, with the more recent browsers having a progressively better experience for the users than older browsers. This means that users with the latest browsers will get the best experience! Similarly, the app should be responsive, which means that the user experience will fit on a device of any size (including devices without screens!). The user experience should also be a familiar, app-like experience. This means that things such as horizontal scrolling, tree views etc are probably not going to be common in a progressive web app.

Progressive web apps work on devices with poor / no Internet connections, although functionality will usually be significantly improved on devices with an Internet connection. For example, you could create an email program as a progressive web app, which may work reasonably well for reading email offline, but with no Internet connection it won’t send any email!

Progressive web apps are kept up to date by a piece of magic known as a “service worker”. This is a technical name for a piece of software that will run in the background (without any user intervention required) and keep your app up to date with the latest version. The user won’t need to manually think about downloading uploads or installing service packs or any other tedious administrative tasks. They will always have the latest version of your app without having to think about it.

You can provide your app in a web store, but you can also take advantage of some standard technologies and easily make your app discoverable by users via techniques such as W3C manifests and service worker registrations. As time goes on, more and more search engines capabilities for finding progressive web apps will evolve and become available. You should also be able to give user’s a simple URL (e.g. via email) so that they can find and install your app. Similar technology allows users to install your app in their web browser or as a native App in your operating system. This makes your app convenient to access from the user’s browser or their normal computer desktop. Methods of installation vary between browsers and operating systems with Chrome allowing users to install apps from any web site, but Microsoft Edge requiring users to install from Microsoft’s own App Store. Once installed, you can improve user engagement with your progressive web app by using modern built in browser features such as push notifications (just like the ones you get on your phone!).

Nick McKenna
Nick McKenna is a (polymath) computer programmer and scaled Agile consultant. Nick has been a professional programmer for over 20 years and an Agile guru for nearly as long! Nick's specialities include progressive web app development, mobile app development, the Internet Of Things, Azure cloud development, systems integration, Scaled Agile Framework, Scrum, Lean, LeSS, Scrum At Scale and much much more.

Posted in: