LwUIT 1.5 erste Erfahrungen

Sun hat mit „Java Mobile Edition“ (JME) die Softwareplattform geschaffen, die weltweit auf Milliarden von Handys funktioniert. Die Plattform ist inzwischen in die Jahre gekommen, und besonders für die Gestaltung der Benutzerschnittstelle bietet sie nur wenig, um die Möglichkeiten heutiger Handys auszunutzen.

Mit LWUIT  wurde ebenfalls von Sun eine Bibliothek für die Gestaltung von Benutzerschnittstellen vorgestellt. LWUIT unterstützt Touchscreens und Animationen. Ein Jahr lang konnte man zwar in dem Blog eines LWUIT-Entwicklers die Weiterentwicklung verfolgen, es gab jedoch keine neuen Versionen. Ich hatte schon befürchtet, dass der neue Eigentümer Oracle das Projekt ganz einschlafen lässt. Das der genannte Blog bei Google liegt und nicht bei Sun bzw. Oracle wertete ich ebenfalls als Indiz, dass das Projekt für die Firma nicht besonders wichtig zu sein scheint.

Anfang August 2011 ist schließlich doch noch die Version 1.5 veröffentlicht worden.

Erfahrungen beim Upgrade.

Die Größe eines Handyprogramms ist immer noch ein Thema. Preiswerte oder ältere Handy haben oft Grenzen für die Größe eines Javaprogramms. Auch die Datenübertragung ist für viele Nutzer weiterhin noch nicht kostenlos.

Die Bibliothek war für eine JME-Bibliothek schon in Version 1.4 sehr groß, und der Umfang die Bibliothek ist nochmal gestiegen. Zum Glück entfernt der Obfuscator die unbenutzten Bibliotheksbestandteile recht effektiv. Für zwei verschiedene Programme komme ich mit allen Resourcen auf folgende Werte nach dem Umstieg von 1.4 auf 1.5:

Programm A: 212kb -> 245kb
Programm B: 417kb -> 456kb

Die Entwicklungsversion der Anwendung B mit Debuging-Informationen und ohne Obfuscator war über ein 1MB und ließ sich dadurch in der Standardeinstellung des JME-SDK nicht starten. Man kann die erlaubte Größe aber durch ändern einer Konfigurationseinstellung anpassen:

Datei: jwc_properties.inisystem.jam_space = 1000000

Die beiden Anwendungen ließen sich leicht upgraden. Kritisch war in der IDE Netbeans nur, wirklich alle Referenzen auf LWUIT 1.4 aus dem Projekt zu entfernen, auch in den eigenen Bibliotheken.

Es gab einige „Deprecation Warnings“, die leicht zu beheben waren. Der Resourceeditor hat in 1.5 sehr große Änderungen erfahren. Geändert wurde der Umgang mit den „selected“ und „pressed“ Zuständen. Hier musste man die Anwendungen im Detail überprüfen und teilweise nachbessern. Insgesamt ging die Umstellung aber problemloser als befürchtet.

Mehrzeilige Elemente

Aus meiner Sicht unvollständig ist immer noch die Unterstützung von mehrzeiligen Elementen. Ein Label ist zunächst nur einzeilig, ebenso wie ein Button, oder eine Checkbox.

Von den einfachen UI-Elementen kann einzig das TextArea-Eingabefeld mit mehrzeiligen Text umgehen. Immerhin lässt sich das ausnutzen:

Für ein einfaches mehrzeiliges Label kann man ein Eingabefeld verwenden, es als nicht editierbar markieren und die UIID manipulieren, so dass die Stilinformationen eines normalen Labels genutzt werden:

  TextArea descLabel = new TextArea(descriptionText);
  descLabel.setEditable(false);
  descLabel.setUIID("Label");

Update (2015)

Die Kernentwickler von LwUIT haben ein Nachfolgeprojekt ins Leben gerufen: Codename One. Mit diesem lassen sich plattformübergreifend Java-basierte Apps für iOS und Android entwickeln.

Schreibe einen Kommentar