JavaOne: Top-Thema JavaFX - eine Einschätzung

Das technische Top-Thema der JavaOne ist wieder einmal JavaFX. Sun sieht die Rich-Internet-Technik als zukünftigen Java Presentation Layer für Anwendungen für Desktop, Browser, mobile Geräte - und für das Fernsehen.

In Pocket speichern vorlesen Druckansicht 65 Kommentare lesen
Lesezeit: 6 Min.
Von
  • Lars Röwekamp

JavaFX ist wie in den Jahren zuvor das technische Top-Thema auf der diesjährigen JavaOne in San Francisco. Mit der am Dienstag veröffentlichten Version 1.2 verdeutlicht die Rich-Internet-Technik ihren Anspruch, der zukünftige Java Presentation Layer für plattformübergreifende Anwendungen zu werden. Egal ob auf dem Desktop, im Browser, auf dem mobilen Gerät oder – zukünftig – für das Fernsehen.

Ein wesentliches Ziel der JavaFX-API-Entwickler scheint es gewesen zu sein, das Common Profile – das heißt JavaFX-Klassen, die auf allen Plattformen zur Verfügung stehen – zu stärken und so die Portabilität von JavaFX-Anwendungen zu erhöhen.

Die neue Release setzt zum größten Teil auf dem direkten Feedback der JavaFX-Community auf. So verwundert es nicht, dass neben etlichen Performance-Verbesserungen insbesondere bisher schmerzlich vermisste und in konkurrierenden Techniken selbstverständliche Layouts wie zum Tile, Flow, ClipView oder Stack Layout Einzug in die API gefunden haben. Mit ihrer Hilfe wird die Implementierung skalierbarer Anwendungen vereinfacht – eine Grundvoraussetzung für JavaFX-Anwendungen, die auf unterschiedlichen Zielplattformen wie Mobile, Browser und Desktop laufen sollen.

In die gleiche Richtung zielen auch die neuen UI Controls. Anders als die bisherigen Swing-basierten UI Controls, die es auch weiterhin gibt, finden sich die neuen Elemente im Common Profile und stehen somit auf allen Zielplattformen – und auch auf mobilen Endgeräten – zur Verfügung. Neben Button, Label, Checkbox, ProgressBar sowie einigen anderen einfachen Controls gibt es auch eine ListView zum Realisieren komplexer Listen. Eine Tabellen-Komponente existiert allerdings weiterhin weder in den neuen noch in den Swing Controls. Mit den beiden neuen Klassen Screen und Alert lassen sich virtuelle Screens und Alert-Boxen umsetzen. Bisher musste der JavaFX-Entwickler diese Elemente mittels Java 2D umständlich neu erfinden.

Eine Neuerung stellen die beiden Klassen Ressource und Storage des JavaFX-I/O-Pakets dar. Mit ihrer Hilfe lassen sich Anwendungsdaten wie User Preferences lokal ablegen und bei einem erneuten Start der Anwendung wieder einlesen. Das funktioniert nicht nur auf dem Desktop oder dem mobilen Gerät, sondern auch bei JavaFX-basierten Applets, sprich im Browser. Natürlich ist der zu verwendende Speicher durch den Nutzer einzuschränken und so vor Missbrauch durch die Anwendung zu schützen. Neu in JavaFX 1.2 sind zudem Chart-Komponenten und ein überarbeitetes Handling asynchroner Tasks sowie die direkte Unterstützung von RSS-Feeds.

Mittlerweile gibt es mit dem HTC Diamond das erste mobile Gerät mit JavaFX-1.2-Runtime zu kaufen – dies gilt zumindest für Teilnehmer der JavaOne. Und auch Sony Ericsson hat in seiner Keynote auf der JavaOne gleich drei Handsets (unter anderem ein Windows Mobile X1 sowie ein Symbian OS Device) gezeigt, auf dem sich die JavaFX Runtime befindet.

Bei aller Euphorie ist zu erwähnen, dass die neue JavaFX-Version nicht abwärtskompatibel ist. Sun hat, wie auch schon bei den vorherigen Releases, diesen Weg bewusst eingeschlagen, um so – ohne Kompromisse – möglichst schnell und konsequent auf das Feedback der JavaFX-Community reagieren zu können. Da bisher wenig JavaFX-Anwendungen am Markt existieren dürften, sollte es kein großes Problem darstellen. Es bleibt allerdings abzuwarten, ob Sun diese Strategie auch in Zukunft verfolgen wird. Wenn ja, dürfte der eine oder andere "Early Adapter" wahrscheinlich mehr Energie in die Portierung seiner existierenden Anwendungen investieren als in die Entwicklung neuer.

Wie die Zukunft von JavaFX aussehen könnte, wurde im Rahmen der Eröffnungskeynote deutlich. Ronan McBrien – JavaFX-TV-Architekt – zeigte auf einem LG Monitor eine funktionierende Preview des JavaFX TV Profiles. Ziel ist es, Filme interaktiv zu gestalten und parallel Informationen aus dem Netz zur Verfügung zu stellen. So kann man zum Beispiel einen Film schauen und parallel dazu Details zum Film oder aber zu anderen parallel laufenden Ereignissen (Spielergebnisse der NBA oder das aktuelle Wetter) abrufen. Auch ein Chat mit anderen Community-Mitgliedern ist denkbar. Das Demo auf dem LG Monitor mit Grafikbeschleuniger und Internetzugang zeigt, dass es bereits heute technisch möglich ist. Informationen dazu, wann JavaFX TV für den "normalen" Entwickler Realität wird, gab es aber keine.

Last, but not least hat Sun Microsystems nicht nur JavaFX als Plattform und Programmiersprache überarbeitet, sondern verfolgt darüber hinaus auch Pläne, den Entwickler durch eine neue Tool-Landschaft zu unterstützen. Nandini Ramani – Sun Director of Engineering (JavaFX Platform) – zeigte "live" eine Preview eines JavaFX Authoring Tools, welches Ende des Jahres erscheinen soll. Bei Bedarf lässt sich mit diesem Werkzeug eine JavaFX-Anwendung ohne eine Zeile Code "programmieren".

Die Idee dahinter: Der Entwickler platziert Inhalte (Bilder, Videos oder aber grafische UI-Elemente) auf einer JavaFX Scene, indem er sie via Drag & Drop in den Editor legt. Der Inhalt lässt sich – ähnlich wie bei dem vergleichbaren Flash-Tool – mit einer Timeline versehen, um so grafische Änderungen und Effekte am Inhalt zu realisieren. Darüber hinaus ist es möglich, einen Record Mode einzuschalten. Alle Änderungen am Inhalt – zum Beispiel das Verschieben oder Vergrößern einer Grafik – werden in diesem Modus aufgezeichnet und im Anschluss aus ihnen JavaFX-Code generiert. Mit diesem Feature lassen sich einfach und ohne eine Zeile Code JavaFX-Animationen erzeugen. Natürlich lässt sich bei Bedarf auch JavaFX-Script, zum Beispiel als Reaktion auf einen Button-Click, direkt programmieren.

Neben der reinen "Gestaltung" von JavaFX-Anwendungen bietet das Tool zusätzlich einen direkten Zugang zum zukünftigen Java Application Store, sodass JavaFX-Entwickler ihre Anwendungen direkt aus dem Tool heraus in den Store stellen können. (Lars Röwekamp) /

Siehe dazu auch:

(ane)