[CeBIT] 3rd Party Apps and Handset Design

It was inspiring to see a variety of new mobile phone form factors presented at CeBIT. Touchscreens and swivel designs, transformers and sliders - they did their jobs very well, providing a comfortable experience in the areas most important to their owners. However, one thought was always in the back of my head - how will the third party developers manage to create usable applications for these rapidly diverging control schemes and screen resolutions? Having done some J2ME development myself, I remember the challenges I encountered when simply porting a program from one handset to another (arrow keys and soft keys were mapped differently). In a world where popular phones have novel control schemes and features every half a year, is it possible to create a successfull J2ME/FlashLite app? Is there an alternative?

The promise of Java (and more recently, FlashLite and BREW) is definitely enticing. Write your application once and let the hardware vendors worry about implementing the virtual machine. Any developer will tell you that it never really worked - every platform has its own glitches and supports a subset of J2ME "JSRs", which are basically APIs for accessing various functionality (like video recording or sending text messages). The fact that a platform is 99% standard compliant is already not good enough for a commercial product, as it takes just one bug to render it unusable. Developers who we talked to at CeBit have to resort to compiling dozens of different versions of the same release - one per handset. Even though usability of such applications has never been great, it could at least be seen as consistent. The screen was always above the keypad and all phones had the standard set of number keys, soft keys and four arrows. Any extra buttons were rarely used, but it didn't really affect the overall experience. At CeBit, several handsets had screens located to the left or to the right of the keypad. Some were missing the number keys and relied heavily on touch-sensitive screens or controls. Several did not feature any displays or had really tiny ones. That's not to say that successful mobile application development implies cloning the same handset design over and over again. J2ME allows the developers to scale their applications and change control schemes depending on the features provided by the device manufacturer. The real problem was in device manufacturers neglecting this duty - Java application support hardly affects their sales. As a result, most phones usually get a run-off-the-mill J2ME MIDP 2.0 implementation without support for advanced multimedia functionality and cool control schemes. There is little hope that this will improve as devices get more and more complex. MIDP 3.0 promises to itroduce stricter control over the JSRs that get included with most phones, but even that will not solve the usability issues.

The solution could be quite simple. There is no incentive for the device manufacturers to refine the virtual machines used by Java or Flash since the majority of the users rely on embedded applications. However, one embedded application they'll soon have to get right every time will be the web browser. Apple's iPhone features a full version of Safari, which should instantly make all modern Web applications usable from the handset. It will definitely support the multitouch interface and various gestures. Here we are - a novel approach to the interface that augments the previously created applications, without alienating them. How long would it take to produce Java applications that used these, even if the virtual machine supported multitouch?

This concept, already dubbed "MoJax" for Mobile Ajax, could be the solution once mobile browsers become more powerful and data rates drop down. While it does not address problems concerning multimedia-related applications, relying on the Web could produce great software that would use optimal conrol schemes thanks to the browser embedded in the device. That could be the starting point for many people to try out interactive functionality and see that their phone is more than just a phone...