After having jumped into the pool of mobile app development head first (more on that to come), I finally have a little more perspective when it comes to developing for iOS vs. Android.
One of the first things that I did when I started developing an App for iOS is purchase an iPod Touch. There's no way I wanted to be using my iPhone for all my development work, and I needed a device I could acquire quickly, at a low cost (i.e. without a contract), and not worry about battery life, durability, etc.
Plus, I know tons of people with iPod Touches already—most are people who don't want to spend an outrageous amount of money on a 'smartphone' plan with one of the major US carriers, but want a great mobile computing device/PDA/media player.
So, buy the iPod Touch for ~$200, download Xcode, and you're good to go for iOS development. Plus, the whole App Store process, while it's a bit convoluted at times, is very well structured, and offers developers easy avenues towards getting an app from development to sale to success with little effort required.
Of course, as I'm getting nearer and nearer the App's release, I'm hearing calls from all corners of Geekdom, "When you gonna release for Android?!" And the more frequent the cries of distress, the more frequently I look around for ways that I can/should start developing for Android.
Task 1 - Finding an Android-running device on which to Develop my App
Well, I was thinking to myself, I might as well at least buy an Android-running device and check things out.
First problem: There is no iPod Touch equivalent for Android. Why not? The iPod Touch is a hugely successful product, and if it's true that Apple always vastly overcharges for hardware, why isn't there a manufacturer who can capture some of Apple's market with an iPod Touch-like device. Something that is basically an Android phone, without the phone?
Well, either the manufacturers know they can't compete with Apple (for some strange reason), or maybe justjimjpc, from androidforums.com, knows what he's talking about:
An Android that is not a phone .... What For ..???? I never saw the use for a Touch except for those that could not qualify for a phone ...
Maybe some day a maker will make such a unit with android ... but not a big market IMO
I don't know what kind of alternate reality this guy lives in, but I beg to differ with him: there is a market for the Touch—developers like me who just need a device to develop with, but not pay contract fees for.
Oh, and there are a few other people that like iPod Touches as well—something like, I don't know, 45 million people?
Task 2 - Finding a Good IDE in which to Develop for Android
Well, there does happen to be an Android SDK for Mac OSX, so that's good news. The Android developer website looks a little jarring, but it seems informative.
I heard mention of the Eclipse IDE, and it seems that's the way to go for Android dev, as there are special plugins/tutorials/etc. for it... but I've never used Eclipse—I'm more of a TextMate, Coda, etc. kinda guy, and even Xcode can be a little overwhelming sometimes. Hopefully TextMate, at least, is supported as a first class citizen of Android development tools.
Task 3 - Targeting an OS Version/Platform/Resolution/etc. for Development
I was glancing at 'Downloadable SDK Components,' and started getting a little scared... I saw in the list: Android 2.3.3, 2.3, 2.2, 2.1, 1.6 and 1.5...
Not only that... there are devices on the market today running each of these platform versions, and mixed with that, devices have vastly different hardware capabilities. One of the nicest things about iOS development is that I can target the iPhone 3G+ and iPod Touch running 3.2.x, and know that certain things will work, and others won't, and that certain things will run slowly, and others won't, across all iDevices.
Even a relatively simple app will require things like GPS interaction, different touch gestures, XML handling, filesystem access, etc.—and many of these things change a tiny bit from version to version of an individual device and OS. Keeping track of just the three main versions of the iPhone (3G, 3Gs, and 4) is hard enough—but worth the effort, since each individual revision exists in the hands of real users in the millions.
Why would I want to target even 10 different Android phones, especially since no individual unit comes close to the market penetration as one model of the iPhone?
Task 4 - Develop an App for Android?
I'm going to hold off on any Android development right now. For one, the complexity of targeting multiple versions of the platform, and multiple devices that have vastly different hardware capabilities, screen resolutions, etc. is simply not worth my time and effort.
Additionally, there's no way for me to get an Android device for development right now without paying a contract, or buying a used handset without a plan...
Finally, why develop for a platform that I don't use, and that I only know of two family members/friends who use? I know a huge number of iPhone users, and many teens and kids with iPod Touches. I can count over 20 in my extended family. I know more BlackBerry users (currently) than Android users—and I'm definitely not going to develop for BlackBerry!
Could my perspective on this change? Yes, most assuredly. But at this point, I can say with certainty that it's not worth my time/resources to try to develop an App for the Android market.