Tuesday, 26 August 2008

LWUIT, TWUIK and YahooGo

In past months there has been a lot of buzz around two user interface toolkits for mobile java applications; TWUIK is a commercial toolkit that provides a snazzy user interface with cool transitions and pixel perfect graphics. Yahoo Go is supposed to be 'the best Internet experience for your phone'. And LWUIT is an open source toolkit that provides a snazzy user interface with cool transitions and pixel perfect graphics. But first: why should we bother with these toolkits in the first place?

Why bother with a user interface toolkit in the first place?
The answer is simple; building a user interface using java mobile edition is really hard and gives disappointing results. Either you program all user interface widgets yourself (writing code to draw textboxes is nostalgic, but not very productive) or your interface looks quirkily different on every device type.

TWUIK by Tricastmedia looks cool, but i've known people who tried to buy it and got no response (phone or email) from them. You can't test drive a demo version of their toolkit or download it. So my conclusion is they aren't serious about their product.

YahooGo is Yahoo's product to create an ecosystem of mobile apps and widgets. Strictly speaking, its not a UI toolkit, but a app/widget creation tool.

LWUIT is a fairly recent addition by Sun microsystems and adds a Swing type programming to java micro edition. Seeing as LWUIT provides a demo application i was able to test it on a number of KVM's. The proposition that LWUIT offers is that it offers the same cool user interface on any device (although it requires CLDC 1.1 which rules out 50% of devices currently in use). Here's how it fared on a number of Java Micro Edition runtimes:
  • Sony Ericsson JP5 (K750i): runs perfectly
  • Nokia S60 (6121): runs perfectly
  • HTC/QTek 9100 Tao Intent KVM: Some quircks.
  • IBM J9: Fails miserably.
  • RIM BlackBerry (8100): Fails miserably.

Admittedly, i've known more applications to fail on RIM Blackberry initially due to its deviant threading model, so that might just be that the demo code wasn't written properly for BlackBerry.

So is this real progress?
Well not quite yet. On the devices it worked on, LWUIT looked great and if you are targeting high end smartphones and don't care about BlackBerry's it will probably work for you. But if you are looking for a toolkit that will enable you to distribute cool looking applications on the majority of devices in use today you will be disappointed. But as older devices are replaced by newer ones in a year or two we could find ourselves wondering how we ever coped without LWUIT.