I recently decided that it would be a fun experience to make a mobile game with my children (aged 7, 5, 3, and 0, each contributing per their age), drawing on their unbounded creativity and openmindedness, while making it an educational experience about the technology, the code, and the commercial process after publishing to the market.
I've tried to casually make games for Android before, to discover that the Java-platform SDK just doesn't foster a love for code: the APIs are unelegant and obtuse, and the Eclipse IDE, while very powerful in its own way, just never feels like home.
It makes it something that I don't really look forward to, which is weird because I love coding.
What really hurts my motiviation, however, is the absolutely brutal experience that is the Android emulator.
I recently upgraded to a beefy new machine purely to try to run that thing at a tolerable speed, to find that it's just as slow (I haven't even attempted the Honeycomb emulator, as it's purportedly beyond unusable). Compared to developing for the iPhone, this puts Android at a serious disadvantage. I suspect it's the reason why many Android applications just aren't as polished.
There are some very real technical reasons why it's such an abomination (namely that it's a full ARM emulator, whereas the iPhone "emulator" is an x86 instance running x86 code), but the fact remains that it seriously hinders productivity.
I still believe in the compile seldom model of productivity, but such a process is only possible when the platform is well known, well documented, and proven. Unfortunately that isn't entirely the case with Android, where often you're simply mixing things up and running it to see if it adapts as expected.
With the increased availability of the OpenGL ES API in the NDK, however, I've now found a beautiful medium where I develop in Windows — with Windows x86 binaries against an OpenGL ES emulator (a thin layer ontop of OpenGL) — simply reusing much of the same code in the Android project.
My productivity and enjoyment has absolutely blossomed. Better still, much of the same code is immediately portable to iOS, which is an important consideration.
Of course I need to consider the limits of the platform — smartphones are getting pretty powerful, but they are weaklings compared to a modern desktop — especially the upcoming dominant platform (tegra2), so I signed up for an nvidia tegra2 development kit. I'm fully willing to pay the cash, but it turns out that you need to be approved and I still haven't been, two weeks after applying. I guess I'll have to sign up again with some fantastical account of my great success as an EA-sized gaming house.
That's kind of annoying. Other Tegra2 platforms, such the gTablet, aren't even available in Canada.