20 Sep 2022

Switching to iOS

I’ve used Android exclusively since the original HTC Dream (AKA T-Mobile G1)

That was 14 year ago! I’ve had countless Android phones since then: Pixels, Nexuses, Galaxies, and even a OnePlus (which was over-hyped and had a truly terrible camera).

I’ve been using Linux on the desktop since around 2005, so naturally, I preferred the more open Android ecosystem.

Apple invented the modern smartphone. They made Palm, Microsoft, and RIM (Blackberry) look like dinosaurs. While Apple and Google now compete, they’ve come from different directions. iPhones have been locked down, restricted devices that prioritize ease of use and cohesive design, Android devices have historically been janky, but ultra flexible and unrestricted. At launch, the iPhone had no App Store, and was carrier-locked in the U.S.A. to AT&T. You couldn’t copy/paste, and you couldn’t multi-task, but people were ok with these limitations because everything else about it was leaps and bounds ahead of the competition. The core differentiator over the dinosaurs was the use of a large capacitive screen. Gone were styluses. This was a year before the first Android phone launched. At this time I was on Sprint, and used the Windows Mobile-based HTC Touch Pro.

While the above phone looks pretty ancient by today’s standards, an old iPhone, other than the small screen, still looks like a modern smartphone. Android went from 50 buttons, to just a few, while Apple devices have barely changed.

Windows Mobile had a LOT of flaws as a consumer, non-techie device, but there was a large app ecosystem available, giving it some clear advantages over Apple at the time. At least for for tech-savvy users. It was, however, clear that Microsoft would need to massively improve, or give up. They tried very briefly with Windows Phone, but didn’t last long. Android arrived about a year after the iPhone with the launch of the HTC Dream on T-Mobile. The Dream was quite mediocre actually, but you could tell the scaffolding was there for something great: A proper web browser, a capacitive touchscreen, and support for Google’s excellent web services.

Less than 2 years later the Motorola Droid launched, and it was an enormous leap forward. It had massively improved UX and animations, a higher resolution display, support for Exchange, and a top-of-the-line TI OMAP chip.

Android finally had a worthy iPhone competitor! Unfortunately, it all went downhill for Google from there. You see, back in those days, Google was 100% in charge of Android software. When the Motorola Droid launched, it was the only phone running on Android 2.0. In fact, Android 2.0 was built specifically for the Droid. Apps targeted that exact software on that exact device. Sound familiar?

Shortly after, Google allowed manufacturers to modify Android as much as they wanted, provided they pass some compatibility test suite, and Android has been a mess ever since. The result is that most Android phones don’t get OS updates. Apps that work on one phone don’t necessarily work on another. Google allows Android to run on almost anything, which inevitably meant a race to the bottom. Phone manufacturers launched a lot of garbage hardware running Android, receiving zero updates, damaging the brand. Can you blame people for flocking to Apple? Google’s attempt to be open has made everything worse. What Google should have done is release Android as open source, but stipulate that if you want to call it Android, and use the Android Market (later renamed to the Google Play Store), and use Google’s web services etc.., you need to use Google’s Android build. That’s the only way to ensure day-one updates and ~100% compatibility. This is essentially how Microsoft does things with Windows. You don’t get your Windows updates from Dell, they come directly from Microsoft. Google in 2008 was all about “Don’t be evil”, open source, and, most importantly being the antithesis of Apple.

While Google tries to downplay the fragmentation problem, the fact is they spend a large percentage of their resources solving the problem they created: Project Treble, Project Mainline, moving code from Android to Google Play Services, maintaining app compatibility with 8 year old versions of Android etc.. The list goes on. All of these resources could be spent innovating. Unfortunately, it’s likely too late to change this. Companies like Samsung invest enormous amounts of money customizing Android to either differentiate themselves from the masses, or to add features that aren’t officially in Android yet. It’s a big mess.

