Technologies

JavaFX : le RIA à la mode Java

Publié le : Auteur: vhanniet Laisser un commentaire
technologies

RIA : Rich Internet Application

Le concept de « client riche » peut être perçu comme une sorte d’hybride entre le monde client/serveur (client lourd) et le monde web (client léger). Les applications internet riches tentent de réconcilier leurs avantages tout en conservant le meilleur des deux types d’applications : facilité de déploiement, ergonomie et expérience utilisateur enrichie. Par extension du langage HTML, les RIA permettent de créer des interfaces sophistiquées tout en apportant une meilleure ergonomie aux pages web.

Elles proposent des fonctionnalités étendues, proches des applications standards, telles que des composants graphiques évolués, l’utilisation du drag and drop, une bonne réactivité, de beaux effets visuels et une facilité pour intégrer du multimédia. A l’origine elles s’exécutaient exclusivement dans un navigateur web mais aujourd’hui il existe des applications riches qui peuvent être lancées en dehors du navigateur, et même hors connexion. Le développement d’une application de type RIA nécessite notamment la mise en œuvre d’une architecture côté serveur pour permettre de fournir à l’application les données et les traitements métiers nécessaires. Généralement, les solutions RIA ne concernent que la partie présentation et ne proposent aucune fonctionnalité dédiée pour la partie backend.

Tout n’est cependant pas rose dans le monde des RIA et il existe quelques inconvénients. Ces applications sont « riches » d’un point de vue expérience utilisateur mais un revers de la médaille est que les pages peuvent être lourdes à charger. Le référencement peut s’avérer difficile. Les utilisateurs doivent parfois s’adapter à une nouvelle façon de naviguer. Un plugin doit être installé côté client, ce qui peut poser problème lors du déploiement en entreprise. De plus il existe un (trop) grand nombre de solutions proposées et elles parfois sont immatures si on les compare à d’autres technologies web.

Nous allons nous attarder ici sur la solution Java FX proposée par Oracle. Sa proximité avec Java, son évolution et sa situation concurrentielle la rendent très intéressante.

Présentation de JavaFX

C’est la solution d’Oracle pour la création de RIA. Initialement créé par Sun Microsystems, JavaFX appartient désormais à Oracle depuis le rachat de Sun en 2009. Avec JavaFX, Oracle propose un langage spécialisé dans la réalisation d’interfaces utilisateurs. Les applications peuvent s’exécuter dans ou en dehors d’un navigateur. Elles sont théoriquement déployables sur des milliards d’appareils car la technologie est basée sur la machine virtuelle Java (installée sur beaucoup d’appareils).

Le but est de simplifier grandement la création de contenu graphique. Le même contenu développé en Swing peut être mis en œuvre en quelques lignes de JavaFX Script. Des effets tels que l’animation, les changements de tailles, la traduction et la transparence sont tous disponibles avec un langage plus simple et déclaratif. Tout ceci par la mise à disposition d’API graphiques riches, avec des méthodes de haut niveau, ainsi qu’une gestion performante de l’accélération matériel (CPU, GPU). Cette solution comprend entre autre :

  • JavaFX Runtime qui permet aux applications développées avec JavaFX de s’exécuter sur toutes les plateformes disposant de Java SE ou Java ME. Il offre la possibilité d’avoir un client riche sur de multiples plateformes, écrans et terminaux comme par exemple :
    • JavaFX Desktop
    • JavaFX Mobile
    • JavaFX TV
  • JavaFX Tools Suite qui est un ensemble d’utilitaires mis à disposition des concepteurs, designers et développeurs Web comprenant notamment les indispensables plugins pour NetBeans et Eclipse.

JavaFX introduit un nouveau langage, le JavaFX scripting language, assez proche de l’ActionScript 3 de Flex. Malgré son nom, ce n’est pas un langage de scripting, dans le sens « code interprété », mais bien un langage compilé en bytecode pour la JVM. Vous trouverez de très bons tutoriels sur le site officiel JavaFX.

Java, le meilleur ami de JavaFX

Le principal avantage de JavaFX est son intégration avec… je vous le donne en mille : Java ! C’est l’argument phare de tous les défenseurs de JavaFX. En effet, la plateforme étant écrite en Java, les développeurs peuvent utiliser leur expérience et leurs outils pour développer des applications en JavaFX. C’est intéressant pour les entreprises qui souhaitent avoir des développeurs opérationnels rapidement sur cette technologie. De plus, en l’intégrant côté client dans une architecture basé sur Java côté serveur, on retrouve une certaine homogénéité qui peut faciliter par exemple la maintenance.

