Tuesday, August 25, 2009

New Stuff In LWUIT

Due to the update on Java.net and various updates going around some news got lost a bit in the past couple of days. Most importantly, we just released LWUIT 1.2.1 which is a bug fix release that addresses some of the issues in the current drop mostly in the Ant task which we have no other way of delivering (since it isn't yet open source).
Another thing that was probably lost is a release of our internal BlackBerry port of LWUIT, based on many fixes from Thorsten Schemm it is still not as mature as his LWUIT-incubator port neither in terms of usage or in terms of stability/functionality. We are working to converge the best approaches from both ports and create a single functional port in the long run.

We will now set our attention towards 1.3, we already have some features planned and we are considering some other ideas. I would personally like to remove some deprecated and no longer supported API's to reduce the size of LWUIT, I already started a bit in that direction and got approximately 15kb less.

Sunday, August 16, 2009

Renderers vs. Factories Moving Ahead

Chen & myself have had a rather engaging debate this past week about moving forward with elaborate components in LWUIT vs. the way components were implemented in Swing and LWUIT in the past.
Both LWUIT and Swing have two types of components those who use renders and those that don't. In Swing all components have a model regardless of whether they have a renderer, however in LWUIT we don't have models for most components due to size constraints (JAR size mostly).

Both of us are generally happy with the design of the current List component, its use of renderers allows us to do amazing things. However, looking at future components built on top of LWUIT we need to decide whether renderers are justified for them or should we limit this approach only for List.

E.g. the tree component from a recent post was built without a renderer but still had a model to produce the data. To determine the appearance of individual nodes a factory method pattern was used. There are several advantages for such an approach as well as several disadvantages which is part of the reason why we are soliciting feedback from you guys who have experience using LWUIT and would like to indicate one way or the other.

Thursday, August 13, 2009

Unique LWUIT Quran Application

Fahad from Guided Ways wrote to us and the mailing list with some images and screenshots of the Quran reading application displayed to the right (don't be confused by the Java FX logo, this is a LWUIT application).
The user interface and feature set of the application is truly unique and shows just how deeply LWUIT can be customized. Fahad has also signed the LWUIT SCA document and intends to contribute some of his changes to LWUIT back to the community. I have no idea if changes would make it back to LWUIT itself but even if they don't they would be published for people to improve on and use.

I have seen quite a few applications of this type and have to admit that my expectations were pretty low for the UI. However, Fahad has been very successful in creating a truly unique and immersive look for the application that should inspire people of all faiths.

Friday, August 7, 2009

MajiPlayer 2.x The Best Just Got Frigging Insane

The majimob applications are demos we often use to show off how far LWUIT can go on everyday devices, media applications such as MajiPlayer are always great demos even when they are badly done... However, in this case I think majimob didn't just outdo itself but rather outdid anything I ever saw even in dedicated media devices. Just check out the demo video to your right and try it for yourself on devices by going to http://majimob.com/mob/ with your device!

I tried it on our S40 2mb device and it worked GREAT! REALLY fast!
It crashed in 3D mode when entering the "all" song categories on that device but as the guys from majimob say, there is a limited amount of what can be done with that amount of RAM...

I also tried it on touch devices and the feel is superior to every player I ever tried except for maybe that one... But when you add up features like OTA seamless free synchronization etc. you end up with a pretty compelling piece of software.

Tuesday, July 28, 2009

I Found A Bug In LWUIT


Submitting issues to LWUIT is pretty easy but we still get a flood of duplicates and questions in the mailing list so I would like to just clarify this "how to" to hopefully improve the signal to noise ration of LWUIT.

First off there is a public issue tracker available for all to search, vote and submit at https://lwuit.dev.java.net/issues/ please use it to make sure the issue you have wasn't reported. If you think you found an issue in LWUIT follow these steps to submit:

  1. Make sure the issue was not reported, use Google search with the word LWUIT and a description of the issue, this often finds relevant discussions.
    Make sure to include relevant discussions with your post so we have an indication that you followed this step, this means we will treat your issue as more thoroughly researched.
  2. Make sure the issue occurs in current SVN, we don't accept issues for older versions of LWUIT.
  3. Reproduce the issue with minimal code, the more code we need to debug the longer it will take to resolve. If you can trace the issue yourself by going into LWUIT's code this would be even faster.
  4. If there is a stack trace related to the issue make sure to include it.
  5. Produce screenshots or even a video of the issue, I find tools like Jing to be very helpful. Its also very useful since it can annotate the issue and provide us a visual explanation even if your English isn't the very best.
  6. Apply for an Observer role for the lwuit project, you need to create a user at java.net and then request a project Observer role. I repeat *Observer* all other role requests are automatically denied and the constant developer requests are just plain annoying... Observer seriously... Just read the introduction at lwuit incubator if you want to contribute.
  7. Submit your issues and use the attachment feature to attach screenshots, video explanations (not too big), concise source examples etc.
    Don't submit too much information either, try to be concise and visual so we can understand your issue properly.

FYI the gradient colors are unrelated to LWUIT and relate mostly to the number of colors supported by the device...

Thursday, July 23, 2009

iFeud - The Dangers Of Mobile Application Development

The Daily Show With Jon StewartMon - Thurs 11p / 10c
iFeud
www.thedailyshow.com
Daily Show
Full Episodes
Political HumorJoke of the Day
Normally I try to keep this blog focused on LWUIT, but this daily show segment about the fart application legal battle is just hilarious.
Future LWUIT fart application developers should probably watch this video with interest ;-)

Sunday, July 19, 2009

Book Club

Biswajit, who I mentioned in this blog before as the author of java.net articles has been writing a LWUIT book for quite some time, this effort is finally turning into a product.

Both Chen and myself are thrilled to see this book coming out, I would love to have a copy but I'm also concerned I will read the descriptions and inadvertently "quote" when writing about LWUIT myself.

This is the first LWUIT book coming out, we are aware of at least one other book coming out at some point in the future (neither book is authored/co-authored by Chen or myself).

Hopefully Biswajit's book will sell well, prompting more LWUIT books in the future...

Roy Ben Hayuns office is right across the hall from us at Sun's SIDC offices. There is probably no one who knows more about Symbian/Java than Roy.
This book came out a while ago but I was just waiting for a "books" post to post about it.

Symbian as a platform has many issues and abilities, unlike most native platforms Symbian allows you to do almost everything from within Java and that gives you a huge edge when targeting leading mobile smartphones.