I have been recently digging into Mobile Programming, I practically tried out the J2ME polish GUI framework,
Although the GUI made with Polish looked pretty decent, I realized that The User Interface was not what I was looking.
I started scourging the web most of all Stack Overflow and formulated certain rules :
- Java ME is ubiquitous, so this would be a good runtime to start my programming off with.
- The GUI framework should be such that it should give me full control of drawing on screen at a lower level a la Flash for Desktops.
- The application should be portable in tune with WORA, and run on variety of phones, independent of resolution, screen size etc.
- Support for Animation.
In my search for the ultimate GUI based on the above rules, I found several more than Polish, such as LWUIT, MiniME, Nemo.
Although I have not been able to try them out.
What GUI framework would you recommend as per the rules formulated above?.
I think the best in j2me is to write you own custom GUI, with all the features you need, not more not less. That way you save space not having stuff that you don't want.
I used LWUIT some time ago. It provides a lot of useful widgets and let's you arrange content on the screen using layout managers, similar to those used in Swing. Additionally it provides a tool to theme your GUI in a quite sophisticated way. It's worth giving it a try! I could realize almost every graphical idea I had in mind. Almost .. that was a problem for me. I guess whichever GUI toolkit you use, if you have rather specific ideas how your GUI should look and feel, you'll end up in missing certain capabilities and probably go better with writing your own small framework, as Lucas said.
Using your criteria I would like to compare a library we are using at the moment, called J2ME GUI, which you can read up on at http://www.garcer.com/.
- It's in Java and targets MIDP2.0 / CLDC1.0 devices.
- Its predefined components can be extended and then you can override their Paint events to create any component of your choice.
- Compatibility is one of its main features, catering for the low-end handsets as well, so it's lightweight and compact.
- Animation is not supported directly in the version I am using at the moment. It could be implemented by creating an animation component and utilizing its built-in timer events. That's how we are currently planning to implement an animated downloading icon in one of our new projects.
Hope this helps.
Though its an old post, in case you have eventually created your own framework, I still think you should try LWUIT.
The developers are not being idle at all - LWUIT in 2009 is not even the same as LWUIT 2011, and they promise that LWUIT in 2012 will be much better!
Among the features LWUIT has are the following:
- Ability to develop once, and port everywhere [almost - iphone porting is one of the gifts
we are getting in 2012]. That's trully Java!
- Animations, Animations and more Animations are possible within LWUIT
- Low end devices are catered for as well.
- IO (File system, Storage, and Network Connections) have been abstracted to allow easy porting without having to edit code for each platform. Connections have been buffered, XML and JSON parsing can be done seamlessly etc
- The theme maker (called Resource Editor) is so awesome - the designer just has to finish creating the GUI, and all that is left to do is embed functionality codes! It also generates a Netbeans project for you, containing 4 ports already [Desktop, MIDP, RIM and RIM Touch].
For anyone that comes across this Q, or even the original asker (is that a word?) I think you should try LWUIT