Quote:
I wrote a simple iPhone game (it's a port of a DOS classic by the way, it's called Snipes! and you can all go get it if here you're feeling nostalgic
), and even though I considered porting it to Android (well, at least for a few minutes
), I would never ever be able to justify to myself spending time on it.The problem starts with the SDK and dev tools. They are all freely available, but it will take you at least a full day to get them up and running. You need slow, bloated, inconvenient and overly complex IDE to be able to work somewhat comfortably. You need a dog-slow simulator that makes it almost impossible to do quick fix-and-debug cycles, since it takes minutes to start up each run. You cannot do _any_ preliminary performance testing on the simulator (the iOS simulator isn't representative for the device, but at least on iOS you can to comparative profiling using Instruments). All peripheral debug/testing tools need to be installed and configured separately and many do not integrate with NetBeans or Eclipse.
So I'd say the dev tools suck big time compared to XCode, which has many flaws, but at least it is fast, easy, full-featured, well-integrated and documented, and you'll have it installed within minutess.
Even if I would have gone through the effort of setting up the development environment, I would still be stuck, since the 2D graphics and sprite framework I used was not available on Android, nor any credible alternative. If I would have to do all the sprite stuff and the animation effects I used, it would have taken me at least 2 months on top of the total effort to just port the game logic. The same problem holds for many other third-party frameworks: iOS has a very rich ecosystem of high-quality, freely available third-party libraries.
And then there is Java. I know different people have different preferences if it comes to programming languages, but anyone telling you Java is 'just as nice' or even nicer than for example Objective-C simply never used anything but Java for anything non-trivial. I've been developing software for over 10 years, with over 2 years of experience in many languages (Java, C, C++, Objective-C, Python, PHP), and I think I can honestly say I'm a polyglot programmer by now. I can only say that Java is a terrible language to develop in. It's too verbose, too restrictive in how you are supposed to do certain things, it makes simple things hard, the standard libraries are a big convoluted mess full of legacy stuff, it's slow to compile and start, and the whole language is very archaic and static, missing many of the modern features of other languages. It's a PITA to work with, and I would never voluntarily choose to use it over some other language (even C++), unless absolutely necessary.
So all in all, I can verify that at least for me, this article is spot on. It's not even so much that I think Android would not make me any money (it's only a hobby for me, not my day job), it's just too painful and annoying. XCode + Objective C + Cocoa = fun, Android + Java + NetBeans/Eclipse = pain. I would rather port my game to WP7 than Android, because I know from experience that Microsoft dev tools are fantastic and pleasant to work with.
My brother who used to be a big Android fan but switched to WP7 a while ago confirmed the sorry state of Android apps many times as well. All the apps from big companies are great and very well done, I'd say almost on par with iOS. Then there is a *huge* quality gap, where the iOS App Store is full of great applications by small developers, this whole category is almost absent on Android. With some minor exceptions, the indy/small developer apps that are availble on Android are inferior to even the mediocre ones on iOS. It's this category that makes the iOS app store so interesting to find new stuff, not the Facebook and Google Apps you have on every other platform. In terms of crapware made by wannabe-developers though, Android definitely has the upper hand
.






.