Zusammenfassung des Special Days

JAX-Blog: Ein ganzer Tag JavaFX

Alexander Casall
©shutterstock.com/Konstantins Visnevskis

Ein ganzer Tag JavaFX! Mit dem ersten Talk „JavaFX – 10 Dinge, die ich an dir liebe“ habe ich den Special Day als Speaker eröffnet und live miterlebt.

Gestartet bin ich mit einer Demo der JavaFX-Applikation eteoBoard, um danach getreu dem Titel nutzbringende Eigenschaften von JavaFX aufzugreifen. Dazu habe ich ein Captcha-Control vorbereitet, dessen Verhalten mit Properties und Data Binding implementiert ist und auch den Unterschied einer reinen Code-Implementierung der Oberfläche und der Verwendung von FXML und CSS demonstriert. Weiter ging es mit Animationen, Effekten, Multi-Touch und letztendlich der WebView, die die Möglichkeit bietet, zwischen der Java- und der JavaScript-Welt hin und her zu telefonieren. Demonstriert habe ich das Ganze mit einer Beispielanwendung die eine Google-Maps-Karte in einer WebView darstellt und es möglich macht, mit einem JavaFX-Slider das Zoom Level von Google Maps zu beeinflussen. Ach ja, wenn ich gerade dabei bin – wenn jemand die Code-Beispiele haben möchte – könnt Ihr diese die nächsten Tage in meinem GitHub-Account finden.

Die nächste Session „JavaFX in Geschäftsanwendungen – Macht es Sinn? Wie macht es Sinn?“ mit Björn Müller (Captaincasa) startete mit einer Argumentationskette, wann JavaFX genutzt werden sollte und zieht dabei hauptsächlich den Vergleich mit HTML5-basierenden Technologien. Ein relativ wichtiger Punkt ist sein Hinweis, dass JavaFX keine Webtechnologie ist und die Möglichkeit der Ausführung in Browsern eher als Notlösung zählt. Wann nimmt man also JavaFX? Wenn man langlebige Applikationen implementiert, die zudem noch komplex sind und auf Desktop-Geräten laufen. Im gleichen Atemzug räumte er aber viele Anwendungsszenarien ein, bei denen HTML5 eine valide Wahl ist. Jetzt ging es ans Eingemachte – Björn stellte verschiedene Architekturansätze von UI-Applikationen vor (Server-Zentrisch / Client-Zentrisch) und hob dabei hervor, dass JavaFX lediglich ein Toolkit mit Core-UI-Komponenten ist, das nicht vorschreibt, welcher Architekturansatz verfolgt wird. Abschließend demonstrierte Björn einen serverseitigen Architekturansatz anhand des CaptainCasa-Frameworks.

Der nächste interessante Talk des Tages war actiongeladen. Das hat aber schon das Line-Up mit Hendrik Ebbers (Materna), Anton Epple (Eppleton) und Gerrit Grunwald (Canoo) versprochen. Der Titel lautete „Extreme GUI Makeover“ und Hendrik startete mit einer Einführung in die Controls API von JavaFX (Control, Skin, Behavior, CSS). Dann wurde der Showcase vorgestellt. Die Drei haben ein Bild eines DJ-CD-Spielers als Vorlage genommen und originalgetreu mit JavaFX nachgebaut. Gerrit zeigte dazu Tipps und Kniffe, wie man mit Hilfe von Vector-Grafik-Programmen, wie Inkscape, Ebene für Ebene die Originalvorlage nachbaut, um das Ergebnis anschließend als SVG zu exportieren, was relativ einfach in JavaFX dargestellt werden kann (SVGPath oder –fx-shape mit Region). Anton stellte im gleichen Zuge Button-Slicing vor, das aus dem Webbereich kommt und zur Implementierung skalierbare Buttons mit Bitmaps genutzt wird. In JavaFX sind dafür lediglich einige Zeilen CSS notwendig. Ein weiterer cleverer Trick ist es, Clipping für real wirkendes Verhalten von UI-Elementen zu verwenden. Das Ergebnis des Stylings ist eine Applikation, die fast exakt wie die Vorlage aussieht und interaktiv bedienbar ist. Wenn der Play-Button gedrückt wird, startet der Sound des Java-Raps. Am Ende der Session, zeigt Gerrit die JavaFX Applikation auf einem iPad Mini (Retina), was großes Interesse beim Publikum ausgelöst hat. Ich war auch begeistert.

Ein weiterer Talk des Tages kam von Sven Ruppert (Codecentric) zum Thema „CDI und JavaFX, ein entkoppeltes Paar mit Swing“. Sein Ziel ist es, Migrationsprojekte von Swing zu JavaFX durch CDI aus dem Inneren der Applikation heraus voranzutreiben. CDI bietet auch die Möglichkeit, abhängig von Kontextparametern, zwischen verschiedenen Implementierungen zu wählen, was den Charme hat, dass zum Beispiel bei besonders hoher Auslastung des Systems alternative Implementierungen genutzt werden können, um den Programmfluss effizienter zu gestalten. Er demonstrierte dafür, wie der CDI und der JavaFX Lifecycle zusammengeführt werden, um gleichzeitig @Inject und @FXML nutzen zu können.

Feierabend! Es war ein gelungener Tag mit interessanten Themen und vielen Interessenten.

Aufmacherbild: colorful sparkler twist von Shutterstock / Urheberrecht: Konstantins Visnevskis

Geschrieben von
Alexander Casall
Alexander Casall
Alexander Casall hat 2011 seinen Master in Informatik abgeschlossen und arbeitet seitdem bei der Saxonia Systems AG als Softwareentwickler. Sein Fokus liegt auf der Implementierung moderner Multi-Touch-Applikationen mit JavaFX. U.a. arbeitet er an Kollaborationswerkzeugen zur verteilten, agilen Entwicklung. In seiner Freizeit entwickelt Alexander native iOS Apps (www.buildpath.de), veröffentlicht Artikel in Fachzeitschriften, oder hält Vorträge auf Konferenzen (JavaOne, JAX, W-JAX) und User Groups.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: