Développer des applications RIA avec JavaFX

L'infrastructure de Sun est conçue pour développer des interfaces graphiques riches et interactives. Reposant sur Swing, ces applications s'intègrent à toutes les plates-formes utilisant la technologie Java.

JavaFX est issu du projet F3 (Form Follows Function) de Chris Olivier. Dévoilé par Sun à la conférence JavaOne en 2007, il se positionne comme une alternative à Flex d'Adobe et Silverlight de Microsoft. JavaFX sert à créer des applications Internet riches (RIA) et du contenu interactif. Cette technologie permet de projeter des appliquettes sur un navigateur client.

 

Extension de Java, JavaFX bénéficie des avantages de son modèle de programmation : structuration du code, fonctionnalités de réutilisation et d'encapsulation tels que les packages, les classes, l'héritage, les unités de compilation séparées et de déploiement. Actuellement, JavaFX contient deux composants : JavaFX Script, qui est un langage de scripting pour développer les applications RIA, et JavaFX Mobile, qui respecte les normes industrielles et assure la portabilité du code.

 

Des applications riches multiplates-formes

 

JavaFX Script est un langage de script déclaratif et typé, qui s'appuie sur l'environnement d'exécution Java (JRE). Il repose sur les API Swing et les bibliothèques Java 2D de la plate-forme Java SE. Il est donc théoriquement portable sur tout système supportant J2SE. Le développeur peut créer des applications sans se préoccuper de la plate-forme où elles vont être utilisées. Cette technologie couvre le développement d'applications RIA de l'ordinateur de bureau aux appareils mobiles.

 

JavaFX Script définit des interfaces graphiques de manière déclarative, donc sans appel de méthode ou de création d'instance. La construction de l'IHM se fait à partir d'une description dans un fichier source JavaFX (extension .fx) et non pas d'une exécution comme avec Swing. Elle est décrite en format dérivé de JSON, tandis que Flex est décrit en MXML et Silverlight en XMAL. Le déclaratif, à l'inverse de l'impératif, ne nécessite pas de passer par une méthode main() pour instancier des classes. Le script est lu en entier et les éléments sont déclarés au fur et à mesure. L'interprétateur prend sur son passage les éléments dont il a besoin.

 

Le code est beaucoup plus court qu'en Java

La limite de la programmation déclarative est qu'elle ne permet pas d'établir de correspondance entre les données et les widgets côté utilisateur. Cette fonctionnalité est prise en charge par le binding, un des éléments les plus importants de JavaFX. Il crée un lien entre l'attribut d'un artefact graphique (le contenu d'un champ de saisie par exemple) et la propriété d'un objet (comme un JavaBean). Le binding s'occupe de la synchronisation automatique de ce lien.

 

Des outils de développement

 

Sun a sorti un éditeur graphique, JFX Builder, pour construire facilement du contenu JavaFX. Il propose des fonctions "drap-and-drop" (glisser et déposer) accessibles aux non-développeurs. Un plug-in existe pour NetBeans et Eclipse. Sun a également sorti JavaFX Pad, un environnement d'exécution où les développeurs peuvent voir directement le résultat de leurs actions et afficher les erreurs. Sun prévoit de mettre le code de JavaFX Script en Open Source. Une communauté se retrouve déjà autour de openjfx.org où le code alpha JavaFX Script est téléchargeable.

 

JavaFX bénéficie de la réputation de Java, une des plates-formes les plus utilisées au monde. L'inconvénient de JavaFX, c'est qu'il a besoin de son environnement d'exécution JRE qui pèse dans les 16 Mo, alors que celui de Flash pèse 2 Mo, celui de Silverlight 4 Mo, et qu'Ajax n'a besoin que d'un navigateur.