Last day, I happened to read about Android programming. I also tried their ‘Hello Android’ program. I was really surprised (and happy) to know that Android programming is done in Java. That means I don’t have to learn any new languages. (Ofcourse we can program in C/C++, but thats a different case). But Android doesn’t use JVM to run these programs, instead it uses another VM called Dalvik VM. All android programs are under the control of this VM. This VM also controls the lifetime of the programs, that means Android can stop your program to free the resources!

Programming for mobile devices brings up new challenges -

1. The small screen size - The small screen size means that the UI should be very simple. It shouldn’t be filled with lots of icons and other widgets that we use while we program for 15” desktops

2. Small amount of memory - Mobile devices have small memory, so the programs should use them efficiently. The program shouldn’t hog up too many mamory resources.

3. Uncertain Network - Mobile devices are on the move, so the network won’t be always available.

In short, when we program for mobile devices, we should program with the worst case scenarios in mind. It will help our programs to be robust. Another challenge is that our program is not at all a priority for the user. The mobile is first a calling device, then a SMS device, then a music player, then a camera, and then (if the mobile doesn’t provide additional facilites) comes your application! So the application we write shouldn’t distract the users from all the foresaid activities. Also mobile phone is, well.. mobile! Its not tied to the desktop. Even though this gives a lot of restrictions, it also gives a lot of possibilities! And thats the possibility that we should explore. The other interesting features can be the various sensors (motion sensor and touch sensors) in Android phones. All the Android features are available for the programmer via the Android API.

I have decided to explore Android, but that’ll have to wait atleast a month as I am having my exams now :(