Chrome OS was ahead of its time when it was first introduced in 2011. That's not to say Chrome OS was a revolutionary breakthrough, akin to the original iPhone, but rather that it was built for a future that didn't exist yet. Web apps were commonplace in 2011, but they could only do a tiny fraction of what traditional desktop programs were capable of. Many early Chromebooks had limited amounts of free 4G data to compensate for poor offline support in web apps.
Fast forward a few years, and Chromebooks started to make more sense. Public Wi-Fi became more readily accessible (at least in the United States), a handful of web apps could function offline, and Chrome's rapid development cycle was gradually pushing the web forward as a platform. However, that wasn't enough for Chromebooks to start flying off store shelves.
Chrome, meet Android
Google's first solution to increasing the library of Chrome OS software was a technology called ARC, which allowed some Android applications to run in Chrome. A handful of these experimental apps were released onto the Chrome Web Store, but the technology was far from perfect. ARC was based on the older Dalvik runtime from Android (not ART, which was introduced in Lollipop), plenty of APIs didn't work, OpenGL was unavailable, and so on.
In 2015, the Play Store started rolling out to Chromebooks.
In 2015, ARC was retooled into a full-blown Android runtime for Chrome OS. It was a modified version of Android that ran on Chromebooks, complete with the Play Store. This was Google's silver bullet to the software problem that Chrome OS had experienced since its inception. Many of the missing applications that were repeatedly cited as downsides to owning a Chromebook — Word, Excel, PowerPoint, Skype, and others — suddenly became available.
In the three years since then, Google has continued to improve Android apps on Chrome OS. Performance is better, countless bugs have been fixed, and the vast majority of applications now work. However, Android apps on Chromebooks are still far from a good experience.
Round peg in a square hole
Android apps will always have strange bugs and quirks on Chrome OS. Not only are they running in a separate environment that introduces limitations, but most of them are designed for a completely different form factor. While it is true that Chrome OS tablets exist, the vast majority of people use Chromebooks with a keyboard and mouse/touchpad. Some devices, like Chromeboxes and budget Chromebooks, don't even have touchscreens.
In most cases, trying to use applications designed for a 6-inch touchscreen on a 13-inch laptop is not a good experience. The apps technically work, but usability is significantly worse than web applications. Android apps are designed for fingers, not keyboards and mice. Many apps, like Instagram or Google Tasks, refuse to function in landscape entirely.
Using applications designed for a 6-inch touchscreen on a 13-inch laptop is not a good experience.
Perhaps the most pressing issue with Android applications is that most developers don't bother optimizing them for large displays. There was a very brief period when most major Android apps had tablet interfaces — around the launch of Android 3.0 Honeycomb in 2011 — but that time has long since passed.
Google is also doing a terrible job of leading by example. With the notable exception of the Gmail app, which does feature a multi-column interface and keyboard shortcuts, most of the company's apps look terrible on Chromebooks — even the Play Store. If Google doesn't care about taking advantage of Chromebook's large screens, why should third-party developers?
Play Store on the Inspiron Chromebook 14
Google Drive on the Inspiron Chromebook 14
Google Home on the Inspiron Chromebook 14
Google Tasks on the Inspiron Chromebook 14
The solution that most Chromebook owners point to is "don't run the Android apps in full-screen mode." It is true that Chrome OS allows most apps to run windowed — but only sometimes. When a 2-in-1 laptop is switched to tablet mode, or when you're using an actual Chrome OS tablet (like the Pixel Slate), the current app is forced into full-screen mode.
There are more edge cases that make Android apps painful on Chrome OS. Until recently, you couldn't access any data from Android apps in the Files app — you had to download a file manager from the Play Store and copy files to the Android Downloads folder (which is synced across Chrome OS and Android).
Google finally added a 'Play files' option to the Files app a few months ago, but only three folders are accessible — Movies, Pictures, and Music. If you're using an app that saves files somewhere except those folders (like emulators or photo/video editing apps), you still have to download a file manager app. I'm not sure why Google couldn't show the entire contents of the /sdcard folder in Files, but it makes using certain apps significantly harder. Update: Martin in the comments pointed out that you can see all Android files by selecting 'Show all Play files' in the overflow menu.
If you need to clear data on an Android app, or unblock notifications, you have to do it from the Android Settings app. This isn't actually accessible from the app launcher — you have to open Chrome's settings, find the menu for the Play Store, then tap 'Manage Android preferences.'
I could go on with many more examples, but I think you get the point.
Web apps first, Android apps second
If you've never used a Chromebook before, you might now be thinking, "Wow, who would ever buy one of these things?" The simple answer is this: most people don't care. Chromebooks are cheap, they work, and they're still faster than Windows laptops in the same price brackets (until you get to ~$500, anyway). Compared to the legacy dumpsterfire that is Windows 10, or the expensive walled garden that is macOS, Chrome OS is definitely an attractive option to many people — if only as a secondary operating system.
When I had a Chromebook as my only laptop, I used Android apps as a fallback for when a service or tool didn't have a comparable web equivalent. For example, the Slack web app still doesn't offer notifications, so I installed the Android version. This is the best way to use Chrome OS — try the web app first, and if it's not good (or there isn't one in the first place), go for the Android app.
However, Google is increasingly encouraging people to use Android apps first and foremost. When you set up a Chromebook for the first time, the Chrome Web Store isn't in the dock — but the Play Store is. While Chrome OS has received update after update focusing on improvements to Android app support, its integration with Progressive Web Apps is identical to Chrome on Windows/Mac/Linux.
Google is increasingly encouraging people to use Android apps first and foremost.
Again, Google is having trouble leading by example here. Some of the company's web apps have been updated to function as Progressive Web Apps (like Android Messages and Google Photos), but they don't take advantage of any new web features. Most of them don't function offline or send background notifications.
This strategy is also apparent with Google filling the software gaps in Chrome OS. Instead of making a web photo editor, perhaps as an extension to Google Photos, Google convinced Adobe to add tablet support to Lightroom for Android. If you want to do video calls, Duo for Android is the recommended option (now that Hangouts is kind of going away soon). If you want to edit PDFs, you get Adobe Acrobat for Android.
Google is leaning more and more on Android apps to make Chromebooks viable computers. While this does lead to Chrome OS being a more versatile operating system, it also means the average user experience isn't getting any better.
The way forward
One of Google's most common business strategies is to develop two competing products and see which one wins out in the end — Progressive Web Apps and Instant Apps, Allo and Android Messages, and so on. The two environments for creating applications on Chrome OS, Android and the web, is seemingly another example of this. They're achieving the same goal, but taking different routes. Google wants to adapt desktop web applications to work on touch screens, while also tweaking smartphone/tablet Android apps to work on desktops.
We've already covered how Progressive Web Apps are becoming more and more powerful. They can work offline, have different interfaces for different screen sizes, send notifications, sync data in the background, and so on. A properly-designed PWA works significantly better on Chrome OS than the same app written for Android — you'll know what I mean if you've ever tried Twitter Lite instead of the Twitter Android app.
If the Chrome OS team leaned a little harder into PWAs, the benefit for users and developers alike could be massive. The Chrome Web Store should be revamped, with a focus on highlighting modern web apps. Google could add popular applications and sites to the store automatically, just like what Microsoft is doing with the Windows Store. Instead of being a library of abandoned Chrome-specific packaged apps, it should be a showcase of the best PWAs on the web — with an install button for each.
Chromebooks shine the brightest when used for their original purpose — browsing the web and using cloud-based applications. I'm glad the Play Store is available, because the promise of an all-web future isn't quite here yet, but I think Google could do a bit more to make that future happen.