The Android Experience

January 4, 2017 | 7,266 words |



After an entire year using the iPhone 6s and the release of iOS 10, I decided to switch to Android and buy a Xiaomi Mi Mix. A lot of people have asked for my impressions, so this is a report of my experience after two weeks of use.


I have been a long-standing iPhone user and have owned almost every model Apple released, except the original one, and maybe a couple of “s” versions. So, first of all, I think it’s worth explaining why I switched to Android.

There are four main reasons:

So, given that, in my mind, Apple is declining in terms of hardware and software quality, and the notification system has become disappointing, there was no reason anymore for me to not consider Android.

The fact that I switched is deeply concerning. Not because I want to stay with Apple at all costs. I have no bias; I just want the best possible smartphone the market has to offer. The broader implications of my move is what is really troubling me.
I am a very vocal proponent of a frictionless user experience, both in consumer and enterprise IT. If Apple loses its edge on this, as I perceive they are at the moment, I don’t have the confidence that anybody else will remain to set the bar and push the whole industry forward. If Android is so good today, enough for me to jump ship, a significant part of the merit goes to Apple which has a model to emulate and surpass. If Apple loses its edge, I am very afraid we’ll lose the capability to innovate at the current speed and we’ll fall back into the dark ages of mobile computing that we experienced before the iPhone was launched.

Thoughts on Mi Mix

As I had decided to make the change and given that I can’t stand the increasingly rounded shape of my iPhone 6s (and so many Android clones on the market these days), I looked for devices designed in more squared form factors.
I originally wanted to try the Samsung Galaxy Note 7, even if I hate the Samsung logo on the front. Ironically, I couldn’t buy one because of its exploding battery. While waiting for a non-exploding version from Samsung, Xiaomi announced the Mi Mix, which has the ideal form factor for me, so I decided to consider this platform switch as a full blown experiment and go for what the company called their “conceptual phone”.

First of all, I had to wait for some reviews to be published, to be reassured that the device is working more than decently. The large majority of my work is done on the smartphone, on the road most often than not, so a reliable device with a large display and long-lasting battery are mission-critical requirements.
I watched very many video reviews, from the most authoritative sources to the least known independent bloggers, and it was entertaining to see how all of them emphasised some aspects and downplayed others in a completely opposite fashion to what I will do below.

Secondly, I had to be sure I could actually get one. I live in London and Xiaomi doesn’t officially sell anywhere but in China. However, I read that GearBest established itself over the years as a reliable importer for Xiaomi phones in the UK, so I decided to pre-order the Mi Mix with 6GB RAM and 256GB ROM.

So how did it go so far?

Less slippery, more slippery

If you come from an iPhone 6s and you have small hands, like me, the phone feels huge. However, the squared edges make it way less slippery than the iPhone 6 with its rounded edges. The number of times I lost grip on my iPhone is countless, despite it being much smaller in size and weight.
On the other hand, in a very different way, the Mi Mix is more slippery than the iPhone. Its ceramic body is way smoother than the brushed metal of the iPhone, and I saw it sliding dangerously in multiple occasions because of this. The most epic one was when I simply placed the phone on a table at a restaurant. The table was so minimally uneven that you couldn’t tell with your naked eyes. While I was talking, the phone silently slipped through the barely inclined surface, all the way to the ground. Given that I hate covers (and the GearBest package didn’t include one anyway), I guess I’ll have to be mindful of where I place my phone from now on.

Tougher than expected

Reading and watching reviews, I had formed the impression that the phone was incredibly delicate and prone to cracking, mainly due to the display. It’s not the case, at least so far.

Xiaomi did an engineering miracle in packing a 6.4” screen in an almost bezel-less chassis, which has exactly the same size of an iPhone 6/6s/7 Plus with a cover (and even without the cover the difference is minimal). It’s a marvel to watch but it also means that there’s literally nothing protecting the glass against hits. I also read that Xiaomi didn’t use Gorilla Glass or other strengthening manufacturing processes, so I was especially concerned about breaking it at the first fall. Nonetheless, when my phone decided to slide off the table and fall flat on its screen, it didn’t even get a single scratch.

The same can be said for the ceramic body. It didn’t scratch in any way so far, and, differently from the fabled iPhone 7 Jet Black, the shiny blackness of the Mi Mix maintains its integrity like the day I unboxed it.

