Thanks to improvements Google has launched over the years, Chrome OS is now capable of running four different kinds of apps — Chrome apps and extensions, Web apps (including PWAs), Android apps, and Linux apps — each of which is managed differently. This has made app management on Chrome OS into something of a mess, but Google is looking to unify the platform with a project called the “App Service.”
As it stands today, Chrome OS has four separate, detached app ecosystems, and it shows, both in user experience and in the code itself. For example, the context menu for a Chrome app presents the options “Pin to shelf,” “Uninstall,” and “App info,” and the same menu for a progressive web app shows “Open,” “Pin to shelf,” “Remove from Chrome,” and “App Info.”
Even just uninstalling each kind of app isn’t as consistent as you would expect. For example, if an Android app wouldn’t create an icon in Android’s drawer, it also won’t create one in Chrome OS. This means, to uninstall it, you need to access Android’s Settings app (from Chrome OS’s Settings app) to remove it that way.
These inconsistencies occur because each time Google added a new type of app, like the recent addition of Linux apps, they devised new ways to connect that style of app to Chrome OS on the whole, which didn’t necessarily have anything in common with any previous method.
The App Service
At some point the Chrome OS team realized how unsustainable and messy this pattern was, and decided to do something about it in a massive new project entitled “App Service.” The goal of the App Service project is to create a uniform way for Chrome OS to get information about and interact with apps from “publishers” like ARC++ (Android apps) and Crostini (Linux apps).
In the official documentation, Google breaks down the App Service into five distinct parts.
- App Registry: list the installed apps.
- App Icon Factory: load an app’s icon, at various resolutions.
- App Runner: launch apps and track app instances.
- App Installer: install, uninstall and update apps.
- App Coordinator: keep system-wide settings, e.g. default handlers.
Combining these five pieces, Chrome OS should soon feel like it has one unified app ecosystem, not four disjointed ones.
Good things to come
One early, positive consequence of creating the App Service is that it became possible for Chrome OS to display every app from every ecosystem in one page using the App Registry. This page, spotted by Chrome Story in the latest Chrome OS Canary, is called “App Management” and lives at chrome://apps once you enable the #app-management flag.
This page is still a work-in-progress, but allows for the easy, combined management of Android and Chrome apps. Over time things will be refined, and will include Linux apps and progressive web apps. On other platforms like Windows and OSX, the same Apps Management page is simply used to manage installed Chrome extensions.
Another interesting possibility for the future comes from the App Installer portion of the App Service, as it will soon be possible to install apps of every kind in a uniform way. Today, each type of app has its own unique source to install from — the Chrome Web Store for Chrome extensions, the Play Store for Android apps, etc — but with the App Service, it becomes possible for Google to build a unified app store for Chrome OS, or simply add other kinds of apps to the Chrome Web Store.
If nothing else, a unified marketplace could make Chrome OS’s Linux app support a more beginner friendly experience, as there are presently no app discovery methods included. Currently, to install Linux applications, one needs to use the “apt” command or manually download and install .deb files.
If Google does have the ambition to build such a marketplace, we’re at least months away from seeing it, as many details of the App Service are still under active discussion and development.