The most important part of a smartphone is the OS.¶
The most important part of a smartphone is the OS, period. There, I said it: no other part vendors call a "flagship feature" or "cutting edge technology" is worth as much attention as the operating system does, in my perspective.
Although I consider smartphones a mistake, in a world that seems to require them, I would rather live in one that sets its priorities right.
What operating systems are we talking about¶
There are at least hundreds of models of smartphones on sale, yet two operating systems dominate the market. They are:
- A completely locked-in ecosystem by a company who makes its living by selling overpriced electronics and cutting 30% off the profit of every app developer that made its OS popular in the first place (market share ~28% )
- A heavily branded open source project bundled with proprietary shit by a company whose only true intention is profit, and somehow this one has dozens of commercial spinoffs, most of which suck (market share ~72% )
Since Apple is doing their own thing and Google is famous for not giving a shit, we'll leave iOS and stock Android alone and talk about the various Android ROMs out there (whose names usually end in OS or UI). For the time being, ROMs based on Android are the only viable way for a custom mobile OS to reach a large audience, as is the approach taken by dozens of startups. The problem here is these ROMs vary wildly in quality.
Of all ROMs I have used, these are the ones that I have a clear account of:
- MIUI, stock ROM on Xiaomi 6, June 2018
- Mokee, Lineage-based custom ROM on Xiaomi 6, replaced MIUI, July 2018 — June 2021
- EMUI, stock ROM on my mom's Huawei phones, 2017 — now
- ColorOS, stock ROM on OnePlus 9R, June 2021
- OxygenOS, semi-stock ROM on OnePlus 9R (I asked OnePlus staff to flash it over ColorOS), June 2021 — now
In my standard, MIUI, EMUI and ColorOS suck for sure. Mokee gave me an enjoyable experience overall at certain costs, and OxygenOS is a whole other story.
Nomenclature: from this point beyond, I will begin to equate a ROM to an OS.
Why operating systems matter¶
What set smartphones apart from their ancestors was their ability to perform a wide array of tasks to your liking. The extensibility comes from their operating system, in the sense that you can configure it in more ways than before, and also dynamically install and manage applications.
You interact with your operating system every day. Every minute your phone is powered on, it is in charge of your screen, speaker, microphone, antenna, battery and everything else. If you say the OS doesn't matter you're lying. If an OTA update made your phone lag on every swipe (true story) or depleted a full battery in four hours, you would be enraged. Not every issue can be solved by adding 20 to your Snapdragon model number, or doubling your milliamp-hour. If your OS is crap, your phone is crap, until you flash something better onto your crapphone. But this is based on the assumption that your phone lets you do so. Flashing a ROM is a hassle at the very least: even on the most customizable phone models you have a bootloader to break, not to mention adb and TWRP.
My stance is clear. If you, a smartphone vendor, wish to deter your users from flashing custom ROMs, you should at least make a better stock ROM. If your intention is to lock users on your crappy ROM so you can do evil shit, then I wish you death.
What makes a good operating system (and what makes it crap)¶
Short answer: user experience.
User experience is a concept quite difficult to take ahold, but I'd summarize a good user experience as the following:
- system is stable enough to not crash frequently
- proper privacy management, absolutely no spyware
- third-party apps run without hassle, and pre-installed apps can be uninstalled
- interactions are responsive and predictable
- user interface is consistent and clutter-free
- well-documented configurations for everything
- updates maintain backward compatibility
Sadly, none of the stock ROMs I've used satisfy all seven. Twice, I got so annoyed I replaced them. Here's what went wrong.
#3 violation: Some apps are more equal than others¶
In the Chinese distribution of MIUI 9 or 10 (I forgot which one), a popup appears whenever a third-party app tries to open another, asking for consent. A side effect is that custom launchers, whose job is basically opening third-party apps, are extremely painful to use.
I believe this was out of good intention, but laying too much restriction on third-party apps is impeding customization.
#5 violation: Ads don't belong¶
Ads have no place in an OS. I'm talking about you, EMUI and ColorOS. There must be absolutely no ads in the default browser, or news feed, or anything system. That's it. What makes it so fucking difficult to understand? Putting a perfectly clean demo on display in your stores, charge hundreds of dollars for a piece of "art and craftsmanship", then smear 3/4 of everyone's home tab with celebrity gossip and promoted sales. What is wrong with you?
#7 violation: This update broke my workflow!¶
Last month I updated OxygenOS from 11 to 12. Well, I regret that, big time. It broke 7 things. 7, if you only count the ones introduced by OnePlus, not Google and all the anti-features in Android 12. The worst fuckup I've had on Arch Linux couldn't break 7 things at once (another reason I love rolling release distros). But there has to be reasons why I consider them broken. I counted them all, and it seems like OnePlus managed to also violate #4, #5 and #6 all in one update.
#4 violation: This shouldn't lag. But it does¶
The most irritating broken workflow was that, each time I navigate home using the swipe-up-from-bottom gesture, the entire phone ceases to respond for a solid second in which I can't open any app or swipe to another page. Sometimes a thumbnail of the app I exited from freezes mid-air as I release my finger. Who could've thought that this gesture, invoked hundreds of times per day, would lag? Well, certainly not the OnePlus QA team.
#5 violation: Wait… Things didn't work this way¶
I don't blame this one on the OnePlus devs. It's a subtle bug, and it was a consequence of another problem. But considering the time it cost me, I'd kindly offer a design tip to anyone in the industry:
Don't change muscle memory-driven interfaces.
Here's an example. This is a mockup of the power menu on OxygenOS 11:
And this is what it looks like on OxygenOS 12:
For an estimated 160 nights, I went to bed, held down the power button, pressed the righthand rectangle, and listened to the vibration my phone made on the nightstand as the room went dark. This has been engraved in my memory. Guess what happened every night right after the update.
You are right. For at least five times I pressed the button I thought was poweroff, but is actually restart. I had to wait for it to boot, then promptly shut down by pressing the right button. The first time I went "wait… they moved them?" The second, "oops, better be more careful next time." By the third I was cursing. How am I supposed to remind myself of that with a heavy head? This is a small, yet ridiculously tormenting bug.
The root cause of this is they removed the lock down feature (which disables biological authentication modes). But it seems like they failed to consider what the power menu will look like after the removal, and how a sleepy person will interact with it.
#6 violation: Don't take away my options¶
The moment I unlocked my phone post-update I noticed something wrong. Aside from icon layout, the launcher was nothing like before. All the app icons are wrong. I tried changing them, but it seems the only way is to delegate an entire iconpack. This means I can't edit the icon of individual apps like before, which fixed many odd-ones-out.
Also, I saw app names under icons on my homescreen, which are supposed to be hidden. There was an option to hide them, but it applied to those in the app drawer as well. Fumbling around the settings of this new launcher, I just can't stand the lack of so many options. I switched to a custom launcher that I used on Mokee.
Another setting I missed is double-press power button to launch camera. This used to be the fastest way I could snap a photo of cats in silly poses, but now I have to wake up the screen and swipe from a corner, or enable some kind of on-screen gesture I'm sure will backfire.
What should smartphone vendors learn to understand?¶
They need to understand that the operating system is the part that the user interacts with more than anything (well, except the chassis. I wouldn't buy a phone made of lead.) A better operating system makes the smartphone much more pleasant to use, in the same way that a manager would hire a more capable secretary. Instead of a collaboration (read: advertising campaign) with Leica or Zeiss, try giving the devs and QAs a raise. But don't give product managers any.
They also need to understand an OS is much more than these "exclusive features" with fancy names they boast. The fact that a smartphone has these features onboard does not mean they will function properly along with everything else. It would be worse if you can't turn them off.
Even if they know an OS is a big deal, they rarely do it right. A tagline for OxygenOS 12 is "Designed for comfort". But I felt no comfort in it. OxygenOS 11 is, in literally every way, the better version. Perhaps if I skipped 11 altogether and started from 12, I'd feel kind of comfortable; but given so many workflows the update broke for me, no way. "Streamlined and subtly textured visuals" and "accentuating light and space" do not compensate for laggy navigation in the slightest bit.
I have learnt to never buy a phone without feeling its OS. Advertisements lie. There are stores where you can try physical smartphones, but you can't feel the OS in mere minutes. What would be perfect is a week-long trial, but I doubt this will ever be true.
Smartphones were a mistake.