Progressive Web Applications

What are Progressive Web Applications and how do they compare to Instant Apps or Native apps? What are the challenges, pros and cons of using PWAs in your tech stack? We share some key points for decision making.

Progressive Web Applications
Photo by Taras Shypka / Unsplash

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 phones’ 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 have the capability to provide 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 webapps have tried to use solutions like AppCache, LocalStorage, IndexedDB etc but with the development of ServiceWorkers, 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 homescreen. 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 reach to market
  • Quick to download and execute
  • Conserves space and resources
  • Safe – always uses HTTPS (secure)
  • Uniform customer experience across devices
  • Seamless app-cross functionality – sharing information between apps and switching between them
  • Simple to update. In fact, no “need” to update. Happens seamlessly behind the scenes.
  • 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 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

PWAs 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 dont 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 behaviour, 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 geolocational data, battery status, screen orientation, compass and gyroscope, vibration, camera and microphone using Media Stream Image Capture APIs. For most applications, these is 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 interface. Challenge is keeping them in synch 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 Alibaba switched to 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 Digital Marketing perspective, building a PWA makes more sense looking at the discover-ability 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.