Great but heavy battery

Coming from the terrible iPhone 6s experience, this literally is another planet. Even after disabling all the MIUI battery optimization settings, and despite the intense use due to my learning exploration of the first few days, the battery lasts well beyond a full day. On top of this, the battery also recharges really fast; I can’t quantify exactly but it definitely feels much faster than the iPhone.

Such an amazing battery (4400mAh) comes with a downside: the weight. The Mi Mix is really heavy, which I can deal with only because the battery is a top priority to me, but it certainly makes holding the device for long periods uncomfortable.

Stunning but challenging display

The display is both huge and beautiful, as extensively documented online. So I’ll focus on two aspects that reviewers didn’t mention at all: how the additional screen real estate is used, and how the bezel-less screen impacts usability.

First of all, in my opinion, the additional real estate is not fully leveraged by default. For example, the Xiaomi MIUI 8 customization doesn’t allow you to resize the icons so to have more of them on the screen at the same time. It only makes everything look bigger. In my understanding, the icon grid resizing is a feature available natively in Android starting with Nougat (Android 7.0), which Xiaomi is not pushing yet on its phones. However, third-party apps already allow you to change that aspect of the OS today, so I don’t see why the MIUI 8 didn’t offer the capability as well. While waiting for the availability of their flavour of Nougat, I opted for installing a popular third party app called Nova Launcher. Thanks to Nova, I could setup a grid of 5 columns by 7 rows of icons, which saves me from swiping through two screens or resorting to app folders in the first screen. Nova can do so much more than that, but I need none of those other capabilities. I would very much prefer to have the icon resizing feature native in the OS to minimize the impact on battery life.

To further leverage the enormous display, I reduced the font size from normal to small for both the OS and as many installed apps as I could. In this way, I maintained the dimensions I was accustomed to on the iPhone 6s and had a lot more things on the screen.

Then there are the challenges that a bezel-less display poses.
When everything is just display, the amount of involuntary touching grows exponentially, and there’s very little the user can do to minimize it (there’s practically no free space to firm the grip). I noticed that this is especially true with the top corners of the display (the right one in my case, as I am right-handed). MIUI 8 doesn’t seem to do anything particular to avoid accidental touches at the edges of the display, but given that Xiaomi is pioneering a new form factor here and they cautiously called the Mi Mix a conceptual phone, it’s ok if this aspect is not ironed out yet.

Ultimately, the screen is so big in a relatively small form factor that it completely eliminates, at least for me, the need for a tablet. A tablet is easier to hold, but a tablet is not a device that you always have with you, differently from the smartphone. On top of this, iPad apps never reached the level of usability that you experience with desktop counterparts, so, despite being a lifelong believer in tablets, I saw less and less value in them over time, and increasingly reduced their size. I moved for the original iPad to the Mini, and now, with the Mi Mix, I don’t think I need a tablet anymore. However, I would consider a Mi Mix with slightly smaller display sizes, like 5.8” or 5.5”, if that would result in a better balance between size, weight and screen real estate.

A shameful camera

Reviewers unanimously suggested that the Mi Mix camera is sub par the industry standard for high-end phones. That is an understatement. The camera is terrible.

Having a phone that could rival with the iPhone in camera quality is not critical to me. But here we are talking about a camera that captures colours that are not there, and a very disappointing resolution.

Granted, in perfect lights conditions, the Mi Mix produces decent photos, but in the real world there are never perfect light conditions. The picture above was taken in normal daylight conditions inside a house. If the camera cannot perform properly in this typical condition, it’s a useless camera. And I took plenty of other pictures, where the camera simply didn’t render the colours properly and the photo resolution was underwhelming.

It’s not a complete deal breaker for me, but coming from Apple I am hugely disappointed. I primarily take pictures of artworks at exhibitions in galleries and museums around the world, most of the times capturing pieces that I’ll never have a chance to see in person again for the rest of my life. So every shot is beyond precious. Knowing that I can no longer count on my smartphone for this, after years of great iPhone shots, is incredibly annoying. I can’t imagine having missed all the moments I captured over the years thanks to my smartphone, so, given that the Mi Mix produces photos of unacceptable quality, I already know that I’ll have to start to carry around an additional device just for that. I also know that, because of this single issue, I’ll replace the Mi Mix with something else (maybe a better version from Xiaomi) as soon as it comes out. The days of this device are numbered.

