Fast so schön wie Mac OS

Mit JavaFX bekommen Java-Applikationen ein neues Gesicht

Bislang konnte Java nur eingeschränkt mit ansprechenden Oberflächen glänzen. Das ändert sich mit JavaFX, das für eine große Anzahl an Plattformen Anfang 2014 verfügbar sein wird. Damit sollen Java-Anwendungen künftig auf Desktops, Smartphones und Embedded-Geräten eine gute Figur machen – eine interessante Option vor allem für Unternehmen, die alte Oberflächen ablösen oder auf mobile Umgebungen umstellen wollen.

Obwohl Java von Anfang an mit Oberflächenfunktionen wie AWT (Abstract Window Toolkit) und Swing ausgestattet war, setzten sich diese Technologien auf dem Desktop nicht durch. Daran konnte auch JavaFX Script von Sun nichts ändern. Doch seit JavaFX Bestandteil der Java 6-Ablaufumgebung ist, besteht wieder Hoffnung, dass sich Java stärker auf Client-Oberflächen durchsetzt – vor allem im Embedded-Bereich. Als Endgeräte kommen hier beispielsweise Smartphones, Kiosk-Systeme, Set-Top-Boxen, Einplatinen-Computer, Desktop-Computer oder Blu-ray-Player in Frage.

Interessant ist die Unterstützung aber auch für mobile Anwendungen. Diese können über WebView-Node als Anwendungen mit Web-Technologien entwickelt und in JavaFX-Programme integriert werden. Dabei ist es von Vorteil, dass JavaFX CSS (Cascading Style Sheets) und die WebKit Rendering Engine einsetzt. Diese wird unter anderem von Google Chrome genutzt. Bei Bedarf lassen sich bei diesem hybriden Ansatz dennoch die leistungsfähigeren nativen Funktionen nutzen. Durch dieses Konzept ist es beispielsweise möglich, interaktive Google Maps Darstellungen in Desktop-Anwendungen zu integrieren.

Neben WebView gibt es noch weitere Komponenten, die über die allgemein üblichen Darstellungsformen wie Tabellen und Buttons hinausgehen. Mit MediaView lassen sich verschiedenste Formate wie Videos oder Sound-Dateien nahtlos in eine JavaFX-Anwendung integrieren. Zusätzlich bietet JavaFX mehrere Komponenten zur Darstellung von Business-Diagrammen an. Diese können leicht durch die angebotenen Funktionen angepasst und sogar über CSS gestaltet werden.

Mit Java 8 bekommt JavaFX eine volle 3D-Unterstützung.
Mit Java 8 bekommt JavaFX eine volle 3D-Unterstützung.
Foto: Materna

Mit Java 8 bekommt JavaFX eine volle 3D-Unterstützung. Die 3D-Daten-Visualisierung wird so deutlich erleichtert, um beispielsweise Lagepläne oder komplexe Diagramme übersichtlicher darzustellen. Hierbei unterstützt JavaFX nicht nur 3D-Modelle, sondern auch dynamische Lichtquellen und verschiedene Texturformate. Schließlich wird JavaFX künftig komplett im Java-Standard integriert sein. So stehen alle relevanten Bestandteile für Business- und Multimedia-Anwendungen zur Verfügung.

Geschäftsanwendungen bald so schick wie Mac OS?

JavaFX wird auch Komponenten zur Darstellung von Business-Diagrammen mitbringen.
JavaFX wird auch Komponenten zur Darstellung von Business-Diagrammen mitbringen.
Foto: Materna

Der JavaFX-Nutzung in Geschäftsapplikationen steht künftig nichts mehr im Wege. Eine sehr gute Werkzeugunterstützung sowie moderne Funktionen erlaubt es den Entwicklern, deutlich einfacher intuitive und ansehnliche Oberflächen zu erstellen. Spezielle UI- und Workflow-Wünsche des Kunden lassen sich damit einfacher und eleganter umsetzen. Beispielsweise ist das GUI-Komponenten-Toolkit von JavaFX modular aufgebaut und sehr einfach erweiterbar. Interessante Einsatzmöglichkeiten liefert unter anderem die Enzo-Bibliothek. Ein weiteres Beispiel ist AquaFX, das ein auf Apple Mac OS basierendes Design für alle Standardkomponenten von JavaFX bereitstellt. Durch Nutzung dieser Bibliothek ist eine JavaFX-Anwendung nicht mehr von einer nativen Mac-Anwendung unterscheidbar.

Installation von Java-Anwendungen wird einfacher

