I recently made a post about J2MEPolish, but have since made the decision not to use it and go with LWUIT instead. JavaME’s core UI support consists of the lcdui package and not much else; which is very basic and looks-wise not what your clients are going to expect in 2010. Which begs the decision of which 3rd party library to use. The choice has not been clear cut, and from what I can tell J2MEPolish was the best offering for a number of years. However when I started to use it, I found the build process it uses to lack the claimed compatibility with recent versions of both Eclipse and Netbeans. Furthermore, when making posts to Enough softwares forum, answers weren’t forthcoming and from what I can tell the project seems to be losing steam. Not a good starting point when using any technology.
Enter LWUIT, until recently the pet project of Shai Almog, a developer at Sun, this library has just made its status as an official Sun JavaME API. It’s approach of following the Swing model where practical, being code-centric and being supplied with a nice cross-platform Resource Manager for packaging fonts, styles and other files makes it immediately attractive and usable by any Desktop UI developer. I was happily coding right away and got further in half a day than I had in three with J2MEPolish. Its graphical effects look as thought they could be heavy for older phones, so if backwards compatibility is important to you this is worth consideration. For forward-looking proejcts on increasingly powerful modern devices, though, LWUIT offers a pleasing opportunity to make genuinely modern looking Java MIDlets.
Importantly, the project is in active development with version 1.3 due for release soon, supporting more Layout Managers and with fully implemented on-screen keyboard amongst other improvements. If you’re trying to choose a UI library for your next JavaME project, I would strongly recommend checking it out. You can start at Shai Almog’s blog, here: http://lwuit.blogspot.com/