Why Android is currently my favorite mobile platform

First, a recap of where I am coming from.

  1. I have a day job. Mobile development is a hobby/side pursuit.
  2. 90% of my ‘revenue’ comes from billing clients to build custom mobile applications on their behalf. The other 10% is from original apps via ad revenue and paid apps.
  3. 75% of my time is spent on original apps that generate little to no income, and will likely never pay for themselves in terms of development time, but I get the satisfaction of actually seeing them used and building my skills.
  4. Currently, I port most of my apps to both Android and iPhone(MonoTouch). Unless Apple decides to block them for some reason.
  5. I /want/ to move to WP7…but I just cannot bring myself to make that jump yet. When I can demonstrate the ROI for what I do, I imagine I can ramp up pretty quickly, but I just don’t see it yet.

As you can guess, minimal investment is pretty key for me, given that most of the items I work on are essentially being given away. The following ratings and categories reflect my particular point of view. There are a ton of other considerations, these are just my current hot buttons for mobile platforms at the moment. Your mileage may vary.

Development Environment:

  • Windows Phone 7: Visual Studio. I’m a .NET developer by trade, what else needs to be said…it’s good. (+1)
  • Android: Eclipse. I was VERY pleasantly surprised at the level of effort required to get running with Eclipse and Android. It had been a few years since I had visited Java-land, and the polish level is very nice. I miss a lot of the .NET Framework classes, especially when it comes to dealing with XML, but overall, Java/C# are pretty easy to flip between. (+1)
  • iPhone/iPad/iPod: MonoTouch. Honestly, I’m amazed that something like MonoTouch even exists – it was such a great opportunity to leverage my .NET/C# skills on the iOS platform. 90% of my revenue to date has been directly due to this tool, but I have to admit it’s a little rough around the edges - there are some parts that seem to be ‘magic’ and it can be very delicate. I’ve never been as afraid to update my environment as I have been with MonoTouch and MonoDevelop working together on a billable project. (-1)

Marketplace Developer Fees :

  • Windows Phone 7: $99 (annually). Unlimited ‘paid’ apps. FIVE (5) ‘free’ apps per year. If you want more free apps than that in a given year, they are $19.99 apiece to publish. Given that I /do/ have a day job, I would probably never hit that limit, but the fact that it exists bothers me. Update: It would appear that MS has raised the ‘free app’ limit to 100. Still $99/year though. (-1)
  • Android: $25 (one-time). Twenty-five bucks to Google buys you all the apps you can publish, indefinitely.  Yes, this means there is a lot more junk floating around the Android Market, but that’s where those user ratings come in. (+1)
  • iOS: $99 (annually). Unlimited apps – IF you can get them past the sentries on duty for the App Store. If you have a client paying for app development, this is minimal, but if you’re developing free apps, it’s just another layer of recurring overhead. (-1)

Deployment:

  • Windows Phone 7: I’m not entirely sure as I have not done it myself (yet), but I can say with some certainty that it’s less restrictive than Apple, and more restrictive than Android. (-1)
  • Android: Package the .apk. Upload it to Android Market. Instant gratification! Downloads begin immediately. (+1)
  • iOS: UGH. Build with the ‘App Store’ certificate. Submit. Wait. Get rejected for some inane reason. Fix. Submit. Wait. Hooray! (-1)

Alternative Markets:

  • Windows Phone 7: … nope.  nada. zilch. (-1)
  • Android: Not only are there tons of alternatives to Android Market (which are often free), you can actually distribute your applications YOURSELF! As long as the user’s phone has the ability to enable direct installs, you can just ship them an .apk file (email, ftp, http download, etc) and they can install it. (+1)
  • iOS: Well, kinda. If you want to count jailbroken iPhones. Or the 100 users you can deploy to manually as ‘ad-hoc’. Or sharing applications with other developers who can upload them with their developer certificates. But not really. (-1)

Market Share: see here

  • Windows Phone 7: Umm, yeah…not yet. As a .NET / Microsoft guy by trade, I very well may purchase a WP7 phone next, but I’m not in any rush at the moment. Now, if it does take off, I guess I will be late to the game, but again, since most of my apps will always be free, it doesn’t penalize me that much. (-1)
  • Android: It’s not yet at Apple numbers, but the adoption has been pretty astounding. (+1)
  • iOS: Still pretty much the undisputed champion of smartphones for the markets I target. (+1)

So there you have it. If I have clients who are specifically looking for WP7 or iOS apps, then I’ll pay up. Otherwise, I may just begin focusing solely on Android.

What other factors play into /your/ platform decisions for mobile development?

Am I missing out on something?