The camera is the one unforgivable flaw of an otherwise amazing phone. And it’s ironic because the extrusion I complain so much about on the iPhone is possibly what makes its camera great.

Metallic phone calls

As you probably heard, another engineering feat of the Mi Mix is the lack of a traditional speaker for audio calls. The whole upper part of the ceramic body vibrates during a phone call and that’s how you hear the sound.

The result is a sound that is very different from what we are accustomed to in modern phones. Voices are clear but a bit far, and kind of metallic. You have the feeling that the sound is coming out of the back of the phone, where they camera and fingerprint reader are, rather than from the front where the display is. And in fact, you can have your phone call by placing the ear on the back, rather than on the front of the device.

It’s usable, just not ideal, especially in a noisy environment. It’s not a deal breaker for me because I rely on Bluetooth headphones. If I can keep them working, I am all set.
By the way, despite the whole ceramic body vibrates to emit sound, bystanders can’t hear the phone call if in close proximity, or at least not more than with any other smartphone on the market.

Thoughts on Android

In 2013 I bought a Nexus 7 tablet. At that time I had a very bad impression of the OS due to the slowness of the device, the lack of mainstream applications and the poor design. But Android has come a long way in just three years.

Before switching, I did extensive research on the Google Play Store to understand if there was an Android counterpart for all my iOS apps, or at least the ones in my first screen, which I use on daily basis. I was very pleased to see that 23 out of 25 of my iOS critical apps were there, and quite a few more in the other my two screens. Without app parity, I would have never had the confidence to switch OS.

As soon as the phone arrived, equipped with Android 6.0 Marshmallow and Xiaomi MIUI 8 customization, I dedicated five full days to understand how the OS behaves compared to Apple’s counterpart, and how to change the things I didn’t like about it.

So how did it go so far?

Flawless migration

Android has no specific merit in this, but thanks to the aforementioned app parity, the fact that nowadays almost every mobile app has a cloud back-end, and the web installation, I could migrate my entire application portfolio to Android in literally five minutes. I never preferred Apple technologies when I was on iOS, so I didn’t have any issue abandoning iMessage (which I used only with a couple of contacts), Apple Maps (which I ditched years ago for Citymapper and Google Maps), Safari (which I don’t mind replacing with Chrome given that it’s my browser of choice on the desktop), or even the iOS keyboard (which I replaced with the amazing Gboard as soon as it was released).
The only native iPhone app I really relied on is Apple Wallet, but I found Pass2U Wallet to be an adequate replacement.

So far I noticed that the design and functionalities of the apps are almost identical between iOS and Android. In some cases, Android versions perform slightly better and/or have more features. In other cases, they perform slightly worse. Sometimes the same app has different bugs depending on the platform. At the moment of writing, for example, Google Snapseed has a long-standing massive bug in its Healing feature on iOS that I am not experiencing on Android; and a significant bug in its Rotation feature on Android that I never experienced on iOS.

The few apps that I couldn’t find on the Google Play Store were replaced by alternatives that I spent time researching. Some of them are really good apps, well designed, and with even more features than iOS apps I had to leave behind. aCalendar replaced Informant, FeedMe replaced Newsify, etc.

Overall, I am really pleased with how the Android ecosystem has grown and matured compared to my first experience.

Frictionless web installation

More often than not, I discover new apps thanks to press articles, which I read throughout the day on my computer. When I find one that I want to try, I am naturally inclined to click on the link to learn more about it and maybe read some reviews before installing it. When you are an iOS user, you end up landing on the App Store web page which has a link to open iTunes to install the app (and then, through a wireless sync setting, you ultimately have it on your iPhone). All of this is an unnecessarily convoluted process which I always refused to go through.

First of all, the last time I used iTunes was probably five years ago. I find it useless and confusing, and I don’t see why I still have to depend on a binary application as the central hub for my apps and media in the era of cloud computing. So, every single time, I am forced to search the app I am interested in right on my iPhone and install it from there. Sometimes it’s easy, other times it’s not (for example, if the App Store search engine didn’t index the new app yet).

Google Play Store allows me to install an app right from its web page. I click install, it asks me for authentication, I specify what device I want the app installed onto, and done.
Even better than this, if I start using the app and I don’t like it, deleting it after a few moments, Android recognizes it and starts an automatic refund procedure without me doing a single thing. I just receive an email saying that I was reimbursed for whatever I spent.

