On Developing for Android... or Not

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

(Source)

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.

Comments

Just heard there may be a Galaxy S WiFi model which could somewhat be like an iPod Touch... which would be helpful for dev. (http://www.slashgear.com/samsung-galaxy-s-wifi-5-0-hands-on-15133876/)

However, there are too many unknowns so far: When will it go on sale? How much will it cost? Why the heck is it as large as a walrus? Why does it have a cheap plastic back?

Ah well... someday I might taste the Android juice.

Why not try a tablet or netbook for android? Android also has an x86 port. You pc at home is usually all one ever really needs. As well there is a community for the panda board, and pandroid release software. These would be cheaper than the iPod and offer higher functionality in comparison to the slow android devices/platforms. These arm socs' that support android support usually are available with better specs and lower power consumption on a ratio better than any iOS device. Supporting the current and emerging platforms has been apple's technique. Maybe some people need upgrade-envy? That ought to drive sales. Your opinions are very well founded though.It is obvious apple has been ahead of things from the start, with only minor hiccups in control in exchange for some awesome quality.

That would be a possibility, though I can use the Android emulator from Google on my Mac as well (plus, I have VMWare with Windows 7/Vista/XP on my Mac, so I could go that route).

What I really, really need, though, to do this right, is a physical device in my hand—the same one the end user is using. Without that, there's no way to test the real user interaction and any quirks that might crop up.

And, it's best to use one of the actual devices, rather than a hacked-together improvised version, too... even among the three iOS devices, there are tiny little differences (amount of RAM, screen resolution, etc.) that cause bigger issues, that would not be able to be seen in an emulator :-/

Jeff...I thought this pretty much summed it up...

"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."

if installed and set up correctly the Eclipse IDE has a handy plugin Android emulator for testing. A pysical unit is not needed. It allows for several user made device configurations, down to emulator skins resembling the actual devices. Although this may not be perfectly ideal, it may be sufficient to test for different devices. If all else fails, I saw a small tablet device for sale at walgreens of all places that was running android for under 100, I think. No clue how good/horrible it is, but to function as a physical cheap test bed device, it may be worth looking for. I would stick to the emulator though.