My Thoughts After Switching from iPhone to Android

Its been a month since I made the switch from iPhone to Android and I thought others might benefit from my experience. What do I miss about my iPhone? What do I love about my Android? How do they compare?

First some background
I have been a loyal iPhone user for the last three years (3GS). I also love Apple products and use a MacBook for my personal laptop even though I am primarily a Windows developer. I made the switch to Android because I wanted a bigger screen and wanted to see what an open platform had to offer. I am active in open source software development, so Android seemed to fit my personality. All that being said, I don’t feel that I am biased toward one platform or the other.

The Android phone I switched to is the Samsung Galaxy Nexus running Ice Cream Sandwich (Android 4.0).

What do I miss about my iPhone?
To be honest, if I had written this article only two weeks in to using my new Android, I would have said I wanted to go back to the iPhone. However, at this point (one month in), I can confidently say I am sold on Android. It took me a while to get comfortable (and overcome my co-dependence on iTunes), but I an over the hump and there’s no turning back. However there are a few things I do miss about my iPhone.

Touch free voice dialing
When voice dialing on the iPhone I never needed to look at, or touch the phone screen. Even when I had multiple numbers for the contact I was calling, it simply asked me which one I wanted to call and I could respond with my voice and it would call the correct number. It was all totally hands-free.

The Android is a completely different experience. I have to turn on the screen to find the voice button and push it. Then I can say “call <name>”. Then, I have to look at the screen again to confirm it found the right contact and select the number to call. I have to do this even if there is only one number for that contact. It’s very clumsy, and dangerous when driving. Luckily, I seldom make calls while driving.

Stability
I have rebooted my Android phone more times in the last month than I did my iPhone in the entire three years I owned it. Granted, I got the Galaxy Nexus phone the day it was released, and it is the first phone to run Ice Cream Sandwich (the latest version of android OS–a major version release), so it makes sense that stability would be somewhat of an issue. However, even when iOS 5 was first released (also a major version release), I didn’t experience this level of difficulty. The stability has been getting better lately. Its really not that big of a problem…more of an annoyance, but I am curious to see what the future holds.

App selection
Android’s app selection is quite good. There are just a few apps I had for the iPhone that are missing in the Android market. The iPhone appears to get development priority in the mobile app space. This is odd given that Android has a considerably larger market share. Apparently the cultures are quite different. iPhone users are far more willing to spend money in the app store than Android users. So currently, the iPhone presents a better ROI, so it gets implemented first. Hopefully this will change as the Android platform continues to mature. There has been a dramatic increase in both the quantity and quality of Android apps in the market in the last year–a trend I expect to continue.

What do I love about Android?
Diversity of hardware options
There are only a handful of iPhone models, which limits your options as a consumer. However, this limitation it comes with the added benefit of increased stability. Since there is a very limited set of hardware to support, Apple can guarantee that apps will run smoothly on all the current iPhone models.

Android, on the other hand, is an open platform that runs on a very diverse range of hardware. There are many models made by many manufacturers. This presents a diverse number of options to the consumer, but at the cost of stability. It simply isn’t feasible to test every app against every known hardware configuration.

But because the platform is open, and any manufacturer may enter the market (unlike Apple, which is the sole designer and manufacturer), there are more designers and manufacturers driving innovation in the hardware. As a consumer, this means you have more options to choose from: large phones, small phones, phones with 3D screens, phones with external memory cards, phones with HDMI outputs, etc. etc.

Customizable user experience
I really like the ability to customize and tweak my phone to work exactly how I want it to. For example, I am using a custom keyboard called SlideIT. Rather than typing each letter one at a time, I just slide over the letters to form words. It is much faster than conventional typing. I just showed it to my wife and she loved it and asked me to install it on her phone. “Sorry sweetie, your iPhone doesn’t allow custom keyboards.” I had to tell her.

The customizable nature of Android goes far beyond just keyboards. Its baked in to the OS–part of it’s very philosophy. Almost anything can be customized or tweaked. And if it can’t, you can always open the source code and change it yourself.

Better app integration
Android makes app integration much easier. The iPhone requires the developers of the app to explicitly integrate with one another. For instance, if you want to use files from your DropBox or other third party app on the iPhone, you must find an app where the developer explicitly wrote in support for DropBox. If they didn’t, the app wont integrate. On Android, any app can access your DropBox because it can just look at its files via the file system. The iPhone does not expose its file system to the user in the name of simplicity.

As another example, if you are want to integrate with your favorite Twitter app you can simply install it and any app that supports sharing will be able to share over your Twitter app natively. Integration on Android is an OS-supported concern, its not left up to the app developers to decide what apps to integrate with. Its based on what apps you have installed and what actions they can support. This allows for much greater flexibility and lets apps integrate with one another easily by decoupling them inherently in the OS.

I prefer Java over ObjectiveC
Yes, yes, I realize my aversion to ObjectiveC is somewhat subjective. To me, ObjectiveC feels like an antiquated language. It just doesn’t feel natural. It has a much steeper learning curve for the average developer than Java. I imagine this is a non-issue once you learn the language. But it presents a high cost of entry that many are unwilling to pay. I admit that being a C# developer does give me a certain bias towards Java since they are so similar.

Freedom
Apple is very restrictive in what apps they allow in the app store. It is commonplace for an app to be pulled from the app store if it allows you to do something Apple thinks you shouldn’t be able to do. This type of thing never happens in the Android market.

While I consider Apple’s tight-fisted control over their app store as a disadvantage, I must admit that it does result in higher quality apps on the app store. They have much higher standards for an app to be accepted into the app store, and reject apps that don’t meet them.

In conclusion
I think it all boils down to the type if user you are. If you are a power user who likes to tweak and hack, then android is right for you. If you value stability and simplicity and don’t mind being restricted in what you are allowed to do, then you will love the iPhone. To each his own.

This entry was posted in Android, iPhone, Mobile and tagged , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

One Comment

  1. Luis
    Posted January 16, 2012 at 8:55 am | Permalink

    Nice article. Thank you for sharing Chris.

Post a Comment

Your email is never published nor shared. Required fields are marked *

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*
*