I’ve been writing programs for twenty years now, and writing about the process for at least ten. While I’ve written a few articles on mobile programming in general, I haven’t really written anything about the process of developing for Android. I certainly haven’t shown anyone publicly. While I was supremely confident for many years (even before grad school) that my C/C++ skills were mighty mean, I’ve only been writing Java/Android apps for about 6 weeks now. As such when it comes to the tools of the Android trade, I (and I assume many folks out there) are still getting it right. Though I’ve built myself up a nice little corpus of Android apps in this time (55 and a couple of games as of yesterday), the real elegance and nuance of development on the platform won’t come through in my daily process for some time yet. I still run into a lot of “simple” problems, and have a great bit of room for improvement. As such I feel it’s the perfect time to give a peek into my development process. I took a 6-hour time lapse video of my development laptop in its entirety, with one screenshot being taken every ten seconds. Enable YouTube annotations to enable my running commentary.
This came out to be a one minute and 38 second video, which encompasses the development of Skillful Surround (released in the app store 7/19/2011) in its entirety. From start to finish, I modify a basic panel class (from my previous work, but you can grab one from the lunar lander android example) into a puzzle game “Skillful Surround”. This unedited view includes my development (and publishing) process with warts and all. I design graphics, code around bugs and limitations, research problems on stack exchange, make big mistakes and re-do simple functions etc. For anyone looking to get into Android development, it should be a refreshingly honest portal into the process. I use no custom software, nor commercial software other than the cursed OS that came on my laptop. I should have rebooted into Ubuntu before I ran Eclipse (Eclipse, the Android SDK, Filezilla and chromium are all available on Linux too, of course), but I was still waking up when the idea came to me.