This is a frictionless experience and I honestly don’t understand why Apple can’t do something as simple as this, given the billion apps that get installed every day worldwide.

Pragmatic wireless connectivity

There are other small things in Android that are making my life easier. One of them, which I always wanted in iOS, is the capability to chose the wireless network without digging deep into the settings. I am on the road incredibly often and I have to connect to new wireless networks more often that I’d like. With Android, I can do that right from the notification shade, which is just a gesture away. I don’t understand why Apple could create convoluted, secret handshakes to accomplish all sorts of gimmicks on iMessage for iOS 10 but couldn’t address such a simple thing.

Distribution pain

Almost no phone manufacturer loads into its phones the vanilla (aka stock) version of Android. Most of them customize Android in significant ways to introduce innovative capabilities, leverage special hardware their phones feature, or track the usage of the devices. Even Google started to do so with its new iPhone clone, the Pixel. If you are familiar with Linux, you can consider each of these customizations like an Android distribution.

I don’t know how much these Android distributions can negatively impact the overall experience compared to stock Android. I would need to try a few different brands, for a very long period to mature that kind of knowledge. Before switching, I read a lot about how the MIUI and how Xiaomi customers have a love-hate relationship with it. But I also read similar comments from customers using Android distributions from Huawei, Lg, Samsung and other vendors.

What I know is that some things about MIUI are great for me, like the capability to have dual versions of the same app (useful when the app doesn’t natively support multiple accounts) or the capability to lock app access (which is a something too few apps support natively). Others, however, are terrible, and are part of the reasons why I was forced to learn how to customize Android in all the ways I am doing.

For example, Xiaomi decided to assign an ugly background (white, black or blue) to every icon of every app you install. In my opinion, app icons look much better on Android than iOS thanks to the transparent background, but even if you have a different view, the Xiaomi implementation is really terrible. That may seem minor, but it really makes a difference for somebody who cares about design like me and uses the phone constantly. I was forced to research how to customize the icons and install an icon pack. I never thought in my life I would have to do this sort of vanity trickery.

MIUI gets in the way in other, more profound ways as well. For example, by default, it has enabled very aggressive battery saving mechanisms that completely disrupt mission-critical processes like notification delivery. So I had to research why I didn’t receive all notifications I was supposed to, and then I needed to learn how MIUI manages power consumption, and then I had to figure out how to protect certain apps from being killed by the optimization settings, and how to change them. It’s complex and confusing stuff, with settings scattered throughout the whole operating system. I am a power user and I can figure it out, but the point is that I shouldn’t have to, and I certainly don’t want to. Users’ time is precious and the OS should help them, not make their life more difficult. I imagine that a non-power user would be completely lost and just walk away with the impression that Android (not the phone itself) doesn’t work properly.

Another example where MIUI is getting in the way is by preventing some apps from doing all the things they are supposed to do. For example, the Google app would allow voice unlocking as an extension of its OK Google capability. But somehow, MIUI prevents it from happening and I can’t figure out how to make it work. Honestly, it’s not even remotely important as the disruption to the notification delivery, but the point is that manufacturer modifications can significantly affect the overall Android experience and the experience provided by specific apps.

Last but not least, there is the Android Pay issue. In my understanding (and apologies if this is not 100% accurate – I am still learning), every Android distribution must be reviewed by Google before it can pass the SafetyNet test. The SafetyNet test guarantees that your phone is secure enough to store credit card information and operate as a payment device with Android Pay. So, for example, if the device has been hacked to install a custom distribution (aka ROM), the SafetyNet test will fail and the user won’t be able to setup Android Pay.
The SafetyNet test also fails if the Android distribution you are using is officially provided by the phone manufacturer but not yet profiled by Google as part of its Compatibility Test Suite. Google takes some time to review and approve new distributions, like my MIUI 8 for the Mi Mix. Which means that I now have to wait an unpredictable amount of time before I can use Android Pay in the London Tube as I used to do with Apple Pay and iOS. I also wonder what will happen if Google approves my current OS profile and later on I’ll receive the Xiaomi update to Nougat. Will it break the Android Pay functionality?

Again, no customer should ever be forced to learn all of this and being prevented from using a feature that is touted as part of the OS. It should just work, like Apple Pay just works on the iPhone.

Notification nonsense

It’s ironic that one of the four main reasons for me to leave iOS was the dissatisfaction with the notification system and I ended up in a notification nightmare with Android.

In Android, if an app generates more than one notification, the OS displays all of them as a group, giving the user a completely useless information like: “you have received 4 new emails”. This literally is my deal breaker and I am shocked that nobody sees the flaw in this approach.

The purpose and value of notifications is to give the user enough information to act upon it. Does it sound important? Let me read the whole message. Does it look like spam? I’ll ignore it and clean it later. Is it coming from an unknown sender? I’ll read it, if I have time, out of curiosity. And so on. Notifications are the one tool that allows us to decide whether to reallocate our attention or not.

By not displaying the name of the sender, the subject of the message (if any) and a preview of it, Android is preventing the user from assessing the situation and deciding what to do. The only information this approach provides is “hey, you have something new to check inside the app X”. This is valuable only to somebody who receives a very minimal amount of notifications per day. If the volume is really low, such as four notifications per day, the user can easily afford to tap into the notification to see what’s going on every time something new arrives, regardless of its nature.

Imagine that each notification is somebody poking you during the day. Four times per day, it’s manageable. But nowadays users don’t receive just four notifications per day. Even the people that don’t use their phone professionally, like me, receive dozens of notifications per day, from the most disparate apps. Which would mean that they would be poked dozen of times per days. Then, there are business people, who literally depend on their phones and receive hundreds of notifications per day. Hundreds of pokes per day, which must be processed to assess their priority and urgency.

In my case, at any given time, the Android native notification system is telling me that I received X amount of notifications from app Z. Opening each and every one of them to decide what to do is simply unsustainable. In iOS, each notification is displayed separately, and while Apple still doesn’t allow users to fully act on them at the lock screen (which is a shame), I can still have a very good idea of what’s going on and what to do with them. Yes, I might still decide to clear all notifications with a single tap, but at least I have a very clear idea of what I ignored.

I had to fix this issue. If not, I simply wouldn’t be able to use Android. So I was forced to start a massive research on the topic as soon I as I got my new phone. I discovered that there are hundreds of thousands of users that want to customize their notifications. Only a subset of them is vocal about having separated notifications, but I am not the only one; there is enough market to sustain a dozen or so apps fully dedicated to this business.

I installed and analyzed a few of them, focusing on the ones that explicitly mention separated notifications in their descriptions. Some of them are great in terms of customization but are quite unstable and battery intensive. Others don’t solve the problem exactly in the way I need. I ended up with Floatify, which is very customizable, feature-rich, and reliable (starting from version 11).

What I learned in this learning and troubleshooting process is that all these apps require modification of a long list of OS settings and permissions that the users should not even remotely touch or have to be aware they exist. Things like:

In my understanding, the third-party developers are not the ones to blame. It’s Android that doesn’t offer a simpler and more centralized way to replace the native notification system. Maybe because developers were not supposed to? But then, given that these apps have existed for years, why didn’t Google lock the current loopholes long ago?

The bottom line is that I left iOS in disappointment, and I ended up with the most important component of my workflow so incredibly unstable that I have to constantly check if it’s working. And it’s a shame, really, because Floatify (along with some of its competitors) offers me something that iOS never did: a notification preview with an arbitrary number of lines. This is a huge benefit because the bigger the preview, the easier is to perform that triage that is critical when operating at scale. Moreover, Floatify allows me to act on the notifications right from the lock screen in a way that is less awkward than on iOS (a tap or swipe on Android, rather than a 3D touch on iOS). I can instantaneously delete the unwanted emails and messages if I am inclined to do so.

Irony of the ironies, even if I would have Floatify (or any of its competitors) working perfectly, Android notifications would continue to be completely unreliable. If you are a technical person and have a lot of time, you are welcome to deep dive into the topic with this incredible read:
(note that the article mentions Android Marshmallows, but the situation apparently gets worse in Android Nougat)

Morever, I still wouldn’t have the notifications displayed (not grouped!) per app, as iOS used to do up to version 10. I couldn’t find an app that displays both individual notifications and organizes them per-app. Nonetheless, the multi-line preview is so valuable that I would stick to Android just because of it.