Historically Google has made good software but bad hardware, while Samsung makes bad software, but good hardware. If you think that a Samsung Android device would be the best of both worlds, you’d be wrong, because a Galaxy doesn’t have Samsung hardware and Google software; it has Samsung hardware and Samsung’s Frankenstein Android build. Samsung shoves piles and piles of bloatware on their phones, has software that cheats on benchmarks, over saturates photos, and kills background-running apps in the name of increased battery life. Oh, and they have inferior duplicates for every Google app which you cannot remove: Email, browser, calculator, etc.. It’s a mess. My last phone was a Samsung Galaxy S21 Ultra, and Samsung’s own app store kept advertising to me, begging me to use that instead of the official Play Store. Because I hated Samsung’s software so much I used a 3rd party launcher, and a Google replacement for most system apps. I know Samsung wants to be part of the app ecosystem, but consumers don’t want that.

Every mobile developer I’ve ever spoken to says they dislike developing for Android. The biggest reason is of course fragmentation. They can’t take advantage of the latest Android feature because barely any phones have it. They need to test on hundred of devices, and they’ll still get bad reviews because their app inevitably has an issue on some lesser-known hardware. And that’s independent of the mess that is the NDK.

I think the core problem with Google, and the primary difference between Google and Apple, is that Apple is highly opinionated. They curate on behalf of the customer. Google couldn’t be more different. Google doesn’t have strong opinions about anything. They simply try multiple ideas and let the market decide. This has led them down so many bad paths. Like the disaster that has been Google’s messaging strategy, or the carnage that’s hit Google Wallet Android Pay Google Pay. Or the train wreck of Google replacing the perfectly functioning Google Play Music with the inferior YouTube Music, and later Google Podcasts with Youtube Music Podcasts.

But what really pushed me to get an iPhone now? As someone in tech, it has always annoyed me that the best apps are either iOS only, or iOS first. It’s hard to believe now, but remember when Instagram was only on the iPhone? I don’t remember having seen an app that was better on Android than its iOS counterpart. It gets worse every year, aided by the fact that more and more software engineers are using a Mac. At AWS I think >90% of software engineers use Mac. Many, many Mac apps have only an iOS companion app, and it’s frustrating as an Android user. Things, Ulysses, Fantastical, Infuse etc.. are high-quality iOS apps with Mac counterparts. There is no equivalent if you’re on Android.

Even the apps that do have an Android equivalent, the iOS versions are almost always superior to their Android counterparts. Apollo for Reddit is better than any Reddit Android app. Same for Ulysses, same for Things, same for ShellFish. Even for a trivial app to track your package deliveries. Both Deliveries and Parcel have far better UX than any app available on Android. Apple cares about UX, so it should be no surprise that iOS developers also care about UX.

I’ve started listening to more audio books recently, and can you believe there isn’t a decent app to play your personal audio book collection on Android? There’s Chronicle, which is abandon-ware, and constantly deletes my books, and there’s Smart AudioBook Player, which if perfectly functional, but has ugly UI, and only supports local content. Seeing that iPhone users had the beautiful and functional Prologue was one of several reasons I just got fed up and switched.

Google’s reputation for innovating was sky-high 14 years ago. Today, their product strategy is not clear. What are they doing with Android on tablets? What about watches? What about TVs. As a consumer, Apple’s CarPlay is better than Android Auto, Apple TV is better than Android/Google TV. Apple Watch is better than any Android watch. And don’t get me started on what Google has done to Nest since acquiring them. I’m tired of missing out due to being an Android user.

One last thing. I played around with my new iPhone for a few hours before migrating everything over, and it required a full reset to get WhatApp to transfer over from Android. Fine, no big deal, it’s a one-time thing. When I re-signed in to iCloud, all the settings I’d configured on my apps before resetting the phone carried over. Android still can’t do this after 14 years! For people who switch/upgrade phones often this is a killer feature. I’m sure Google’s reasoning is that they chose to make this is opt-in for developers, and, well, developers can’t be bothered. Another point for Apple. Sometimes being ‘draconian’ is a good thing, and when you force your developers to do the right thing, like use iCloud to back up settings, or force them to upgrade to 64-bit code, it’s only a good thing.