Android Development Proof of Concept

I started experiencing Android development with Eclipse and my Samsung Galaxy s 4G I rooted and unlocked. It was the nicest mobile computing unit I’ve ever bought. I thought why not write a mobile app for my phone? That’s how I started.

It was not easy to set up the development in the beginning but I managed to get Samsung’s USB driver so I can attach the debugger to the actual phone without using any virtual device. When Eclipse hit the breakpoint in a UI scenario, I was thrilled. I remember working at Windows mobile in 2006 where they had to hack Visual Studio 2005 to work with Windows mobile 6.0 and most of the applications were written in native code. Of course, things improved after .NET framework started on Windows phone but Microsoft is late on catching up on the mobile software market. Android has prevailed (over 50% market share in the US).

My initial idea was to write a GPS logger that would record coordinates and DateTime and upload to a Restful web service. However, there are many apps on the Android market which satisfy the same requirements. Although none of them has the flexibility of logging to a Restful web service, most of them do have the logger piece of the code done right. My goal is to familiarize myself with Android development so I thought why not just get a GPL licensed app and improve on it.

The app I found was GPS Logger. Installation of Eclipse, Android SDK, Java development kit were easy. The challenging part was figuring out which Android SDK to use. If you use an old version, you can’t take advantage of the new features of newer APIs. If you use the latest newer version, most phones can’t install your app.

I started to do the work of proof of concept. I was brainstorming about how to gather the location data on the phone and persist it remotely. You can do lots of analysis and other features with data stored in a database system but not XML files on the phone. It’d be super if Google has its version of SQL Azure but I don’t think Google has anything similar at the moment. To get started, I just wanted to store location data on a Microsoft SQL server on my home network. It took me a while to find the JDBC driver that fit. I wrote a SQL query that pulled some data from a table of 2 columns. That proved the phone could connect to SQL.

My next step is implementing a DBLogger class from the ILogger interface. I sent an email to the owner of the original project. When I get a reply, I will discuss my idea and design with the owner and get to coding.