I’ve been using Android for the last couple of weeks, and honestly, the core OS is pretty good!
The big problem is that Android apps are garbage relative to iOS apps. If developers actually care about pushing back against Apple they should give a damn. They don’t.
He then went on to attribute the garbage quality of Android apps to developer laziness. This understandably infuriated some of us #AndroidDev unleashing the droid rage. To Ben’s credit, he has since deleted the specific tweet calling out developer laziness.
I’m not going to spend time dissecting his tweets2. We are all human and occasionally tweet dumb things. But there’s a shred of truth nestled in that starting tweet that just got me thinking.
iPhone vs Pixel
I’ll summarize the obvious points so we can get those out of the way:
- iOS does better with privacy overall. It’s not always a slam dunk but all things considered the Android experience is worse on this front.
- iPhone hardware is better than Pixel hardware especially when it comes to integration with bluetooth accessories like the Apple Watch, AirPods, CarPlay etc.
- Camera is dicey. I think the Pixel shoots better still photos than the iPhone. The computational photography voodoo that Google does on pictures after the fact makes the photos more appealing to my eyes. iPhones still have the better Camera (hardware) though which is abundantly clear when you try to shoot videos.
- Siri is a steaming pile of garbage. It’s a crying shame how bad it is given the better hardware. Google Assistant alone makes me switch back to my Pixel time and again4.
But there’s one important point that came up from this imbroglio that has been hard to shake off …and wherein lies the more interesting argument:
Which phone has the better apps?
In my original tweet I was careful to say the iPhone has better “3rd party” apps.
Here’s a fair question to ask retorting that position: Give me examples of apps that exist on both Android and iOS where the iOS experience is better?
Sure, I can give examples5 where it’s true most of the time but my point is subtly different. If I rephrase that question however, it helps make my point better:
Give me the best “insert category” app on the iPhone and on the Pixel. Which one do you think works better?
Let’s try that for a few categories:
- Give me the best Todo list app on the iPhone and Pixel. Which one do you think works better? (See Things)
- Give me the best RSS feed reader app on the iPhone and Pixel. Which one do you think works better? (See Reeder)
- Give me the best music making app on the iPhone and Pixel. Which one do you think works better? (See GarageBand)
Some will immediately jump in defense saying this is subjective.
Sure… Maybe? I’m open to being challenged here. But I build Android apps for a living and I mostly use an iPhone today as my daily driver, so take it for what that’s worth. Also chatting with other (dev) friends, I’ve heard I’m not alone.
So why are iPhone apps better?
Android Tools are worse?
Actually it’s the opposite! After dabbling with some iOS development, I can
confidently say Android Studio is
like a glass of ice water much better
than Xcode6. I also think Google as a company listens more closely and cares
about improving the developer experience. Many of their recent changes have been
in direct response to developer outcries.
How many iOS developers can say the same of Apple?
Android devs are lazy?
I’d even go so far as to argue that Android developers care way more about clean architecture and good engineering practices than iOS developers. I mean I’m biased here but consider the fact that Android devs are typically early adopters of industry best practices like Rx, MVI/Unidirectional State Flow, Reactive UIs etc. You’ll find chatter, curiosity and first implementations about these topics much earlier in the Android development community. But here’s the rub:
iOS devs didn’t have to care about these things.
iOS devs didn’t have to care
You want to know why Android devs jumped on Rx? Because every time you hang for a few extra seconds on the main thread you would get hit with a gnarly ANR. iPhones were built to make single threaded processing blazingly fast. You can execute database calls on the main thread and not worry for the most part. Try that on an Android phone.
You want to know why Android devs have heated week long discussions about Dependency Injection and Dagger? Because we can’t use constructors in our classes! iOS devs think we’re crazy cause our ViewControllers don’t just take in our dependencies.
You want to know why Android devs experiment and come up with all kinds of different architectures to build apps? Because Google for the longest time intentionally chose not to have an opinion. This changed in 2017. You know how long Android has been around? since 2005. 12 years, if you’re doing the math.
I also don’t need to reiterate the trope around Android being fragmented7. While
we would spend nights battling platform specific bugs, our iOS counterparts
could spend their time focusing on silky smooth UIs. They had the luxury of
perfecting and polishing (and good on them for doing that).
minSdk 14 was
never a thing for iOS devs.
So yes, we might have better tools courtesy Android Studio but make no mistake it is easier to build higher quality apps on iOS than it is on Android.
One more thing
There’s also this other big factor that accounts for better third party apps: iOS users are more willing to spend money through the app ecosystem. Android may have the bigger market share today but more money is spent through iPhones.
If iPhone users are willing to spend more money, companies and indie developers are going to spend more time and resources building iOS apps instead of Android apps. When more time and resources are spent instead on iOS apps it follows that iOS is likely to have the better apps.
It’s harder technically to build a better Android app but Google is doing its part to close that gap quickly. But unless Android users actually start spending more money through apps, iOS is going to have the lead.
A journalist who is otherwise a very thoughtful and astute tech reporter. ↩
This was a fleeting -i can’t sleep during corona so imma just tweet- oopsie. Definitely not one the finer Stratechery moments we’ve come to expect. ↩
The Pixel experience is the best experience for Android. Yes, I know Samsung hardware can be pretty good. When a non-bastardized Android experience comes to Samsung, I’ll switch in a heartbeat. ↩
and this is to a 3 year old Pixel 2. My Pixel 4A is coming end of this month. ↩
and burn bridges with my good Android dev friends who work at these companies. ↩
Both Kotlin and Swift are amazing. So they have a negligible impact in this discussion. ↩