Devoxx France 2012 2/3: JavaFX 2

« Oublier tous les préjugés », c’est par cette phrase que la présentation a été introduite, comme pour reconnaître les difficultés d’adoption de la version précédente. JavaFX fait partie de la nouvelle génération de technologie cliente, une famille d’outils de création d’application de type RIA (Rich Interface Application). La nouvelle version (JavaFX 2) qui est arrivée fin 2011 se veut complémentaire avec SWT, Swing et HTML 5 et pas forcément concurrente.

Une différence fondamentale à considérer par rapport à JavaFX 1 est l’utilisation du XML comme langage de création d’Interfaces graphiques. En effet, l’utilisation du langage de script JavaFX Script dans la première version constituait une difficulté supplémentaire pour la prise en main de la plateforme. L’objectif -réussi- d’Oracle a donc été de rendre facile la création d’interfaces clientes et d’en faire un outil cross-plateforme : même code graphique pour les applications desktop et mobiles, ce qui se résume par : « We absolutely will be targeting a whole host of different platforms, not even just the big three (Mac, Linux, Windows). The value of the Java platform is in the fact that you can write across multiple operating systems and devices. »

Le package comprend :

  1. Des API Java
  2. Un moteur de navigateur web (Webkit) pour le rendu de contenus HTML (avec éventuellement du JavaScript), l’accès au DOM et la gestion du Look & Feel avec du CSS
  3. Des composants graphiques (node) qui peuvent présenter plusieurs propriétés comme l’opacité et les effets d’animation
  4. Un moteur multimédia qui offre une latence optimisée pour le support vidéo

Outils pour les développeurs

  1. Neatbeans IDE
  2. JavaFX Scene Builder, un éditeur WYSIWYG
  3. Plugin pour Eclipse et Intellij

Développement d’IHM

Tout comme sur Android il y a deux manière de créer une interface graphique :

  1. En s’appuyant sur l’API Java
  2. En utilisant FXML (langage de marquage XML pour les UI) qui a l’avantage de faire une séparation entre le code relatif à la structure de l’IHM et le code dynamique. Cette option offre également la possibilité d’intégrer du JavaScript et des feuilles de styles

Roadmap

Quelques points à retenir pour l’avenir :

  1. Rendre le code Open Source à travers le projet OpenFX en collaboration avec la communauté OpenJDK
  2. Inclure JavaFX dans le JDK 8
  3. Elargir l’utilisation de Java FX dans l’embarqué avec Java SE Embedded (ARM)