Maximiliano Firtman's articles, notes and learning experiences for devs-firt.dev

Is there a cold war between Android and Chrome because of PWAs?

Maximiliano Firtman avatarby Maximiliano Firtman Twitter @firt About Newsletter

About 10 min reading time

–What? How can you say that? Android has the best PWA experience available today, Max!

–Android? or Chrome on Android? And… is it the best possible experience?

Cold War

Google is like a star with different planets orbiting it, such as the Chrome planet and the Android planet. Not every planet follows the same orbit and many times there are collisions and eclipses we don’t see all the time.

It’s a typical conversation in the web and PWA community that Apple has the worst PWA experience out there (more on PWA on iOS), and that’s because Apple doesn’t want the Web Platform to eat the App Store business. But how’s Google in that area? Is it better?

Are the Android and Play Store teams open to PWAs on the platform? It doesn’t seem like that.

I think there is a silent war between Android and Chrome, and the first one seems to be ahead. PWAs on Android could have a much better experience, and it could have more supporters if the Android team could push this a little further, letting some game changer abilities get into the platform.

This is not just my opinion; it’s the opinion of every company I trained and spoke to regarding PWAs. They always say the same thing when I explain the current status and restrictions.

The main things I see are:

  • Lack of a proper installation experience on Chrome with a clear and obvious UI for the users (Add to Homescreen vs. Install)
  • Lack of Play Store support for PWAs
  • Lack of marketing and developer information from the platforms

Chrome wants PWAs, but it seems it’s fighting against a wall when trying to integrate them with the Android ecosystem. New APIs and features are great! but if we can’t improve the distribution channel, it’s not a so worthwhile effort.

The Alphabet Universe #

Let me start making a clear separation between Google (or Alphabet, Inc.), Chrome and Android. Most people will think Chrome and Android should have the same goals, but they might not. For example, they usually have completely separated areas for the press, DevRels, documentation, video channels, marketing, and goals they need to achieve. Most of the time I saw them silently “fighting” in Google IO for attention. I remember a few years ago, how everyone at the Chrome team was crazy -in private and public on Twitter- about all the craziness and space that Android Instant Apps took on IO’s keynote and that was harming the image of PWA as a platform.

Android people don’t participate in Chrome DevSummit. Chrome people don’t participate in Android DevSummit. Even if both products need each other and there are things like PWAs that should touch both. They usually don’t appear together for an announcement. Chrome OS doesn’t help, and it seems to be in the middle, being pulled from both sides (hardly from Android).

PWA appears as something pushes from the Chrome team without any support from the Android team. In fact, it seems to be the other way around.

Installing PWAs from the Browser #

Current PWA architecture is based on Apple’s iOS Home Screen web apps, where you could use the option “Add to Home Screen” and insert an icon in the iPhone or iPad home screen. Chrome followed the terminology “Add to home screen” creating shortcuts in the Android’s home screen.

A year ago, Android 8 was released at it changed how it was managing icons in the home screen, creating a bad experience for every PWA for every browser. Didn’t the Android team talk to the Chrome team at least to try to keep a good experience? I wrote this article at the time, and after a few months, Chrome shipped WebAPK, a.k.a. “Improved Add to Home screen”, a solution to that issue and the next step for PWAs on Android.

UX Inconsistency #

With WebAPK enabled when you install a PWA from Chrome on Android, a server compiles an APK (a native Android packager), the Play Store signs it and Chrome pushes it into your Android phone. Your phone installs the APK because it was signed by the Store without any user intervention and without disabling any security rule.

With WebAPK your PWAs appears in the system as any other app in the system. Why is Google still using “Add to Home Screen” for the Info bar and the menu option if that’s not what’s happening? We are “installing” an app.

Add or Install?

This is the current experience: You go to a PWA on Chrome, you click on “Install” on a custom UI, then you “Add” it. The app is being “added,” and then it appears in all your apps as “installed” where you can “uninstall” it. BTW, it was “installed from the Google Play Store” which is not only false but not possible at all.

Add, Add to Home Screen or Install? #

For some years, Google tried with different wording, such as just “Add” (add what to where?), or “Add to Homescreen” (the current version). The same “Add to Homescreen” that you see when you are in a non-PWA website. Why Chrome on Android is not using “Install”?

PWAs with Chrome is now compatible on Windows, Linux, Chromebooks and coming to Mac. Do you know the wording there? Guess what? It’s “Install.”

On Windows, Chrome OS, Linux, and macOS (flag), Chrome uses the verb “Install” for PWAs

On Windows, Chrome OS, Linux, and macOS (flag), Chrome uses the verb “Install” for PWAs

If you use Chrome on Windows, you “install” a PWA. If you use Chrome on Android, you “add to the homescreen” a PWA. Really? Where is the consistency there?