Eine erleichterte Installation wird durch native Installer erreicht. Durch ein Build-Tool von Oracle ist jedes JavaFX-Programm als native Anwendung auslieferbar. Unter Windows bekommt der Kunde so zum Beispiel einen eigenen Installer geliefert, der mithilfe von Wizard-Dialogen durch die Installation der Anwendung leitet. Hierbei kann man keinen Unterschied mehr zwischen der Java-Applikation und einer reinen Windows-Anwendung (Office, etc.) feststellen. Ein großer Vorteil ist, dass die unterlagerte Java-Umgebung fester Bestandteil der nativen Anwendung ist und eine vorherige Java-Installation bzw. nachgelagerte Administration dadurch komplett entfällt. Die ersten JavaFX-Programme sind sogar bereits im Mac AppStore von Apple zu finden. Dieser Spezialfall funktioniert momentan zwar noch über Umwege, wird aber mit hoher Wahrscheinlichkeit zum Erscheinen von Java 8 noch deutlich verbessert und ausgebaut.

Neben den klassischen Desktop-Rechnern ist JavaFX auch auf zahlreichen anderen Plattformen lauffähig. Durch die Unterstützung von Embedded Geräten und des ARM-Chipsatzs ist JavaFX auf kleinster Hardware ausführbar und bietet so beispielsweise eine sehr elegante Lösung für Kiosk-Systeme und Home Automation.

JavaFX bald auch auf iPad und Windows Surface?

Auch für moderne Arbeitsgeräte wie das Windows Surface mit Windows RT ist eine komplette Integration vorhanden. Grade auf diesen Geräten zeigen sich weitere Stärken wie die MultiTouch-Fähigkeit von JavaFX. Zoom- und Swipe-Gesten, wie sie beim iPad vorkommen, werden von JavaFX voll unterstützt und sind leicht umzusetzen. Hierdurch ist endlich ein Einzug dieser neuen Interaktionsform in moderne Business-Anwendungen möglich.

Zwar sind sowohl iOS als auch Android bisher noch keine offiziell unterstützten Plattformen für JavaFX, aber das wird sicherlich nicht mehr lange dauern. So ist es beispielsweise erst kürzlich gelungen, JavaFX-Anwendungen mit Hilfe der Open Source-Lösung RoboVM auf einem iPad zu betreiben.

Neben der hier beschrieben UI-Gestaltung und den Interaktionen bietet das JavaFX-Ökosystem noch eine Fülle weiterer wichtiger Funktionen und Werkzeuge. Durch die konsequente Nutzung von CSS und die hierdurch mögliche Trennung von Entwickler- und Design-Teams wird der Entwicklungsprozess deutlich vereinfacht. Als Schnittmenge zwischen diesen beiden Instanzen kann der Scene Builder genutzt werden, mit dem sich Dialog-Layouts so einfach wie in einem modernen Publisher-Programm erstellen lassen. Während die Designer diese Layouts ausrichten und gestalten, kann das gesamte Entwicklerteam bereits eine An- und Einbindung dieser Dialoge in das Programm vornehmen. Für eine saubere und schnelle Anbindung an vorhandene Enterprise- und SOA-Systeme ist auch gesorgt. Projekte wie DataFX und OpenDolphin nehmen Entwicklern hierbei einen Großteil der Arbeit bereits ab und erlauben eine Integration und Darstellung von Web Services-Daten.

JavaFX: Fazit

JavaFX bringt Java auf modernen Benutzeroberflächen wieder ins Spiel und verbindet Desktop, Mobile, Embedded und Web auf eine einzigartige Weise. Spätestens mit dem Erscheinen von Java 8 im nächsten Jahr wird JavaFX die gewünschte Aufmerksamkeit und Verbreitung erlangen. Durch die wöchentlich erscheinenden Previews von Java 8 kann mit der Umsetzung von größeren Projekten bereits heute begonnen werden. Aufgrund der breiten Plattformbasis und der modernen UI-Funktionen von JavaFX lohnt sich also wieder ein zweiter Blick für alle Unternehmen, die alte Oberflächen ablösen oder auf mobile Umgebungen umstellen wollen.

Kurzgefasst

Die weitere Verbreitung von mobilen und Embedded Geräten stellt ganz neue Anforderungen an die Gestaltung und Bedienung von Applikationen. Da Java gerade für diese Bereiche ursprünglich entworfen wurde, ist zu begrüßen, dass Oracle mit JavaFX eine neue Plattform für moderne Rich Client-Oberflächen anbietet. JavaFX wird mit der kommenden JDK 8-Version Anfang 2014 ausgeliefert. Für Entwickler vereinfacht sich dadurch der Entwurf von Rich Client-Anwendungen für unterschiedliche Plattformen. Mit dem JavaFX Packager lässt sich die Ablaufumgebung gleich integrieren, so dass der Anwender gar nicht merkt, dass er mit einer Java-Anwendung arbeitet. Selbst so kostengünstige Umgebungen wie der Einplatinen-Computer Raspberry Pi werden hiermit unterstützt.