A real-world case for PWA (Progressive Web Apps)

This is a 4 min read

After Google, I/O 2018 a friend of mine asked me about what are progress web apps (PWA) and what’s the case for them. Well, there are a ton of resources on the web that you can get your hands-on. I am not going into the technicalities. But I just wanted to share my experiences with a couple of consumer-facing OVPs (Online Video Platforms) / Streaming services I use, to practically demonstrate the case for PWA. Ok, before starting here is the motivation for PWAs crisply summarised by this Google graphic. Simply put, PWAs are web apps with all the goodness of native mobile apps. Best of both worlds if you will.

 

So the key features of a PWA according to Google are:

  • Reliable: An Offline-first approach, meaning the app should provide interfaces even in poor or no internet connection. This doesn’t mean that the app should just be able to work when offline, but rather provides undisrupted service in all network conditions.
  • Fast: Instant-loading, and smooth experiences even on loading content.
  • Engaging: Should provide an immersive experience, equivalent to that of a native app. Like having Push notifications etc

Let’s just focus on “offline-first” feature of PWAs and see how crucial it can be for the OVPs to offer the best-in-class viewing experience.  Nothing is pegged to Moore’s law more than the Internet speed and cost, as a result, videos recently became the most consumed content on the internet. Like most of you, I am an avid consumer myself, I have Netflix, Hotstar and Amazon Prime subscriptions. If you ask why PWA, your OVP web app not being a PWA is a difference between a viewing experience that is great and the one that sucks.  To be fair most OVPs are doing a great job when it comes to playing recorded content, “offline-first” works like a charm. In case of intermittent connection, a spinner rolls and as soon as the connection is restored the video plays from where it left. But my qualms are with the how  “offline-first” works with Live content. 

My viewing setup is simple – I play YouTube and Hotstar in Chrome browser on a Mac machine hooked to a projector. Here is what I observed.

YouTube web: live content with intermittent n/w:

1

2

 

3

4

 

  • The viewing experience was intact if the connection problem persisted only for a few seconds
  • Spinner was on (I am assuming these were background-retries)
  • The player interface automatically connected and started playing LIVE content (not the stale content) when the network was back.
  • So no action was required from me.
  • If the connection problem persisted for more than a few seconds the viewing experience was interrupted and you see either messages in images 3 or 4.
  • The player interface is disconnected, no actionable touch points like “touch to retry” were on the interface, even if I wanted to retry manually.
  • So basically the message “please try again” meant hitting refresh.
  • Hitting refresh takes me out of full-screen mode.

Just to contrast: Tried the same with YouTube mobile app in iOS, irrespective of how the long the connection problem persisted the viewing experience was not interrupted. When the connection was back the LIVE video started playing.

Google can’t make YouTube web as a chrome installable PWA and offer a matching viewing experience? (Google is supposedly the pioneers and Chrome is purportedly one of the best PWA compatible web browsers out there.) In fact in the recent, I/O google raved how PWAs has transformed user-experience in different apps.  Not sure what’s stopping them?

 Hotstar web: live content with intermittent n/w:

 

 

  • The viewing experience is interrupted immediately after the connection dropped. (probably after a second)
  • No spinners, no automatic retries, just a non-actionable exception message on the player interface.
  • The message “please check your network and retry” meant hitting refresh.
  • If I hit refresh Hotstar MOST of the times runs an ad.
  • Sometimes (about 50-50 times) hitting refresh plays the stale content with the “GO LIVE” button on the bottom right corner enabled for me to hit?
  • The number of user interventions/clicks required to play the video again and Time-taken before the video plays again may be immaterial for recorded content but for LIVE content like  T20 cricket, it can be important. Say, If the connection dropped in the 19th over, I pretty much miss the thrill of a “finish” with this annoying user experience.

 Hotstar should plan to offer an installable PWA, say from chrome store ? and as a premium subscriber, I would like to request them. (I can always use  Chromecast or some other device to cast Live video from my mobile app to avoid these issues, but if that’s the answer, it’s indirectly saying if you need a better viewing experience on bigger screens you have to buy another streaming accessory. That doesn’t sound like a smart answer, does it?)

Takeaways

  • PWAs are equalisers between web and native worlds as they can help in offering matching experiences in all app flavours.
  • Live video streaming web apps are first-class citizens for a PWA.
  • I humbly think subscription-based($) consumer-facing OVPs should consider PWA for their web flavour.
  • On the hindsight it kind of makes me wonder even without making your web app a full-flavoured PWA we can still offer an offline-first solution, what can possibly be the technical challenge in that, this is a well-defined real-time streaming problem.

Thoughts?