A Chrome Dev article mentioning that “Add to Homescreen” is how we install apps on “mobile.” Is it?

A Chrome Dev article mentioning that “Add to Homescreen” is how we install apps on “mobile.” Is it?

If you dig a little deeper, you can see that the Chrome team is suggesting us in different articles and videos to create our custom Installation UI, which is a good idea that not a lot of PWAs are using. The suggestions involved the usage of “Install.” So should I create a button with the “Install” word than when clicked will trigger an “Add” dialog? Where is the consistency there?

Add? Add to where?

Uber is suggesting users to “add” it to the home screen to match the Chrome on Android wording but, how many users will understand that it’s not just an addition to the home screen? Also, now on desktop, should Uber create a user-agent sniffing to change the wording to “Install”? 🤨

Even from a spec point of view, we are talking about installation, the new window event available is called “appinstalled,” and the installation dialog is known as “beforeinstallprompt.”

Android Users are used to the word “Install” from the Play Store when they are installing APKs

Android Users are used to the word “Install” from the Play Store when they are installing APKs; if a PWA passing the basic criteria is an actual APK, why not using “Install”

“Add” to the home screen maybe was fine when it was just a shortcut and only an icon in the home screen was added. But today, an APK is installed that appears not just in the home screen, so why is Chrome keeping that wording that is also not so well known among users?

So, Chrome is using or suggesting using “Install” everywhere but not in the Android edition. Isn’t it because the Android team somehow is fighting internally to not allow that word within Chrome? It’s just speculation, but hey… give me another good reason.

It feels like the Chrome team is using the “Install” word everywhere they could and they are encouraging us to use it in our own UI, but they can’t change the Android UI. I don’t buy the idea that mobile users are used to “Add to Homescreen”, because if they are used to that -which I don’t think it’s true-, it’s for website shortcuts, not apps.

WebAPK only for Google #

WebAPK is only available when using Chrome on Android, giving Google’s browser an advantage against competition, such as Firefox, Samsung Internet, Microsoft Edge or UC on the same operating system. These other browsers had only the shortcut version of PWAs, with a browser’s badge and without all the first-class apps abilities, such as being located in the app’s launcher. While the Chrome team mentions WebAPK might be open to other browsers before, more than a year has happened without any news about it.

I’m not sure if the European Union has seen this yet 🙄

I know it might not be simple to do it, but hey, it’s something that must be done if the Store/Android teams want openness in the platform.

The Web can not play in the store #

If you think the “Add” vs. “Install” fight is not so important, wait a minute because here comes the worst part. Many PWAs want to be in the store; it’s a different distribution channel.

I remember following the Chrome Dev Summit 2017 keynote where the team mentioned the Windows Store PWA proposal and everyone was excited waiting for the next slide. Everyone was expecting: “Now you can also publish PWAs in the Play Store,” but that slide never arrived.

Play Store is not offering any solution to publish a PWA in the Store 😔

And that distribution channel is a game changer.

Why the store? #

Because many small companies want to be there; no matter if it’s true or not, they think users will find for their app there. Also, many companies with dead native apps without updates want to replace those apps with a PWA. But they still need to maintain two, and forcing PWA developers to use a Web View doesn’t have any advantage. Quite the contrary.

Not just small companies #

Twitter and Instagram have PWAs in the Store today, the “Lite” editions. But these apps are built with Android Studio with a lot of native Java/Kotlin code for Push management and other OS integration. Also, they must use the Web View and not the full Chrome engine, not sharing storages, caches, files, or API availability with the browser’s counterpart. It’s a lot of work if you are not an Android developer.

David, from the Starbucks PWA team, is also supporting the idea of improving the distribution model

And it’s not just companies #

Google has PWAs in the Store, such as Google Maps Go, and it’s even preinstalling the launchers in every Android Go Edition out there.

Google Maps Go on the PlayStore required Chrome

Google Maps Go on the PlayStore required Chrome, so it’s actually using a WebAPK or a TWA solution in the store that is not available for everyone

So everyone wants PWA in the store but not the Play Store.

If you install a PWA on Android and go to Settings, that app appears to the user as “installed from the Play Store”

If you install a PWA on Android and go to Settings, that app appears to the user as “installed from the Play Store”, which is not true, but it’s because of the WebAPK signature. If the OS can trust the signature, why can’t I actually publish it in the store?

Since WebAPK was enabled in Chrome, there is already an Android package signed by the Play Store ready to be listed in the store. Why this is not a thing after more than 14 months since WebAPK was enabled? Why as a publisher, I don’t have a “publish URL” button for the App Store? What’s the problem?

