summaryrefslogtreecommitdiff
path: root/docs/random/smartphone_os.md
blob: e7342e907e8acea102465c86054bf94eaf0c1092 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
# The most important part of a smartphone is the OS.

2022-05-04

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% [1])
- 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%
  [1])

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](https://www.mokeedev.com/https://www.mokeedev.com/),
  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:

1. system is stable enough to not crash frequently
2. proper privacy management, absolutely no spyware
3. third-party apps run without hassle, and pre-installed apps can be
   uninstalled
4. interactions are responsive and predictable
5. user interface is consistent and clutter-free
6. well-documented configurations for everything
7. 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.

![Allow "Nova Launcher" to open "VLC Media Player"?
Allow/Deny](img/smartphone_os/miui_open_app_popup.png)

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:

![Three buttons: Emergency (in red), Lock down, and Power Off. A menu is
expanded, revealing "Restart"](img/smartphone_os/o2os11_power_menu.png)

And this is what it looks like on OxygenOS 12:

![Three buttons: Emergency (in red), Power Off, and
Restart](img/smartphone_os/o2os12_power_menu.png)

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"[2]. 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"[2] 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.

## References

- [1] [Mobile Operating System Market Share
  Worldwide](https://gs.statcounter.com/os-market-share/mobile/worldwide),
  Accessed 2022-05-04.
- [2] [OxygenOS 12](https://www.oneplus.com/oxygenos12). Accessed
  2022-05-04.