I just recently finished my push to get a small application called Screebl ready for the Android Developer Challenge 2. In retrospect, it was a good exercise to go through for a number of reasons. Here's a list of the top three things that I learned (or relearned) from ADC2...
- Software development is great fun. I haven't had that much fun writing code since my Commodore 64 days. It's nice to write an application that is small enough that I can get my head around, and yet has the potential to still be really useful to people. If you start your development early enough in the adoption phase of any new platform you can experience this. Android is just on the cusp of getting really, really big, and that early-Internet-days feeling of applicatoin development will soon be gone. Things sure are fun right now, though, aren't they?
- Writing good software is really hard. I was watching the Google Android Groups as ADC2 drew to a close, and I must say, there were some sad stories from developers who had obviously put huge amounts of time into doing development for the contest, but had submitted incorrect APKs or apps with major bugs. I saw what seemed to be many devs fall prey to the same old set of errors that those of us who have been doing software development for years recognize and fear.
- Polish is better than feature. I found myself continually being tempted to "add one more feature" to my entry, rather than spending what limited time that I did have working on smoothing out the UI bumps, testing, creating docs, designing appealing logos, making videos, testing, and oh yes, testing. Whether it's in a contest like ADC2 or on the market, applications have a very low chance of engaging a user as it is. Throw in an ugly UI or crippling defects, and your chances drop to zero very quickly.
Anyway, I don't want to get all preachy on everyone, but it was a great learning experience. I'll be doing Android development for a long time to come as a result of ADC2. How about you?