I understand that I am a power user, processing a volume of notifications per day that is an order of magnitude superior to the one received by a mainstream user. But Android could equally appeal to both categories of consumers, by allowing them to decide how the notification system should behave.

Notification delight

Despite everything I said in the previous section, Android notifications can be amazing. No, not the ones provided by default in Android Marshmallow or Nougat. Those are terrible. I am talking about the notifications that you can have with Floatify, assuming a significant dose of patience and abundant time to dedicate to customization.

Floatify can’t group notifications by app, in the way iOS used to do and as I hoped to have back, but can unlock other capabilities that are critical for information triage: extended notification previews and contact pictures.

Compared to what I’ve accomplished, the iOS 10 notifications seem primitive:

This alone, for me, is a reason to consider to remain on Android permanently (or at least, until Apple significantly revamps iOS).

Bluetooth instability

Another sore point of Android (or maybe my Android distribution) that I noticed immediately is the instability of the Bluetooth module.

Another key part of my workflow is the fact that my notifications get displayed on a Garmin Vivosmart wristband. Differently from most wristbands on the market, this one is small, relatively elegant, water-resistant, and with a tasteful OLED display that shows the full notifications text, rather than just merely informing the user that something new arrived. It’s so good that I keep buying it on eBay or Amazon every time I lose one, even now that Garmin has discontinued it.

The Vivosmart allows me to quickly assess the importance of incoming messages even if I am busy in a meeting or during a meal, without having to look at the phone all the time. Since I started using it, over one year ago, I completely stopped feeling a “screen slave” (sometimes referred to as FOMO), and I wouldn’t go back to not using it for anything in the world.
Clearly, my system only works as long as the smartphone notifications provide the full text of the incoming messages. As I mentioned before, if Android only tells me that I got X messages from app Z, the wristband becomes completely useless and just buzzes at my wrist all day without providing any value whatsoever.

So, as soon as I made Floatify work, I connected the Vivosmart via Bluetooth exactly like I did with the iPhone, where it had always worked flawlessly. It didn’t go well and I had to try to pair it multiple times. Even worse, the Bluetooth radio now gets randomly disconnected, without any apparent reason or warning, making the wristband I depend on so much completely unreliable. On top of it, I randomly lose my settings and have to indicate again all the apps I want a notification for. I appreciate the opportunity to be extremely granular in the settings, a philosophical approach that I saw in a number of aspects in Android, but why couldn’t Garmin just capture all notifications like it does on iOS?

An initial attempt to connect some of the many more Bluetooth devices that I still have to connect went even worse. While I had no issues connecting my Bose QuietComfort 35 headphones, when I tried to pair my Parrot Flower Power sensors the Bluetooth module crashed completely, to the point that I had to first clear the companion app cache -I had to learn what it was and how to do it; yet another operation that users should not do- and then completely uninstall it.

This is literally my next challenge: making all my Bluetooth devices work with my Android smartphone. It shouldn’t be a challenge at all. I shouldn’t be dedicating a single second to troubleshooting my phone.

Platform unpredictability

iOS users are so accustomed to a significant level of reliability, for both the apps and the OS itself, that they take for granted that the whole system works all the time, flawlessly. Sure, some apps may have bugs, but there is an overall very high confidence in the quality of software in the Apple ecosystem.

This confidence doesn’t come from a leap of faith, where users blindly trusted the company and the iOS developers at large. It comes from years of exposure to high-quality software, so consistently reliable to restore the trust in technology compromised by desktop operating systems. Which is why, when an iOS app is very buggy, users get incredibly vocal and unforgiving. And that’s why, now that crashes and reboots are becoming more frequent in iOS, users like me are so disappointed that they can even consider a switch to Android.

You don’t have the same feeling of reliability, and robustness in Android. It’s not just the fact that a specific third-party app doesn’t show notifications as it should all the time, or the fact that the Bluetooth module can crash. There’s more to it and I started getting exposed to it very early in my exploration.

One little example. The default clock in MIUI 8 doesn’t have time zones. That is a critical feature to me as I travel worldwide for business. So I looked for a replacement. I decided to use a third-party clock from Google. It has a pleasing design, tons of great reviews, and the few features I need. Except, as I discovered the hard way, its alarms aren’t functioning as they should. Twice, I set up the morning alarm and the app simply didn’t do its job and ring on time. When I checked what happened, the alarm simply appeared set for the day after when it was supposed to ring. Just in case I did something wrong, I tried to set up an alarm to ring in two minutes, which worked as expected, and then set up a new alarm for the day after. The alarm didn’t ring and I didn’t wake up – yet again.

