Living with a Dream, an HTC Dream
I realized that I haven’t blogged since I went out and bought my new HTC Dream Android phone from the local Rogers shop. I guess that makes sense since I’ve been busy when I had free time in the evenings and weekends playing with it. First, I had to figure out how to get the Android tooling to hook up to it via the USB cable. Then I went about getting applications running on it and downloading things from the Android market (currently Rogers only has free apps, which is probably OK for now).
The first app I wrote was a stopwatch app that uses the sensors so I can tilt it to start and stop it, something I can use to time curling rocks in the winter. But there are lots of stopwatches out there so it’s probably not worth going through the effort to get it up on the market. But it was awesome to get into that mindset of a mobile application developer. I’ve been doing tools for quite a while. If you want to build good tools, you really need to get into the mindset of your customers. But then, that’s true of all product development.
Of course, I’m using Eclipse to build these apps. There are a couple of things that bug me about the Android plug-ins, including their insistence you set the SDK location preference, even if you don’t have Android projects in your workspace. I’m also using the CDT to work on native apps using the upcoming Android NDK (native development kit) for native libraries. And I’ve already blogged about how mixing JDT and CDT natures in the same project pretty much makes the Project Explorer unusable. I’ve also added egit to the mix as I store the code on a little Linux server I have at home, and egit is still has a way to go to be ready for prime time. Having said all that the IDE is definitely usable and I’d hate to have to do this stuff without it.
So my next step is to try and figure out what makes a good mobile app. The power of these little machines makes anything possible. Their connectivity with wifi and 3G opens the door to great internet apps. I’d like to see the bluetooth connectivity (once they release Android’s Bluetooth API) used to connect to peripherals and other devices. And, of course, the HTC phones have 3D hardware acceleration (despite not having hardware floating point, but that’s typical I hear), making it possible to do some neat little games. The possibilities are endless, you just need to figure out what people want to do on these platforms.