Category: Blog

Moving to Android and Xiaomi Mi Mix

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:

  • The iPhone 6s is the worst iPhone I have ever owned.
    The screen scratched incredibly easily compared to previous models, to the point that I have a hard time reading when light reflects on it at certain angles. Also, the battery life is disappointing beyond reasonable, and much worse than the 6 model, to the point that it would shut down the phone at random battery levels (for example, 12%, 21% and even 61%). Yes, as it turns out, I am one of those customers eligible for a battery replacement. Last but not least, iOS has become less and less stable with age, crashing and rebooting way more often that Apple users are accustomed to.
  • With iOS 10, Apple changed the way notifications are displayed, removing the opportunity to group them together per app and clear them in chunks. I literally depend on notifications to do a quick triage of the hundreds of messages and alerts that I receive on daily basis and the new approach forces me to either clear notifications one by one or all of them together. The former method is too time-consuming, the latter is not granular enough.
  • I really can’t stand the extruding camera that started to appear in the iPhone 6. I understand that Apple doesn’t want to compromise on the camera quality and the weight and volume of the device, but that bulge completely ruins the aesthetics of the current generation iPhones, and it’s one of the reasons why I always disliked the early generations of Android phones.
  • I really don’t appreciate the increasingly rounded shape of the iPhone 6/6s/7 generation. Not only do I not like it aesthetically, but it’s also getting increasingly slippery to the point that I drop the device way too often. I waited before switching OS to see if Apple would change shape with the iPhone 7, but they didn’t and I was not inclined to stand all the issues at #1 and #2 for another year, at the least.

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. Look, for example, at the pink artifact over a white background that simply compromises the picture beyond use:

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 an 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:

  • Granting “drawing over other apps”, “display pop-up window” and “app usage access” permissions*
  • Disabling one by one (absurd!) the heads-up notifications for installed apps
  • Manually enabling autostart for the third-party notification app
  • Locking the third-party notification app in the task manager to avoid it being killed by the battery optimization

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.

Bluetooth instability

Another sore point of Android 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:

  • What will happen once Xiaomi releases MIUI 9 based on Android 7.0 Nougat
  • What Samsung will do with the Galaxy Note 8
  • What Apple will do with the iPhone 8

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.

A frictionless experience is not enough if it’s all there is

The few ones that follow me on Twitter (@giano) are used to me talking about “Frictionless IT“.  The way I used the term so far was mostly referring to a new kind of enterprise IT, rethought and redesigned to systematically remove the complexity and the frustration that pushes line of business users towards shadow IT services. I usually mention frictionless IT when talking about cloud computing, as public cloud providers provided and keep providing an amazing example of how to disrupt markets thanks to a frictionless experience. They did an amazing job in embracing some key principles driving user experience in consumer IT and offering them to an enterprise audience.
That said, the quest for a frictionless experience is not just a prerogative of the cloud computing market or the enterprise IT industry as a whole. Startups in almost every market (Uber is the most obvious example) are trying to disrupt the establishment by offering a vastly superior interaction. I am carefully watching a lot of them, especially in the “personalised recommendations and services”, as I call it. Some of them do the fatal mistake of focusing so much on removing friction that it becomes their only value proposition. Today’s example is ZipJet.

I travel a lot, work a lot, and live alone. Anything that can save me time in between my trips is worth a try, including the laundry service. There are a lot of startups that are trying to turn upside down the current dry cleaning model, offering busy professionals perks like impossibly flexible pickup and delivery time scheduling  (well beyond the traditional laundry working hours), collection and return at the address of preference, and tiered pricing (i.e., per item and per bag, depending on the task) . It’s the peace of mind that I refer to when I talk about frictionless experience, and it’s perfect for markets hungry of time saving solutions like London (where I live) or NYC. Techcrunch did a great job in covering the explosion of this space and mentioned quite a few, including ihateironing, LavandaLaundrapp, LaundryRepublic, Washbox, Spyn,  and ZipJet.

I was very doubtful about these laundry services due to the delicate nature of the clothes I need to clean, and it’s impossible to tell which one of these services is good without a reliable third party rating system, but ZipJet was recommended by a friend and so I did a (costly) experiment. The result was a disaster. Yes, I had the best frictionless experience ever, but it was all there was.

