Wednesday, June 9, 2010

My first Android App

As my previous post mentioned I went to google IO -- One of the smarter things they did was shower us with cell phones so I've spent the last few weeks (on and off) doing Android development.

I just published my first app to the Android marketplace (it's a free desktop widget that monitors your Tender inbox -- Tender is a support system I use)

My thoughts?


  • Android development environment is both better and worse than Xcode.  The reasons are much too numerous to go over but the main differences are Eclipse (Android) has some amazing run time type checking and validation -- If you type something in wrong in almost any part of the IDE it let's you know and recommends ways to fix it (it's really amazing that way) but it's also kind of slow & clunky (and very un-mac like).  Xcode is closer to the metal and feels like a good mac app but gives you more rope to hang yourself (on the plus side you can do some crazy cool stuff with Xcode that I haven't seen the equivalent in Android)
  • Learning Java isn't as hard as I had feared... Partly because I used to do a lot of C++ and it's pretty close to that and partly because it's not so different than Objective C in many ways.  Java as a language is actually pretty remarkably well thought out.
  • The component model of Android development is very interesting and in many ways innovative..  You can do a lot in android with very little work.
  • Targeting Android devices is interesting -- you don't know for sure the processor, screen size, input methods, etc. that your customer has so you work at a more abstract layer (for example I had to include three pieces of artwork all at different resolutions to account for that).  At the end of the day however it's just a matter of adjusting workflows and sort of accepting that on some devices it may not look perfect (it's very similar to designing web pages where you don't know for sure what kind of browser or screen size the viewer will have).   iPhone is very targeted -- you know exactly what the user will see and can really target that experience.
  • Publishing to the marketplace is an amazingly different experience.  I finally decided I basically 'exported it', uploaded it, typed in a description and added a screenshot, hit publish and *literally* within about 45 seconds I checked the Markeplace and it was live!  If I find a bug I can re-publish it at a whim and have it live within minutes... Amazingly nice
In the end it was a pretty enjoyable experience -- I've been using Android for the last several weeks but I believe that will come to an end about June 24th.....  I'll probably not do a lot more developing in Android but the experience is pretty reasonable and the phones are getting better and better. 

Long term I suspect Android will become the market leader and iPhone will be relegated to a second or third spot -- This is partly because Android is already at more or less feature parity (actually better in features) and is fast becoming 'pretty enough'

Having said that  a second or third place spot in the Cell phone market is still pretty freaking big and Apple will continue to appeal to a certain kind of customer who really appreciates the experience they provide.

For me, as I said, I'll be in line to get  an iPhone 4 and on June 24 I suspect my Android will stop being carried around very often.



No comments: