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 :)
Great that you already have something working.
There is an option to buy a developer phone:
http://developer.android.com/guide/developing/device.html#dev-phone-1
I heard that you can’t use it for downloading application from the market (Perhaps just need to use a new account?)
Good luck.
Thanks. I didn’t know about the option to buy a dev phone. From from what I can tell:
1. It’s not available in Israel.
2. For applications the emulator is good enough, I believe. The dev phone appears to be for people who want to do stuff like replace the system image.
Still… now I want one… should be fun to mess with it :)
Cooool! Show me the gui :)
:) Unfortunately there isn’t much to see in terms of GUI – it’s mostly preferences. But I guess most non-graphics apps are like that.
I want to buy an android as well.
I heard that HTC produces easy breakable phones, so paying ~2500 NIS for phone which can break after few months is a bummer.
In the US you can buy one with a 2 year warranty, which costs a bit more but I think is worth it.
It is also a bummer paying 2500+ for a phone, where, for the same price, you can buy a whole computer – LCD screen included.
So, when r u going 2 buy one and which?
I’ve started looking, but in general I would like to pay much much less than that. I’m looking for used phones on eBay, but there have been rumors that existing Google phone won’t be able to receive OS updates after 1.5 (aka Cupcake), which would suck for me as a developer.
I’m basically waiting for a friend of mine at work to buy an HTC G1 and maybe try my app on his phone. In any case it will take a while because even for this small app there’s still much to do. Luckily the emulator provides a complete environment for application developers that don’t go into the low level capabilities of the phone.