There’s been a lot of talk lately about Progressive Web Apps. For those readers who haven’t heard of them, progressive web apps aim to bridge the gap between the mobile web and native apps by providing things like the ability to install, run background processes (even when the app isn’t open) and send push notifications. This effort is being pushed by Google, and works on Android, but currently not backed by Apple - so no iOS support at the moment.
Some recent commentators think progressive web apps represent huge progress for the web , while others are less convinced. In this week's Slack chat, members of the Telerik Developer Relations team discuss their views regarding progressive web apps.
brian: Let's chat about whether we see progressive web apps as the future of the mobile web or another stalled effort.
TJ: I might have literally referred to progressive web apps as “the future of the web” before (see What Progressive Web Apps Mean for the Web), so I’ll have a hard time backing away from that claim :-)
brian: TJ, You and plenty of other folks.
jen: The big progressive web app success story currently being cited is FlipKart
Flipkart sees a 70% boost in conversions with progressive web apps - read more at https://t.co/aLfVx0lCJI
— Google Developers (@googledevs) March 29, 2016
burke: My big question would be, what is the end goal for Progressive Web Apps? Is it to simply bring some native features to web apps, or ultimately to supplant native apps entirely?
I worry that we keep trying to shoehorn the web into places it just doesn’t really fit. It’s like we can’t get enough square pegs into round holes. Then people get angry because things don’t work like they expect them to, and they feel lied to.
jen: What is a strong use case for developing a Progressive Web App vs. a plain ole-fashioned Mobile App?
brian: Well, the thought is that you aren’t stuck building for proprietary platforms (you build it once, it works anywhere...in theory) and it allows an easier conversion from web user to app user (which is a difficult nut to crack).
jen: Could it be that people feel that the downloadable mobile app doesn’t work as advertised, so they are reverting?
burke: I think we have plenty of stats that show that people don’t download apps. I know I don’t. I visit a lot of sites though.
TJ: I certainly understand the desire behind progressive web apps. And there are certainly tons of apps the world doesn’t need, that work perfectly fine on the web.
jen: It’s still surprising to me that Flipkart would have more success with a progressive web app rather than a nice e-commerce app available cross-platform. Granted, they are an Indian company so they are working with a particular demographic with particular needs.
burke: TJ Sure! But I don't get why the web all of a sudden needs a home screen icon or push notifications. I never did use the home screen icons before, so why the push?
brian: For: Findability. Re-engagement.
todd: Easy to use, single place to go to, instant updates, it’s a win for me!
Oh, and single codebase ;-)
TJ: Burke, the same reason native apps need those features really.
burke: Apps have different reasons for having icons since there isn't a web of apps you can browse to and instantly load - although that would be awesome. Some part of me wonders how much of this Progressive Web Apps thing is motivated by something ulterior. As long as apps are in stores, you are out of the reach of Google, and that is not necessarily good for their business model of ads.
jen: I believe strongly that Apple will never ever ever buy into this.
brian: Well, Apple's resistance is also, largely, based on money. The app store is a big revenue generator nowadays - this could challenge that. Plus, they lose a degree of control...maybe that’s a bigger issue for Apple than money - who knows? It’s Apple after all.
jen: Right, why would Apple buy into something that bypasses their own monetization model, e.g. the app store? Also this won't work for the indie developer who relies on IAP (in-app purchases).
brian: All that being said though, I think the idea here is that they can get buy in because it uses progressive enhancement. You can support Android without breaking your site for iOS.
...and I know I am the only Android user here, but there’s actually a lot of us out there ;-)
burke: Everyone’s motivations are based on what’s best for their business, and that’s totally legit. That’s why we all come to work every day.
todd: Doesn't Google have a model similar to the App Store? What would be the motivator there?
jen: It seems like everything’s free on the Google Play store...and Indies have a horrible time there because of seemingly rampant piracy. Plus, Google play doesn’t even charge a yearly fee unlike Apple.
brian: Todd, Google’s revenue is almost entirely driven by the web. I’m sure their app store makes money, just not enough to matter.
todd: I see, I’ve always been iOS, thought I’d ask the question :-)
burke: The appeal of the web is just so strong. Being able to develop for all platforms with one app is just something too good for any developer to pass up at least considering.
jen: So is Google’s motivation to oblige people to make more web things so as to track people? and sell ads?
burke: At the end of the day, yes, it’s ads.
jen: TJ, you built a progressive web app, what was your experience in a nutshell?
TJ: Well, that gets into my biggest problem with progressive web apps — the title. Google loves putting grandiose titles over a few features of the web, and I’m not exactly sure why. For example, why does it have to be “web components” and not custom elements, templates, shadow DOM, and HTML imports? Why “progressive web apps” and not just service workers and installable web apps? We’re really just talking about two major features here.
You use HTTPS. You add a service worker. You add a manifest file.
burke: For now... Don’t we expect more features under the banner of progressive web apps?
TJ: Those fall under the umbrella of service workers (push notifications, offline, etc), at least to my knowledge. And WebKit does have service workers listed as “under consideration”.
But to Brian’s earlier point, the biggest appealing thing here is these features were really built with progressive enhancement in mind. Unlike, some other web features (cough cough web components). So you really are enhancing your Android experience without harming your iOS experience.
brian: And they take advantage of the web’s most powerful tool - the link. I can just link someone to the site rather than have to direct them to a store for a download.
jen: It’s really interesting that in the US we are so obsessed with working offline. This is such a big selling point, but in many countries like Korea with a thriving web/app community, this is a moot point. But ‘offline usage’ is a huge thing pushing progressive web apps, at least here.
brian: I’d argue that it is potentially even more of a selling point overseas where data is often charged by usage. Korea may be an exception (I have no idea).
TJ: I’m going to go back to agreeing with Burke and quote Luke Wroblewski:
"The Web is for audience reach and native apps are for rich experiences. Both are strategic. Both are valuable. So when it comes to mobile, it's not Web vs. Native. It's both." - Mobile Web vs. Native Apps or Why You Want Both
Part of me thinks that these web APIs are somewhat reactionary to mobile’s success and trying to replicate that model too much. I think we’re forgetting that one of the reason the app store model works is because it’s a curated list based on reviews, which the web doesn’t have. Good luck finding a good progressive web app via a Google search.
brian: This is definitely a problem. Micheal Mahemoff mentioned this as a challenge in his post on the topic.
But, keeping in mind that Google has and has recently used its power in the search category to try to change the behavior of sites.
TJ: (was just typing that) :-) For example with interstitials
brian: And, it worked, for the most part. Those app interstitials are much fewer and further between.
burke: Ads are annoying, no doubt. And BTW, every time I go to Gmail on the mobile web, to this day, it asks me to install the app using an interstitial. Somewhat ironic.
jen: "Good luck finding a good progressive web app via a Google search.” - Are progressive web apps not searchable? I’d think they have the SEO of a regular web site?
TJ: They are, however, if you build a progressive web app, today you’re going to be stuck behind decades worth of ad-ridden crapware that’s risen to the top of the SEO pile. Progressive web apps are inherently non-SEO friendly too.
jen: Wow, that is really unfortunate. I’d think that would need to be fixed if this model is to succeed, as it’s trying to solve the problem of discoverability.
burke: So now the web becomes like the android app store?
jen: Apple = selling devices / Google = selling ads. Different type of company.
brian: Jen, actually, I think Apple is more about selling their ecosystem lately - the devices being a large part of that. But so is iTunes and other services.
jen: An ecosystem that requires a pretty rose-gold device to play on...
brian: Yes, it’s your membership card!
TJ: A gorgeous rose-gold device :-)
brian: However, I am going to argue that with the whole searchability we are making a mountain our of a molehill. We find the app because someone or somewhere sent us the link. The only reason we need App Stores with “searchability” (is that a word?) is because there is no easy way to link you to an app that works everywhere. In this case, the link works for you on desktop, mobile, wherever.
There’s no need for a PWA “app store” experience.
jen: That really depends on the type of mobile app. Mobile games need very strong searchability; utility apps usually have a business backing them so are more easily found.
brian: Well, I don’t see the app stores going away...that being said, the App Store model is terrible for game developers, so it’s ripe for disruption. (And, as a gamer, it’s terrible for users too...don’t get me started on in app purchases in games)
jen: But they do have more resources in general
TJ: In the end, companies/services are going to have a hard time being found either way—Google searches, app stores, etc.
TJ: I think one part of this conversation we’re missing is that there’s still a ton native can do that the web can’t, and progressive web apps only fill a small part of that gap. Brian, to build on your game example, those in-app purchase games, as horrible as they are, pay the bills for a lot of companies.
Taking money is so much easier in native apps.
jen: ^ what TJ said
brian: Yes, definitely. The monetization problem is something the web has not yet solved.
TJ: That being said, I do think progressive web apps address some of the common limitations of the web, so I think there’s a new class of apps that are “good enough” as web apps. I think eventually if we continue down this route there’s going to be an odd conflict between native and web apps. Native is always going to be able to do things the web can’t; therefore, native isn’t going anywhere. If I have a compelling reason to build a native app, as many companies do, then it would be somewhat confusing for me to build an installable web app. I think the best fit for installable web apps is for those companies and services that have no need to have a native app, and we could spend another hour debating where that line is. :-)
brian: I would agree with that. I don’t think this needs to be either/or - it just offers another option (one that only works on Android at the moment, but still).
jen: It’s an interesting concept, that the enterprise might jump on this bandwagon for internal installable apps faster than the ‘regular folks’. May be true!
TJ: So, to wrap this up, let’s make some predictions: 3 years from now, where are we with the concept of progressive web apps?
jen: I think they will be adopted by those organizations that need a strong Android experience, and will be especially attractive for internal usage, but will not replace the downloadable app store experience, especially for Apple users in the near future.
brian: I like the idea of progressive web apps (in case it wasn’t obvious). I generally favor the web over apps - just as a personal choice, not out of some moral objection or anything. That being said, not to sound like a downer, but the state of the web is a mess and I don’t see Apple and Google’s competing visions coalescing neatly anytime soon. So, I think it’ll be like web components...in 3 years, we won’t be significantly further along than we are today.
TJ: I think service workers and installable web apps are both beneficial features for the web, but I don’t necessarily think they’re revolutionary. I do think Apple will eventually get around to implementing service workers, so I think we’ll start to think of offline as a thing that web apps can inherently do. I think the best path for Google if they want this to succeed is to leverage their search engine monopoly. If “web apps” start showing at the top of Google searches I think a bunch of companies will find the resources to write to these APIs, and it might even force Apple’s hand.
brian: I agree, that’s the only way this changes.
jen: It all boils down to searchability!
todd: Service workers are incredible, though we are having this debate about ads amongst other things, but the amount of free apps I download with ad banners, I’m used to it. In my opinion, the web will always be lagging behind native experience, but to get the web to “do” native things is a huge feat considering the time and acceleration the web has had in recent years - I’m not a huge “I won’t use this because of X business model” type of person - if it’s awesome, has powerful features and helps be deliver better end products, so be it!
burke: Two final thoughts here: I do think that service workers are the future of the web - no doubt. But these amazing features seem to sometimes get prioritized over some of the more fundamental issues that still plague the mobile web. Chris Thoburn had this terrific article where he describes just how frustrating Chrome on Android is for developers and how we've begun to prioritize features over performance. I worry that will only foster disillusionment in the long run. However, we can't stand still! Onward to a better web for everyone. If that means Progressive Web Apps, let's do it. Um, so I guess that was only one final thought.
Header image courtesy of Addy Osmani
Subscribe to be the first to get our expert-written articles and tutorials for developers!