Where is Io 1.3 has been released, and is available for free on the Android Market. Most of this release was behind the scenes refactoring, as I tried to get this into a shape where I could do useful animations. Being a good little agile minion I made sure there were some user visible enhancements for the release. There are only 2, but they should be useful:
- Time hash marks so you get a good idea of how far in the future I’m displaying
- The main screen will actually update over time (before it was just drawn on start or rotate)
I learned a heck of a lot about the Android state model; threading in Android; when certain threads like to stop and start relative to the state model; how much the Java thread signaling model leaves to be desired; the fact that google knows that, and created this really nice Handler infrastructure to do async message passing; and that it’s really important to have good utility functions when you are converting between 3 different time schemes.
I also broke down and learned how to use the Eclipse debugger on Android applications, as one of my bugs was just not finding its way to the surface (the afore mentioned time conversions). Holy crap. I am seriously impressed with how good and intuitive the integrated debugger is when it comes to Android apps. Nicely done folks.
The project has gotten me to appreciate Java again. Java was never my favorite environment, but with the support in eclipse, Google’s quite tight API set for Android, and emacs keybinding support, I’m now about 1/2 as productive in Java as I am in Ruby. That’s saying something, as previously that number would have been 10% or less.
Now that I’ve got the basic threading and signaling going in this application, I’m going to see about some animation on startup. Maybe I’ll even get that done in time for Frank’s Android talk on Wednesday.