JavaFX est intégré directement dans les nouvelles versions de Java. Ainsi, son SDK est intégré dans le JDK et son runtime dans le JRE. Qu’en est-il de l’interopérabilité entre les deux ? Et bien, l’appel de méthode Java depuis JavaFX est possible et assez simple à utiliser. Même si cela est un peu plus compliqué, il est aussi possible d’agir sur les composants JavaFX depuis du code Java. Oracle doit continuer d’améliorer l’interopérabilité et la coexistence entre ces 2 produits. En effet, on est en droit de penser que l’avenir de JavaFX est étroitement lié à sa capacité à coexister efficacement avec Java.

Les perspectives d’avenir pour JavaFX

En 2011, Oracle a lancé la version 2.0 de JavaFx. Les principales évolutions à retenir de cette nouvelle mouture concernent d’une part les nouvelles capacités 3D et d’autre part la venue d’un éditeur graphique appelé JavaFX SceneBuilder. Il permet de créer des interfaces JavaFX par glisser-déposer et génère des fichiers (FXML) qui pourront être utilisé dans un IDE comme Eclipse ou NetBeans. Ainsi, on facilite la prise en main du framework pour les développeurs issus du monde HTML.

Autre annonce importante en 2011, Oracle souhaite faire passer l’infrastructure en open source. La proposition a été approuvée par la communauté OpenJDK et le projet OpenJFX lancé en décembre 2011. Les sources JavaFX ont été livrées sous licences GPL 2 alors que le runtime et le SDK sont toujours sous licence Oracle.

JavaFX-roadmapFigure 1 : JavaFX Roadmap

Malgré les efforts d’Oracle pour mettre en avant sa technologie, il semble que JavaFX n’est pas le succès escompté. La forte concurrence dans ce secteur est une des explications. En effet, il doit faire face, entre autres, à Flex/Flash d’Adobe et Silverlight de Microsoft.

Que peut-on espérer de cette technologie dans l’avenir ?

Oracle entend bien faire de JavaFX un format de RIA multiplateformes. Et c’est peut être dans le développement d’application pour appareil mobiles que l’on peut entrevoir son salut. Lors d’une conférence qui s’est déroulé fin 2011, l’éditeur a notamment présenté une application JavaFX tournant sur un iPad. La même démonstration a ensuite été réalisée sur un terminal tactile Samsung doté d’Android. En espérant qu’il n’est pas trop tard pour prendre le train du développement sur mobile.

Nous ne pouvons pas aborder le futur du développement web sans penser aussi à HTML 5. En effet, tout porte à croire que la majorité des applications vont s’orienter vers cette nouvelle version d’HTML. Certains spécialistes imputent même la perte de vitesse de Flex et Silverlight à l’apparition d’HTML 5. Je vous l’accorde, les spécifications ne seront finalisées qu’en 2014, mais des développeurs commencent déjà à l’utiliser et les acteurs du web prennent en compte cette arrivée dans leur réflexion sur le futur. Pour JavaFX, il sera certainement difficile de faire face à cette concurrence. Finalement, sa vocation la plus sûre est peut être de remplacer Swing et SWT, des technologies vieillissantes dans le domaine des applications desktop.

Nous avons vu que la version 2.0 intégré des capacités 3D. La démocratisation de celle-ci sur tous les supports (TV, PC, mobiles, consoles de jeux…) en font un axe principal de développement pour le produit d’Oracle. Un autre axe par lequel Oracle peut améliorer son produit concerne l’accessibilité au Web pour les malvoyants. Adobe avec Flex est réellement en avance sur ce sujet, des sites comme le portail Orange.fr on choisit Flex pour sa réponse aux normes d’accessibilité.

Pour conclure, on a entendu les spécialistes dire que la mise en route de JavaFX a été tellement lente et tardive, que celui-ci n’avait plus d’avenir. Aujourd’hui on ne peut pas affirmer cela de façon aussi catégorique. On ne peut qu’espérer qu’Oracle prenne les bonnes décisions dans sa stratégie. Continuer d’améliorer sa synergie avec Java, soutenir le projet OpenJFX, et que JavaFX se développe encore plus sur les appareils mobiles et dans le multimédia (vidéo, audio, 3D, Jeux).

Si tu aimes Java alors soutiens JavaFX !