My laundry was divided into two categories: “wash and iron” and “wash and fold”.

  • Wash and iron results: one of the six dress shirts, white, put in the “wash and iron” bags returned with a melted collar. Another, black, returned shiny.
  • Wash and fold results: ZipJet idea of folding a long sleeve t-shirt is the following.

Creative Folding 2 Creative Folding 1

Now, while I really appreciate creative solutions, and understand that young companies might have operational scalability issues when they get unprecedented popularity, this is really unacceptable. Especially in a highly competitive market. Especially in the personalised services industry, where a customer centric approach is the basis to retain and grow your user base.

So the experience was frictionless, but the product was terrible. First fatal mistake. What about the customer service?

I wrote to the customer service to express my disappointment, supported by visual evidence. I promptly received a “We are investigating” reply and in 24h I was offered to collect my laundry to process it again for free. Good timing, good answer. However, indicating a new collection time over email was too complicated to process for the customer service, so they invited me to use the app again as I would normally do. I did and, of course, my credit card was charged again despite I was guaranteed the second attempt would be free of charge. I had to write again to the customer service to be sure they would offset the cost. Less than optimal interaction, considering how disappointed I already was.
My laundry returned as expected but it was all but folded properly. The trick ZipJet used was to only fold properly the first couple of t-shirts for each bag while the rest remained pretty much in the same state shown in pictures.

The customer service even offered a £10 discount for the next regular collection. Lovely, except that on my side I lost two expensive dress shirts, I had to pay a maid to actually iron and fold everything properly, and I got what I needed over a week later than expected. The overall cost for this is way, way superior to the £10 discount.

So the customer services was prompt and courteous , but the corrective action was less than optimal and they didn’t solve the problem. Second fatal mistake. What about the leadership presence?

I sent a direct email to the co-founder and managing director of the company, expressing my concerns about how ZipJet operates. I didn’t receive a reply in 12 days. I am sure he’s really busy, like all of us, but other startups that have a rough start or incidents like this have their executive leadership reaching out personally as part of an exceptional customer experience.

So the leadership is not present. Third fatal mistake.


The take away here is that drastically improving (or revolutionising) the user experience is key to attract more demanding customers in highly competitive markets, but it can’t be done at the expense of core values like product quality, attention to details, and exceptional support. If you have a frictionless experience but you don’t have those things, you have nothing.



It’s 2015 and the address book is still broken

At the end of every year, taking advantage of the holiday break, I go for a tedious process: sanitising my address book. Every year, the process frustrates me to no end because it’s the moment I realise how the human kind is able to solve incredibly challenging problems (like landing on a comet) but not some trivial ones.

The socially-enabled address book of 2015 is a composite repository of information. For almost every contact I have, the details are distributed such that:

  • Company names and job titles are almost always on LinkedIn, as the de facto standard for professional identities
  • Birthdays and lists of interests are almost always on Facebook, as the de facto standard for personal identities
  • Phone numbers and email addresses are almost always on a mobile device address book, which is synched with either iCloud, Google, or a corporate Exchange/Zimbra server
  • Public opinions are sometimes on Twitter

So there are two classes of problems, both far away from being solved:

  1. find, aggregate and sanitise all aforementioned data to compose a single, unified persona
  2. sync the unified persona across all owned devices

Problem #1

A number of companies try solving problem #1, including Brewster, Cobook (now acquired by FullContact), I tried them all and none works as it should. The first two (Brewster and FullContact/Cobook ) are either too slow, unresponsive, or inaccurate. The last one ( is much more accurate but it lacks granular rules to decide which service is the primary one for each specific piece of data (why can’t I specify, for example, that the picture must come from LinkedIn rather than Facebook?).
All of them fail to find LinkedIn data in a consistent way, and only some try to find the Google+ data, which could be used to associate a Google Hangouts handle to my contacts.

To add insult to injury, Apple makes things harder than necessary with its unified iOS address book: when you create a new contact on iOS you have no way to decide in which account you are creating it. You can only define the default address book in Preferences, and there is no way to move a contact from an address book account to another after creation. The result is a plethora of contacts spread across 2-3, or even more, cloud service providers.

Problem #2

Apple and Google try solving problem #2. Contact sync through iCloud only works across Apple devices, which is not ideal for many different reasons. Contact sync through Google works across any device but it’s completely unreliable on iOS devices.
I am not sure if it’s Apple’s fault or Google’s fault. I am inclined to believe, from my tests, that it’s Apple’s fault because of a poor implementation of the CardDAV protocol on iOS1. Even if so, shame on Google for not pushing hard for a fix. Regardless, I have proof that it’s utterly broken.

