For about a year now i have been using the mobile Gmail application and i recently upgraded to version 2.0. With all the media attention on the user interface for iPhone, Android, Blackberry's and Nokia's with touchscreens its easy to miss what is probably the worlds most frequently downloaded and used mobile java application.
Several things about mobile Gmail are striking:
- Simple, usable interface (No attempt to be an iPhone)
- One application - all devices. Same application runs on most devices with only minor adaptations to use device specific softkeys.
Simple usable interface
With all the handset manufacturers falling over each other trying to mimic the iPhone user interface its good to see an application that does not resemble the iPhone at all and is still cool and easy to use. Whether you use mobile Gmail on Windows Mobile, Nokia S60 Nokia S40, Sony Ericsson or Blackberry it looks the same and is completely intuitive. The lesson here for software developers is to keep the user interface consistent - don't try and have different user interfaces on different devices.
One application - all devices
There are several strategies that software developers can follow when writing mobile applications. The ' fragmentationists' as i call them think you should develop seperate applications for each handset type. So fragmentationists will write a symbian application for nokia s60 devices. A dot.net compact application for windows mobile etc. The j2me-polish postcompiler is an example of fragmentationist thinking.
The 'integrationists' on the the other hand think it is better to write one application which adapts to the device it is running on. Mobile Gmail is an example of the latter. It is a java application which runs on most phones and adapts its navigation and user interface as little as possible to suit the device it runs on.
There are of course benefits to the fragmentationist approach. Cool features (camera viewfinder or cell id retrieval for example) are often easier to access using a handset specific programming language. Implemention of Java API's is often incomplete and unreliable.
However integrationist development is cheaper (one codebase instead of several) and more future proof than fragmentationist development. Today's fragmentationist technology (i.e. Symbian or Windows Mobile) could easily be tomorrows Psion (remember them?). If more software developers pursue this strategy it might tempt handset manufacturers to implement Java ME more consistently on their devices. And Google has proven that it is a viable strategy.