Over the past few weeks I’ve been programming for fun. I haven’t done this in a very long time and I’m very happy to find a worthy purpose for my free time. I started implementing my call-again-if-urgent cellphone mode, called Dindy now (DND… Dindy… get it? oh well) on the Android platform provided by Google.
Google provides an SDK and documentation that make it very easy to start working with Android – basically a very helpful Eclipse plugin with an emulator that actually runs the phone’s code, so you can test your application immediately. As for the specifics of my application – at first I had to find out the APIs for getting an incoming call’s state and how to realize a call was missed. Once I had that, the basic functionality was done after a few days.
However, I find myself agonizing over the creation of the preferences GUI. GUI programming has so many patterns for separating logic from presentation that it becomes a steeper curve to learn how to program for it than it is for the “low level” stuff. Preference objects, database helpers, view adapters, numerous factories – all needed just to let the user modify a not-so-large set of options. Granted, there is one complexity in Dindy’s preferences – the existence of dynamic profiles for which I had to create a small database. But still… it’s just too complicated.
I already demoed the basic implementation I currently have to a few people and got some positive and negative feedback. Once I have something complete with a polished UI I might post some screenshots here. I still don’t know if I want to charge money for it and whether I want to open the source (the two don’t contradict.) I might try charging a small amount at first (up to 2$ a pop) just to see what happens.
Oh… and eventually I’ll have to get myself an Android-based phone and see how the application works. It’s all nice and cosy in the emulator, but in real life things may get tough :)