Recently, the debate around me has been heating up over mobile platforms and their viability. Which platforms should we develop for? Which should we focus on and why? These questions and more are important to answer, because you have to make a decision. I might not have written a post, but then I read this
and was taken aback by the writer's lack of knowledge.
As a disclaimer, I should start by saying that I do not personally own a smartphone. I had a Samsung slider for 5 years before I finally had to replace it a few weeks ago. I then promptly bought, another Samsung slider. I want my phone to make calls and send text messages. Plus, I don't feel like paying for the insanely priced data plans. However, I have used an iPhone, Evo, myTouch 4G, G1, and a Galaxy S. I also own an iPad2 now, so I would say that gives me some additional experience similar to an iPhone.
Based purely on my previous sentence, the consensus will be that I like the iPhone because I love Apple. While it is true that I like Apple, that is not the only reason I like the iPhone, as you'll see.
I think the first and most important item to focus on is the hardware. The key here is the more hardware variation you have, the more difficult it is to develop a consistent product for that hardware. Cellphone chargers are a great example in the same domain. It used to be that every company would have their own port, or occasionally multiple ports, for charging their phones. This meant that every time you got a phone, you had to get a new charger, car charger, backup charger, etc. Now however, the standard is the MicroUSB port, and we're all the better for it. The obvious exception being the iPhone, but hey, nobody's perfect.
Now apply the underlying concept to the phone hardware itself. How many variations on the hardware are there for the iPhone? Currently, 3.
- iPhone 3GS, 3G, and original
- iPod Touch (however many generations they're at now)
- iPhone 4
You could even lump the iPhone 3GS and iPod Touch together, but I won't. The only difference from a development standpoint is the screen resolution. The iPhone4 has the retina display while the others don't. There are obviously memory, CPU and camera differences, but we'll leave those alone as they're too complicated to get into here, and surely will be once we get to the Android devices.
So we effectively have 2 or 3 platforms to develop for, where the only difference in resolution. Normally, this would be a problem, but Apple has taken care of this for you. The display is treated as the old non-retina resolution during development, and you just add higher resolution graphics that benefit on the retina display, but display no differently on the old display. The important thing to note is that effectively the following things show no variation:
- Resolution (Even though they're different, it's not a development burden)
- Physical device size
- Input methods (touch screen, buttons)
- Display capabilities (color, response time, etc)
- Outputs (headphone jack, apple dock connector)
Now let's move on to the Android phones. The problem here is there are so many variations I probably couldn't even name them all. Here is a basic list I pulled off of just the T-Mobile site.
- T-Mobile Comet
- Motorola Charm with MOTOBLUR
- T-Mobile myTouch 3G
- Motorola CLIQ XT
- Motorola DEFY with MOTOBLUR
- LG Optimus T
- Samsung Vibrant
- Motorola CLIQ 2 with MOTOBLUR
- T-Mobile myTouch 3G Slide
- Samsung Galaxy S 4G
- T-Mobile myTouch 4G
- T-Mobile G2
- T-Mobile G2x
That's 13 different phones from a single carrier. This doesn't even cover the Evo and Droid with their multiple iterations. The sheer number of devices is insane. Just to test on each of those devices, assuming a $100 unlocked dev model, you're already out $1300, and you haven't even started. As a bonus, the next big Android phone will be out in a week, so once you've bought all of these phones, they're already out of date. Pure madness.
Going beyond the sheer number of devices, each is different. The screen resolutions vary wildly. I know the standard for Android seems to be 480x320, but the Evo has a resolution of 480x800. The Evo was supposed to sell well and be a great phone. How do you account for a difference of 480 vertical pixels? Not to mention, the physical size differences. Touch targets depend on the physical size being big enough, regardless of pixel size. If the pixel density isn't standard, then the physical size isn't standard. What is fine on one phone may be impossible to hit on another.
Moving beyond the displays, each has it's own answer to inputs. Some have 2 hardware buttons, some have 3, some have 4, some have 6, some have directional pads or trackballs, some don't. Not to mention, it is possible to have an Android device without a touchscreen. I don't know of any, and I know the Android Market blocks them, but the Android Market isn't the only game in town.
So what is common hardware-wise between the phones? Honestly, I can't think of anything. The physical size is different, the displays are different, the inputs are different, everything is different.Winner: iPhone
Now we can get into the true guts of this argument. Android evangelists love it because it is open or because it isn't from Apple. Sure, I will grant you that, but you should love software because it is good, not because it is open or not from a certain company.
I think one of the key differences between the two is the ability to upgrade. When an upgrade comes out for the iPhone, no one is concerned that it won't work with their phone. They hook up to their computer and apply the update. Done. When an upgrade comes out for Android, you have to find out if your device is supported. Then you have to check and see that the carrier will allow it. Then you have to get it on to your phone.
Note that for Android, you have to investigate whether you can get the latest and greatest. It isn't a given. That is due to the "openness" causing a proliferation of customizations from the carriers and the hardware manufacturers. This is the same problem that cell phones have always had. No consistency, so they can't be updated. A perfect example of this is MOTOBLUR from Motorola. They skinned Android to make it look a bit prettier and have what they wanted in an interface.
Customizations are a big thing as well. Android is open, so it allows customization. iOS is closed, so it does not. iOS provides a consistent user interface, so the user always knows what a button looks like. Android varies, once again, but carrier and phone manufacturer. Not to mention, custom skins can be added to your phone. For a true look at these abominations, there is a tumblr for that
. Here is my personal favorite:
Who thought that was a good idea? Who thought that looked good? I see the Gmail and the Phone... fish, I guess, but what are the other two supposed to be?Winner: iPhone
The previous two sections are great to discuss/debate, but the real crux of the argument should always fall on sales/downloads. The key with any app is to make money in some way. For this reason, both have stores where you can purchase apps and both have ad platforms. The best part of this section, is that the only thing that matters are the numbers. The data won't lie, and you can't argue that lower sales are better, so let's jump right in.
Currently, Android has the larger market share. According to this article
, Android has 33% and the iPhone has 25.2%. Obviously in the market share category, Android wins. But, you have to look past the surface. Keep in mind, Apple did that selling, effectively, a single piece of hardware. As I showed above, Android has at least 13 different devices (if I had to guess at the total, I would say about 70).
However, let's ignore the explanation above and just make Android the clear market share winner. Because they hold nearly 8% more market share, surely equivalent apps would sell better on Android vs. iOS. If you believe that, you're wrong. Market share does not equal downloads. Case in point
. For every copy that was sold on Android, on average, 5 copies sold on iOS.
I think a 5:1 ratio is hard to argue with. You might say that is just a single app. True, so let's add the MLB app to the mix. The MLB CEO Bob Bowman said that sales are the same 5:1 ratio
for them. He also said that iOS users are more likely to buy, while Android users are more likely to pirate. That can be tied back to the "open" operating system. On Android it is so much easier to pirate things than on the iPhone.
The culture of the users also plays into this. Android users typically don't want to pay for apps. They think everything should be free. iPhone users are more willing to pay for things. To the Android users I say, that's fine, but remember that you get what you pay for.Winner: iPhone
I would say it's pretty clear which I think is better. Don't take this as me discounting Android completely. I plan to develop apps for it, but they will always come after iOS apps. They will be an afterthought. If I feel this way, others must as well. I know Rovio has had issues, and Smule has abandoned Android altogether.
Will these things hurt Android in the long run, probably not. The majority of Android users aren't buying the phone because it is an Android phone. They're buying them because they want a smartphone, and other than iOS, Android is the only player. Not exactly a great sign...