Amazon AppStore, before PWAs, allowed us to publish “Mobile Web” apps;
Amazon AppStore, before PWAs, allowed us to publish “Mobile Web” apps; something similar happened on the Mozilla AppStore for the Firefox OS (currently dead) store. We need something similar here. Google, if you are not like Apple AppStore, prove that 😎

The Trusted Web Activities promise #

UPDATE Feb-2019: Chrome finally released TWAs in Chrome 72. While they don’t mention that the use case is for PWAs in the Store (did you say cold war?), that’s what the sample is all about and mostly the most important use case for the API. Check my article on the topic Google Play Store now open to Progressive Web Apps.

In Chrome Dev Summit 2017 we didn’t have any news to publish in the store but, we had an announcement for TWAs, Trusted Web Activities. A way for native Android apps to open a Chrome Activity (screen) on your validated URL in standalone mode, a.k.a. “you will be able to create an APK that will act as a shortcut for your PWA.”

Great! We finally will have support for some solution for the store.

Chrome released an article about it with technical details and an estimated roadmap for being in stable: Chrome 69, early Q4 2018. As you know, we are currently in Chrome 71 stable 🤨

TWA Promise

The last official word about TWAs is that it should be available with Chrome 69, but we are in 71 and no updates about it. (Don’t click on the video, it’s a screenshot! hehe, click here)

So, Chrome Developer Summit 2018 happened a few weeks ago, and I was expecting an update on TWAs. I’ve got nothing. No mention at all. There are many new cool ideas and APIs for the future on PWAs on Chrome, but nothing on TWA. Not just nothing, also a confirmation that nothing has to be said about it by Paul Kinlan:

Paul Kinlan confirming no news

I don’t want to be correct!

I don’t know if it’s delayed of it’s going to cancel. I hope it’s just a delay, but it’s weird to see no updates in any public place where it’s being mentioned.

The last update in Chrome Status for the feature is from last July, https://www.chromestatus.com/feature/4857483210260480

But anyway, if we got TWAs up and running later next year, I think it’s still a workaround that Chrome managed to do to bypass Play Store’s denial for a simple way to just publish a URL.

I’ve never seen any Android employee mentioning PWAs. No documentation, no technical information for developers trying to get into app development for the first time. In fact, there is no information about WebAPK from a security and user point of view. No place where you can see an answer to understand why a PWA on Android says it was installed from the Play Store in Settings when it can be a phishing app.

The only reference inside developer.android.com is the “Web-based content” guide that specifies that “If you want to send users to a mobile site, build a progressive web app (PWA).” [sic] A phrase that doesn’t even make any sense.

This is not the first time I mention this. In the latest Google IO editions, I’ve been highlighting how PWAs and the Web were having fewer minutes every year and how that was harming how the press and big companies feel about the platform.

Also, Google -the search engine- is currently badging AMP sites, android apps, and Instant Apps, but there are no public plans after three years of promoting and even spending money advocating for PWAs to promote PWAs somehow differently in the Search Engine.

I’ve also seen a change in how the Chrome team devrel talks about PWAs the last few months. I see more of “the web platform”, “web”, and less of the “app” part. Ideas such as “Installing the icon is just a helper for the user, it’s not so important anyway” are now more common in the conversation.

We know PWAs is just the web, but the app part is an important sales point of the platform. Is this change because Chrome is losing the fight to offer a good app-based platform on Android? I’m not sure, and I’ll be glad to be proven wrong.

Also, the problem is even on Chrome OS and Chromebooks. When you look at all the docs and marketing information, everything is about running Android apps, nothing about PWAs (or the Web Platform if you want), even if it was the first desktop platform supporting PWAs. So Chrome can’t also make PWAs important in the Chrome OS materials.

The next step #

If there is a cold war between Chrome and Android we, the community, must speak louder. The Chrome team is pushing the Web Platform and PWAs a lot, and they are doing a good job. But it’s not enough; on Android, it’s still something that feels risky, something that works today but without a clear and public support from the Android team we are not sure everything will work as expected on the next version of the OS.

The change from Android 7 to Android 8 was an example. Didn’t the teams speak to each other if there is a problem in the PWA platform? Is the Android team interested in keeping a good UX for PWAs?

If you think Apple doesn’t want a good PWA experience on iOS, remember that Google with the Android and Play Store teams might want the same thing. A future Fucshia OS possibly merging Android and Chrome OS makes the future even more unclear about the support of the Web as an app platform.

I’m writing with the hope that we can still push for these changes. I know Chrome ❤️ Web, but if Google ❤️ Web, we need to see it action, not just in slides on a screen.

Hope is the last thing to lose 😀

Half typewriter, half computer

© Maximiliano Firtman (@firt)

firt.dev contains a collection of writings, thoughts, notes and learning experiences for web and mobile app developers authored by Maximiliano Firtman.

Contact me: hi@firt.dev Personal Website Buy Me A Coffee