Il y a 13 ans -
Temps de lecture 3 minutes
Devoxx – Jour 2 – Java FX The developer guide
La session JavaFX fut l’occasion de découvrir comment développer une application JavaFX. Le speaker Stephen Chin, chef de projet de WidgetFX, nous a proposé une introduction au langage de script JavaFX.
La présentation semblait à mon avis plus modeste que les présentations faites l’année dernière. Le nombre de sessions JavaFX est moins important comparé l’année précédente. De même pas de présentation au Keynote où Adobe semble être mis en avant avec sa plateforme Flash.
Le script JavaFX
Dans ce langage, tout est objet, donc pas de types primitifs. Le script permettant de définir les IHMs a une structure arborescente plus facile à manipuler.
Exemple de code :
import javafx.stage.Stage; Stage { title: "Hello World !" width: 100 height: 50 }
Voici quelques unes des fonctionnalités qui nous ont été présentées :
- Le Data Binding : il est possible de lier (binder) des données entre deux objets avec JavaFX. Ce binding va plus loin avec la possibilité de binder un bloc ;
- Transition c’est à dire le passage d’un état vers un autre ;
- Les effets : pour déplacer un objet avec Move par exemple ;
- Media player : JavaFx est capable de gérer les médias ;
- Des layouts verticaux et horizontaux ;
- Les composants sont skinables, c’est-à-dire qu’il est possible de mettre le style à part dans une CSS ;
- Access modifier différent de java : avec public-read pour lecture uniquement ou public-init si seule l’initialisation est autorisée.
Pour plus d’informations, voici la documentation de référence.
Des librairies supplémentaires sont également disponibles pour JavaFX :
- JFXtras : fournit des librairies de composants supplémentaires ;
- JFXtrasShapes : fournit des formes supplémentaires comme des flèches ou des étoiles ;
- MigLayout pour JavaFX.
Courbe d’apprentissage
Stephen Chin semble dire que la courbe d’apprentissage de JavaFX n’est pas très importante pour un développeur Java. En effet, il serait possible d’importer des classes Java dans une application JavaFX. Il y a peut être eu des évolutions entre temps mais cette courbe d’apprentissage ne fut pas aussi évidente lors du Mobile Contest.
Déployable sur un HTC Diamond !
Pour nous prouver qu’il est possible de déployer sur un téléphone portable, Stephen Chin a fait tourner une application sur son téléphone comme lors de JavaOne l’année dernière. Mais en dehors de ces téléphones spécialement configurés, il n’y aurait aucun mobile grand public qui en serait capable pour le moment.
Netbeans 6.8 et son JavaFX Builder
Un second speaker, Tor Nobye, est intervenu pour présenter la bêta de Netbeans 6.8 qui supporte (toujours) JavaFX. Une révolution pour les développeurs qui bénéficiaient jusqu’à présent de plugins très pauvres. Cette bêta fournit :
- le support du SDK 1.2.1 ;
- meilleure complétion du code ;
- un debugger amélioré ;
- des suggestions pour les erreurs et warning de compilation.
Conclusion
La présentation fut intéressante pour comprendre le fonctionnement du langage et voir de quoi JavaFX était capable. D’après la documentation, il existe des composants graphiques comme des boutons, champs texte … Il aurait été intéressant de voir des exemples de réalisation de formulaires qui se rapproche plus de ce que l’on développe tous les jours. Finalement, il ne semble pas y avoir une énorme révolution par rapport aux versions précédentes.
Interrogée sur l’avenir de JavaFX, l’équipe du projet a expliqué que la prochaine version apporterait un gain significatif de performance. L’équipe est consciente de la montée en puissance de la plate-forme d’Adobe et se dit pénalisée par le temps de démarrage important de la JVM, rendant les applications Web JavaFX forcément moins attrayantes. Dès lors on comprend l’enjeu stratégique de la modularisation que Jigsaw apportera et qui permettra de rééquilibrer la plate-forme de Sun face à Flex en terme de performance. Ils tablent également sur une convergence des environnements RIA en terme de fonctionnalités à l’avenir, ce qui permettrait à JavaFX de briller grâce à l’intégration native à Java dont il dispose.
Commentaire