Salesforce Chatter for Android
My blog has been a little quiet since I left for Google IO a few weeks ago and this is primarily the reason why. In addition to my day job I’ve been working on getting up-to-speed on Android development. Google sent me a Droid about a month before the conference and I started playing around with some tutorials and writing a few apps before IO (smart idea to send out 5K Droids to spur development). I really caught the Android bug at the event and thought that the Chatter Developer Challenge would be a great way to kill two birds with the proverbial one stone.
So here is the demo of the application that I just submitted for the Chatter Developer Challenge. It is a Salesforce Chatter for Android app running on a combination of the Force.com platform, Google App Engine and a Google Android mobile handset. It utilizes Force.com Remote Access Applications with 3-legged OAuth for security. The Android application has the following functionality:
- Display your Chatter NewsFeed
- Update your User status
- Refresh your Chatter NewsFeed and store it in the local SQLite database
- Choose a project (custom object) that you are following and view its Chatter Feed
- Update the project's status
- Refresh the Chatter Feed for the project (including field changes to the record) and store it in the local SQLite database
App Engine recently started supporting 2-legged OAuth in combination with Google Accounts so that any App Engine application can become an OAuth service provider. Since OAuth support is baked into the Android platform I tried to hook up the Android handset as an OAuth consumer but could not finish in time to submit my entry to the Developer Challenge.

Since Android doesn’t play well with SOAP-based Web Services I think this approach in combination with JSON makes an appealing option. If you have any ideas, I’d love to hear them. I expect to write some more apps for Salesforce.com as the Android platform is fairly easy to grok. If you are familiar with using Eclipse with Force.com, App Engine, GWT or Java in general it seems much faster to get an app up and running with Android than with Objective-C for the iPhone. Just my $.02.