Enterprise Tales

E.T. on Tour: JavaOne 2012

Lars Röwekamp

Einmal im Jahr trifft sich die weltweite Java-Community in San Francisco, um die neuesten Entwicklungen rund um das Ökosystem Java zu diskutieren. In der Woche vom 30. September bis zum 4. Oktober war es wieder einmal soweit. Wie immer mit dabei: „E.T. on Tour“.

Eines gleich vorweg: Die Zeiten der sensationellen Enthüllungen sind dank JCP und JSRs vorbei – und das ist auch gut so. Allerdings gibt es in jedem Jahr auf der JavaOne Highlights, die man so im Vorfeld nicht erwartet hätte. So natürlich auch in diesem Jahr.

Wollte man die diesjährigen Top-Themen in einem Satz zusammenfassen, würde dieser wohl in etwa wie folgt lauten: Embedded JavaFX for the Enterprise. OK, das ist jetzt wahrscheinlich ein wenig zu stark verdichtet, steht aber dennoch stellvertretend für die Top 3 der diesjährigen JavaOne: JavaFX, Embedded und Enterprise Java.

Die „UI Battle“

Oracle bzw. Java scheint in diesem Jahr das UI wiederentdeckt zu haben. Und das nicht nur im Web, sondern auch auf dem Desktop und ganz besonders auf dem Mobile. Die neue Wunderwaffe im Kampf gegen schlechte UIs bzw. UX heißt – genau wie in den letzten Jahren auch – JavaFX. Allerdings scheint sich in den letzten zwölf Monaten wirklich eine ganze Menge getan zu haben. Zum Einen ist die Sprache JavaFX deutlich gereift, zum Anderen gibt es mittlerweile aber auch ein umfangreiches Toolset, das ausreichende Qualität für die Entwicklung größerer Projekte mit sich bringt. Aber immer der Reihe nach …

JavaFX ist derzeit in der Version 2.2 für Windows, Linux und Mac OS X verfügbar. Anders als in den vorherigen Versionen gibt es kaum noch plattformspezifische Restriktionen. Die APIs haben viel von anderen UI-Technologien gelernt – unter anderem auch von HTML5. So weit, so gut. Aber wie sieht es mit der „Real World“-Tauglichkeit aus? Und brauchen wir überhaupt eine weitere Visualisierungstechnologie?

Das API macht mittlerweile einen recht runden Eindruck. Natürlich fehlt es nach wie vor an einigen Ecken und Enden. Da JavaFX aber – ähnlich JSF – per Definition die Entwicklung eigener Komponenten propagiert und entsprechende Erweiterungspunkte bietet, ist dies nicht wirklich ein Problem. Interessant sind vor allem andere Aspekte, wie zum Beispiel das Tooling, Debugging und die Performance. Gerade im Bereich der Tools hat sich in den letzten zwölf Monaten einiges getan. Dass NetBeans 7.2 JavaFX unterstützt, versteht sich von selbst. Mit e(fx)clipse [1] gibt es mittlerweile auch ein sehr gutes Eclipse-Toolset. Und auch IntelliJ-IDEA-Fans müssen nicht zwangsläufig auf ihre Lieblings-IDE verzichten. Alle IDEs unterstützen klassische Features wie Code Completion, Syntax Highlighting oder Debugging. Möchte man ein UI deklarativ auf FXML-Basis erzeugen, greift man am besten direkt zu dem dafür angedachten Tool SceneBuilder [2], das übrigens selbst in JavaFX implementiert wurde.

SceneBuilder ist ein visueller Editor für JavaFX UIs, der im Hintergrund FXML-Dateien – JavaFX-XML-UI-Deklarationen – erzeugt. In der aktuellen Version 1.1 Developer Preview ist das Tool bereits ganz brauchbar und somit durchaus eine Hilfe bei der Gestaltung von UIs. Im Vergleich zu anderen UI Design Tools – zum Beispiel aus dem Hause Apple – besteht allerdings noch beträchtliches Optimierungspotential. Insbesondere sollte es möglich sein, Übergänge – JavaFX-Transitionen – zwischen den einzelnen UIs zu definieren, da hier eine große Stärke von JavaFX liegt. Bisher können mit dem Scene Builder die verschiedenen UIs nur separat bearbeitet werden. Alles Weitere muss via Code hinzugefügt werden.

Auch für das Testing von JavaFX-Anwendungen existieren bereits verschiedene Ansätze. Neben klassischen JUnit-Tests bietet sich für das Testen des UI die Verwendung von jemmy v3 [3] an, ein Java-UI-Test-API, das JavaFX-2.x-Support out of the Box bereitstellt. Mithilfe von jemmy lassen sich programmativ Klickpfade simulieren, Komponenten auffinden und deren Inhalte bzw. Werte testen. Was wünscht man sich mehr?

Geschrieben von
Lars Röwekamp
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.