A supposedly simple setup where two iOS 8 devices (iPhone and iPad) sync the Google Contacts address book with a Google Apps for Work account fails miserably. Any change occurring on the devices is not reliably propagated to the server. And in case you are wondering, yes, I did all sort of troubleshooting2.

To make the setup work, and prove that it’s an iOS fault, I had to resort to a third-party iOS app called ContactSync (I tried many others, this is the only reliable one), which is designed to sync contacts between, for example, an iCloud address book and Google Contacts.

I forced the app into a weird behaviour, asking it to sync my Google Contact address book on the iOS device with the Google Contact server. So, assuming you start with a messed address book with contacts spread across iCloud, Google Contacts, and Exchange/Zimbra, the workflow to sanitise it would be the following:

  1. [aggregation] Export of all iCloud and Exchange contacts and import them into Google Contacts (on a computer – too hard to do on a device), delete of all iCloud and Exchange contacts
  2. [enrichment] Use of (on a device) to augment the local copy of Google Contacts with data from LinkedIn and Facebook
  3. [synchronisation] Use of ContactSync (on the same device) to sync the local copy of Google Contacts with the Google Contact server

Of course, ContactSync thinks that I am crazy, given that CardDAV is there for that very reason, and raises a warning. Ignoring the warning results in a perfectly synched address book, the one that Apple and Google should guarantee out of the box.

Now, given that using a third party app is ridiculous and defeats the purpose, my only option is to fall back to Apple iCloud, right? No.
iCloud has the reverse issue: it’s reliable in syncing contacts when changes occur on the device, but not at all when changes occur on

Device > ServerServer > Device
Google ContactsUnreliableReliable
Apple iCloudReliableUnreliable

Take Aways

  • Both Google Contacts and Apple iCloud are still too unreliable on iOS devices in 2015. You must resort to using a third party app to do what they should do out of the box.
  • It’s amazing that neither LinkedIn nor Facebook are taking advantage of their market dominance to solve at least one of the two problems.
  • Fixing the broken address book becomes more important as next generation calendars (e.g., SunriseTempo) and email clients (e.g., Tipbit) introduce an insightful social layer. I use Sunrise3, for example, and I can’t unlock its full potential.

Bottom Line

It’s 2015 and the address book is still broken. Humans shouldn’t dedicate their valuable time to fix it. Not in 2015. There’s no excuse.

There’s a concept I often talk about: Frictionless IT. This whole story is the opposite of Frictionless IT.

  1. According to iDownloadBlog, Apple introduced CardDAV support in iOS 4, but it took iOS 7 to natively support sync with Google Contacts. 

  2. Yes, I:

    • went to the Groups view in the iOS address book and dragged down to force a refresh
    • deleted and recreated the Google account on the iOS device multiple times
    • tried creating a CardDAV dedicated account for Google Contacts rather than using the unified Google account
    • verified that my Google Apps for Work domain is configured to allow iOS contact sync
    • tried the same tests on a different iOS device

    I’ll be happy to try additional steps if you have any 

  3. Sunrise too has its issues: contact information (e.g., picture and job title) for each meeting attendee don’t seem to be retrieved from the device address book, and are somehow cached after being retrieved from the linked social networks. So no matter how much you keep up to date your address book, no matter if you disconnect and reconnect your social network accounts, no matter if you delete and reinstall the app, you remain stuck with inaccurate information after the very first setup. 

The Inexorable Shift to Web-based Applications

No question: on my mobile devices I want native applications. There are interesting opinions and notable research on why native apps still beat web-based applications on smartphones and tablets in speed and in usability, and in plenty of other areas. Plus, native apps work offline.

On my laptop, instead, I only want web-based applications. The list of things I don’t install anymore when I replace my computer grows on monthly basis. So far I have:

  • My corporate and personal mail
  • My (semi-)synchronous communication clients (IM, social networks, phone)
  • My feed reader
  • My office productivity suite
  • My task list
  • My notepad
  • My photo management and editing tools
  • My music player
  • My password manager

These tools are not perfect. There are certain tasks where installable applications perform better. Yet, the trade-off seems perfectly acceptable these days. Every time my machine breaks, or when I need to jump from Windows to OS X and back, I simply don’t want to spend two days reinstalling everything like I used to do 1o years ago. It is liberating to have this entire toolbox handy, on any computer I use.

