Android App Development

Google has revolutionized the smart phone industry with its Android Operating System. Android is an open platform with the philosophy "all applications are created equal", which means Android does not distinguish between core and third-party applications. An Android app can seamlessly integrate features available on the phone like camera, contacts, GPS, accelerometer, magnetometer etc with data from the web. Android was created to run on a wide range of devices from mobile phones to tablets and does a good job of not making too many assumptions about the underlying hardware.

Android is a multi-tasking OS that allows background processing. However, unlike a desktop system that can have unlimited virtual memory through swapping, a mobile device has hard limits on maximum available memory. So in order to achieve the multi-tasking effect, Android saves the application state when the user leaves an app. Android will kill (brutally!) the least recently used background process when the phone is running low on memory. When the user returns to the app, it is quickly loaded with the last saved state, so they get the feeling that the app was always running.

However, there are cases where the application should continue running in the background without being killed. A good example would be a music player that continues running when the user is checking emails. Android has support for Services to deal with this scenario. Services are similar to daemons in a UNIX system. Applications can also "wake up" on receiving external triggers like an incoming SMS or a push notification from a server-side app. All the above features allow the creation of compelling applications on the Android platform.

Ever since the release of Android, more and more handset manufacturers have come up with Android based phones, and currently there are a multitude of models to choose from. On the one hand this is good for the application developer, who
will have access to a large customer base. However, the flip side of this is that the application will need to be tested in an ever growing number of devices. Coupled with different versions of Android, the developer ends up having to deal with a good many number of combinations to test. This we believe is a major drawback from a development point of view.

We have been in the forefront of Android based application development ever since it launched. We are familiar with most of the APIs offered by the Android SDK. Among the applications we developed include a Reader for Microsoft Word, Excel, and PowerPoint documents, a PDF reader, an expense tracker app that enables companies track employee expenses while on the go (this application caches data locally in the SQLite database and synchronizes with the server when it gets a connection), and an app that allows physicians see patient details and capture charges while doing the rounds. Another app detects the
user's current location through GPS and changes their profile settings (ringtone, background image, speaker volume) - a useful feature if you want to automatically change to vibrate mode when entering your office.

Our expertise spans the following areas:

  • Syncing of local data with remote database
  • Web service (or REST API) integration
  • OAuth authorization
  • Interfacing with the phone through the SDK: camera, contacts (address book), SMS, MMS, calls, GPS, accelerometer, magnetometer
  • Video (including WebM format, which will be directly supported in Gingerbread)
  • Tight integration with Google products like Maps, Docs, GMail etc
  • Services and background processing
  • Applications requiring push notifications

To summarize, we have expertise in almost all areas of Android. So if you want to create the next world-changing app, get in touch with us.