Progressive Web Applications

What are Progressive Web Applications?

As per Google,

“Progressive web applications use modern capabilities to deliver app-like experience”

Progressive web apps bridge the gap between native and web-based applications. They fill this gap by using new Web APIs as envisioned in the Extensible Web Manifesto. These low-level APIs now help developers write their own libraries and frameworks which help progressive web apps interface with them directly.

Native vs Progressive Web Apps

Native Apps

The ones you download from the App Store onto your Android phone, have historically had capabilities (like work offline, cache content, update content in background, send push notifications etc) by default. Mobile web apps on the contrary have some restrictions to the phone’s resources since they run in the mobile browser. Hybrid apps, however, have access to resources similar to the native app, and they look like a native app too.

Progressive Web Apps

Progressive web apps have the capability to provide a seamless user interface and similar functionality as a native app. The biggest advantage is that PWAs load almost instantly because of their usage of the “Service Workers“. Unlike native apps, whose performance can vary over limited connectivity, PWAs work even on limited bandwidth. Offline web apps have tried to use solutions like AppCache, LocalStorage, IndexedDB etc but with the development of Service Workers, which intercept every network request, including allowing the ability to serve from a local cache, PWAs can have more detailed control than the in-built browser cache.

What is So Special About Progressive Web Apps?

PWAs can be quickly added to the home screen using install banners, making it easy to launch. Since PWAs by default use HTTPS (secure) connection, data transfer mechanisms are secure. Being responsive, they can work on all kinds of screen shapes including tablets, smartphones etc. Another unique thing being that PWAs work inside the browser, but can receive push notifications even when the browser is closed. This helps re-engagement with the client using web push notifications.

However, like other apps in the App store, the app still needs to be listed on Google Play or Apple App Store. Some other features supported are – clipboard access, launching in full screen, persistent auto-login using Credentials Manager API, receiving intents, file system access, reading user-selected files and hardware-accelerated 2D/3D graphics (using Canvas/WebGL).

How Does It Work?

PWAs are “app-like” web sites hosted on a web server. They include a “manifest file” (manifest.json file) containing metadata on icons, orientation etc. You can point your browser (currently Opera, Firefox, and Chrome for Android support PWAs) to the web site and “save it” on your home screen. Browsers not supporting PWAs simply show a web site! Simple! Manifest can define if the web-site or PWA needs to open without a browser UI or work offline using a Service Worker.

Pros for PWAs

  • No need to “download” and install an app!
  • No need to make multiple apps across multiple platforms (huge saving of time and effort)
  • Reduced development time
  • Quicker to market
  • Increased user engagement because of simplicity and ease of access
  • Can share apps using a LINK. No need for an app store
  • Search engines can “find” the app using the manifest
  • Works on low-quality networks!
  • Less intrusive than native apps! (Good for “privacy” concerned users)

Cons of PWAs

  • Does not provide complete access like native apps (like access to sensors, Bluetooth, NFC, and other hardware functions)
  • Competition from Hybrid model apps which give features similar to PWAs and native apps
  • Inexperience architecting PWAs. Few players have the execution and delivery capability
  • Limited Open Source frameworks supporting PWAs, makes it more challenging
  • Offline mode makes it difficult to capture analytics
  • Difficult maintaining updates
  • All browsers do not support it
  • Some native device functionalities not supported
  • iOS which is approx 50% of the US market still does not support the entire PWA feature set. iOS is still to support Service Workers.
  • Native features not supported – telephony, flashlight, atmospheric pressure, alarms, contacts, calendar, browser bookmarks, logs, system settings, registering app to be able to handle custom URLs, protocol, or file types.
  • Unlike a google play or app store native app which undergoes an audit/inspection, PWAs may not arouse a similar confidence in terms of legitimacy of the app

Progressive vs Native Apps

Progressive web apps do not need to be “downloaded”. For Android users, its instant accessibility unlike native apps. Native apps lose customers because of the “download, click install” and then “open app” work sequence. PWAs are more “discoverable” by search engines too. As of now,

Progressive vs Instant Apps

Like progressive apps, instant apps provide the same set of features – instant click and use the app working paradigm. Both are supported by Google, but unlike progressive app, instant apps don’t run inside browsers. It is based completely on the Google Android platform. However, you can use the app without downloading it. Given the similarity of behavior, the question which most tech heads tend to ask themselves are

  • What is it that an Instant App provides us, which a PWA does not?
  • Does an instant app run on Android and iOS? Does a PWA?
  • What if you go mobile web?

Should Your Business Make a Switch? What Are the Benefits?

Alibaba, Flipkart, and Twitter are some major players who have already incorporated the progressive web app paradigm. Some of the features which are offered on PWAs are geolocation data, battery status, screen orientation, compass and gyroscope, vibration, camera, and microphone using MediaStream Image Capture APIs. For most applications, these are a rich set of native features available. Some browsers (in future) are developing support for NFC, accelerometer, magnetometer, light sensor, proximity sensor, and Web Bluetooth. In short, we should be there soon!

Choosing a PWA-first strategy is more rewarding, unless you have the skills, budget, and intent of building native apps. Then you have to make native apps for iOS, Android, and then making a browser-based web app and then support all three interfaces. Challenge is keeping them in sync at all times during the release cycle. Existing app development companies may make the switch but a huge majority of current traffic comes from native apps as of 2016. There is no urgency for these companies to move to PWA paradigm.

Companies have adapted a cross-platform development methodology. For newer products, developing a PWA is a no-brainer! Some facts to remember – Android users form the majority! If you need a desktop (browser) based app too, then building a PWA makes more sense. Even iOS users saw 82% increase in conversions when AliExpress progressive web app. Building a native iOS app separately along with a PWA can also work. Making a native Android app may not have value if you do not need native features not supported by PWAs already.

From a Digital Marketing perspective, building a PWA makes more sense looking at the discoverability aspect from search engine perspective and the reach of mobile browsers per se. The ability to share apps as links makes it more “shareable” and makes it a more marketable proposition.