The only applications I still install in a new computer are the browser, the cloud storage client, and the “office productivity” suite. Microsoft Office Web Apps, Google Docs and Apple iWorks are not yet on par with with the desktop version of Office. If I could I would move to a web-based productivity suite in a heartbeat.

I don’t see this trend inverting in the future. The desktop experience we had 10 years ago is gone and will never come back.

Update: one year and a half after writing this post, I was able to move to a web-based office productivity suite. It’s not perfect (offline mode still not completely satisfying), but more than good enough.

The browsers is the only native application I need. The hardware is a commodity.

Flickr, A Lifetime of Photos, and The Need for Better Access Management

From a product perspective, Marissa Mayer is doing great at Yahoo! She put out a wonderful weather app for iOS, and more recently announced a major Flickr redesign, and a new free tier of 1 Terabyte of data. That blows away any personal storage cloud out there, and represents a compelling reason to go back to Flickr.

1 TB is probably not enough for a lifetime of photos, as Marissa suggests, but let’s pretend. Photos are one of the most intimate footprint of that lifetime, and we share them with many different people along the way. The problem is that during a lifetime a lot of things happen to a human. Relationships change. Friends and partners come and go. What happens to the photos that you have with your girlfriend with you break up? Or to the photos of your kids if you divorce?

Flickr’s current access management simply is not up to the challenge of adapting to the relationship changes that may occur in a lifetime.
I read complains of multiple users asking for family accounts. On top of that, Flickr needs to provide more granular access control (e.g., at set and at collection levels), and needs to figure out what happens to photos that belong to multiple people when those people split up.

I hope Marissa will focus on that sooner than later.

The Many Potentials of 3D Printing

Gregory Ferenstein covers 3D printing for TechCrunch from two opposite angles. The life saving one:

Doctors 3D-printed an emergency airway tube that saved a 20-month old baby boy’s life. After imaging the boy’s faulty windpipe, doctors at the C.S. Mott Children’s Hospital printed 100 tiny tubes and laser-stitched them together over the trachea.

and the life killing one:

A new bulletin from the U.S. Department of Homeland Security warns that lethal, undetectable 3D-printed firearms may be “impossible” to contain, Fox News reports After a Texas law student designed and released digital blueprints for the world’s first fully printable gun, the files have allegedly been downloaded more than 100,000 times, despite a domestic ban on distributing the files from the U.S. State Department.

3D printing could be a life changer in a number of areas: implants, synthetic tissue, and even houses. I’d hate to slow down innovation on those fronts because humans can also print guns.

Next Generation Blogging Platforms

While relatively new blogging platforms like Tumblr and SquareSpace gain traction because of their simplicity and attractive design, they don’t differentiate too much from established alternatives like WordPress or Blogger.
I am much more intrigued by alternative approaches, which turn existing information repositories into blogging platforms. Examples:

  •, where posts are text files saved in your Dropbox folder
  •, where posts are notes saved in your Evernote account

Both are still limited in terms of features, forcing power users to postpone adoption. Ironically, I believe that power users are the most interested in a similar approach.

I wonder if and when somebody will try with emails. Can we turn a Gmail mailbox into a blogging platform?

Exciting Deadlines

Brad Stone profiling Google X for Bloomberg Businessweek:

Last year, Brin, Google’s director of special projects, predicted his company’s self-driving cars will be on the market in five years. Urmson nervously calls that deadline “exciting” and reveals his own target. “I have a 9-year-old son who gets his driver’s license in seven years,” he says. “So I have to be better than that.”

Of the few public projects Google is working on at its X secret lab, self-driving cars is the most inspiring to me. It could save millions of people every year.

OK Google

When I was a teenager I spent endless hours watching Star Trek TNG. Of all Star Trek series, TNG is the only one that really caught my interest, maybe because it was the one depicting the most realistic future to my mind. So my idea of “future” developed around three technologies: tablets, hands-free voice control (and interaction with an intelligent computer), and teleportation.

I honestly didn’t believe I would have lived enough to see any of those three. Instead, Apple realised the iPad, and Google is about to deliver hands-free voice control through OK Google.

Thanks Apple. Thanks Google.
Now, if somebody would be kind enough to deliver teleportation…