That shook my initial, unbiased confidence that things on Android work reliably for the most part. I probably wouldn’t have been so impacted by the bug if it was on a system less critical than the alarm, and if it wasn’t provided by the company that more than anybody else should care about Android success. But at the end of the day, the clock I tried remains a third-party app, so I guess I can forgive a less reliable experience than the one provided by the native clock.

But then it happened again, just one day after. This time during a phone call. The telephone app decided to suddenly crash, without terminating the ongoing call, and, concurrently, lower the volume of the call at its very minimum. Restarting the app didn’t give me back control on the ongoing app, neither to terminate it nor to increase the volume. I found myself asking the person on the other side of the phone if he could kindly terminate the call for us so I could call him again.

And then, it happened again. This time with LastPass, my password manager of choice. LastPass uses a nifty trick on Android to help its users fill forms: it places a “fill helper” in the notification shade, which can be accessed at any time, even inside apps, with a simple gesture. It’s a great implementation because it allows filling forms even inside apps -something that the iOS counterpart cannot do at the moment of writing. The fill helper capability dramatically reduces the friction of an otherwise convoluted process to retrieve securely stored passwords, and it’s, I’m convinced, what ultimately helps users to keep using the app over the long term.
To play its trick, LastPass needs access to Android’s Accessibility Service. The app kindly guides the user through the Settings to make it so, and everything works as expected at the beginning. But then, randomly, LastPass gets disabled and the user loses the fill helper trick. Why? It turns out that, again, some Android distributions, like MIUI 8, feature quite aggressive battery optimisation techniques, and can disable access to the Accessibility Service for any app that uses it, without warning. Which Android distributions? There’s no way to know it upfront. Users have to find out by themselves, in yet another lengthy troubleshooting session. And once they found out, they also discover that LastPass can’t do anything to solve the problem, as fully clarified in their online support page, captured below:

So, fundamentally, Android is a world where application features and services can unpredictably crash without warning and everybody is OK with it. It seems surreal to me. I would have understood if Android was newborn, but here we are talking about an eight years old operating system. How is it possible that a similar situation is accepted as is?

The net result of these experiences, no matter if they are systemic or just a string of unfortunate circumstances, left me with the fundamental awareness that Android and its apps cannot be trusted, and everything must be tested and double checked multiple times. And that, according to the many reviews I read for very many different apps, every update can compromise the reliability of even those things that are very stable.

That’s not how it should be. I shouldn’t be paranoid about the mobile platform that is so ubiquitous in my life. We always considered mobile OSs as consumer technologies but that is not an accurate characterization anymore. Our dependency on so many apps when we are on the road, in meetings, with friends, has turned mobile OSs in mission critical platforms that must work as reliable as enterprise OSs.


Am I happy? Absolutely not.
As we start 2017, I feel like I am forced to make compromises that should really not be necessary making.

The Mi Mix is great (except for the terrible camera), but the pairing of Android 6.0 and MIUI 8 is not. As I said, I don’t know which one of the two is responsible for the issues I am experiencing, but I would very much appreciate if Xiaomi would offer the option of shipping the phone with a stock version of Android.

There are some things that I really like about the Android world over iOS, but the price to pay to have them is very high.
Android has evolved a lot in terms of usability and design quality over the years but it’s still far away from the stability of iOS. According to my experience so far, if the time users dedicate to troubleshooting the OS would cost money, an Android phone would cost an order of magnitude more than an iPhone.

For now, I’ll continue using the Mi Mix as an opportunity to learn and understand a world I have been far away from for long time. If Android would be more stable and less complex to make work, I would most certainly stick to it. So, going forward, my decision to stay will be mainly influenced by three events:

I won’t enable comments on this post to avoid a sterile debate about what platform is better. Also, it doesn’t matter if I did something wrong, or if your mileage was way better than mine. The point is that the OS should make impossible to experience any of the things I am experiencing, no matter what the root cause is.

If you want to engage in a conversation feel free to reach out to me over Twitter @giano

*Some of these permissions are hidden in some Android distributions. To find them, you need to install yet another third-party app called Activity Launcher and follow a highly technical, convoluted and extremely risky process.