javafx - igm.univ-mlv.frigm.univ-mlv.fr/~dr/xpose2008/intro javafx/documents/javafx.pdf · permet...
TRANSCRIPT
![Page 1: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/1.jpg)
JavaJavaFXFX
Développement RIA/RDA avec JavaFX
1
Moreau Alan
IR 3ème année
![Page 2: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/2.jpg)
PlanPlan
Présentation de JavaFX
Solutions concurrentes
Introduction à JavaFX Script
JavaFX SDK Pre 1.0
Le projet Nile et WidgetFX
Démonstration◦ Le projet Nile
2
![Page 3: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/3.jpg)
Présentation de Présentation de JavaJavaFXFX
Présentation lors de la JavaOne 2007
Développement de RIA et RDA
◦ Permet de créer facilement des interfaces riches : JavaFXScript + SDK
◦ Cible les développeurs mais aussi les designers
S’intègre très bien avec JavaSE et JavaME
Déploiement via un JAR exécutable ou via Java Web Start ou encore via un Applet
3
![Page 4: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/4.jpg)
Présentation de Présentation de JavaJavaFXFX
© Copyright 1994-2008 Sun Microsystems, Inc.
4
![Page 5: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/5.jpg)
Les solutions concurrentesLes solutions concurrentes
5
![Page 6: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/6.jpg)
Solutions concurrentesSolutions concurrentes Adobe Flex/AIR
◦ Développement RIA : Flex
◦ Développement RDA : AIR
Basé sur la technologie Flash : plugin flash
Conception d'interfaces riches en XML
Environnement de développement
◦ Eclipse via le plugin Flex Builder : environ 250$
Compatible avec les outils classiques de design
◦ Photoshop : environ 700$
◦ Illustrator : environ 600$
6
![Page 7: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/7.jpg)
Solutions concurrentesSolutions concurrentes
Microsoft Silverlight
◦ Essentiellement RIA
◦ Possibilité de faire des RDA
Nécessite le plugin Silverlight (ou Moonlight sur linux)
Conception d'interfaces riches en XML (plus particulièrement XAML)
Environnement de développement
◦ Visual Studio : environ 500$
Compatible avec Microsoft Expression Web◦ Environ 300$
7
![Page 8: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/8.jpg)
Solutions concurrentesSolutions concurrentes AJAX
◦ Uniquement RIA
JavaScript + XML + CSS
De nombreux frameworks
◦ Dojo◦ ZK◦ GWT◦ …
Pas d'environnement de développement
◦ Simples éditeurs avec coloration dans Eclipse
8
![Page 9: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/9.jpg)
Solutions concurrentesSolutions concurrentes
◦ Solutions coûteuses : Adobe Flex & Microsoft Silverlight
Offres de larges possibilités : le designer est libre
◦ Difficile de faire de l'AJAX sans framework
Maintenance difficile
Coût de développement élevé
SolutionsEnvironnementd’exécution
RIA – RDA Technologies
Adobe Flex/AIR Runtime Flash/AIR RIA/RDA XML+AS3
Microsoft Silverlight
PluginSilverlight/Moolight RIA/RDA XAML+.NET
JavaFX JRE/JWS RIA/RDA Java+JavaFX Script
AJAX Natif RIA JavaScript+XML+CSS
9
![Page 10: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/10.jpg)
Introduction à Introduction à JavaJavaFX ScriptFX Script
10
![Page 11: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/11.jpg)
Introduction à Introduction à JavaJavaFXFX ScriptScript
Exemple de programmeclass HelloWorldModel {
attribute saying: String;}
var model = HelloWorldModel {saying: "Hello World"
};
var win = Frame {title: bind "{model.saying} JavaFX"width: 200content: TextField {
value: bind model.saying}visible: true
};
11
![Page 12: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/12.jpg)
Introduction à Introduction à JavaJavaFXFX ScriptScript
Typage statique
Les types de JavaFX◦ String◦ Boolean◦ Number◦ Integer◦ Void
var myVar = "Hello";
myVar = 123; //erreur
var s :String = "World";
s.toUpperCase(); // renvoie "WORLD";
var x :Number = 3.50;
x.intValue(); // renvoie 1
(3.50).intValue(); // renvoie 3
var isTrue = true;
isTrue instanceof Boolean; // renvoie true
12
![Page 13: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/13.jpg)
Introduction à Introduction à JavaJavaFXFX ScriptScript
Des tableaux
Requêtes SQL sur un tableau
var nums = [1,2,3,4];
insert 5 into nums; //renvoie [1,2,3,4,5]
insert 0 as first into nums; //renvoie [0,1,2,3,4,5]
insert [6,7] as last into nums; //renvoie [0,1,2,3,4,5,6,7]
var workingDays = ["Mon","Tue","Wed","Thur","Fri"];
var weekDays = [workingDays, ["Sat","Sun"]];
var answer:Integer = select x from x in [1..10] where (x%2 == 0);
// renvoie [2,4,6,8,10]
13
![Page 14: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/14.jpg)
Introduction à Introduction à JavaJavaFXFX ScriptScript
Fonctions et Opérations
function myFunction(a,b) {
var x = a + b;
var y = a - b;
return x + y;
}
operation substring(s:String, n:Number): String {
try {
return s.substring(n);
} catch (e:StringIndexOutOfBoundsException){ throw "sorry, index out of bounds";
}
}
14
![Page 15: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/15.jpg)
Introduction à Introduction à JavaJavaFXFX ScriptScript
Un langage de script efficace◦ Traitement rapide : sur les tableaux notamment
◦ Inspiré de Perl?
Classes, héritage, encapsulation, packages◦ Programmation objet
◦ Efficace et maintenable
◦ Le développeur Java n'est pas dépaysé
15
![Page 16: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/16.jpg)
JavaJavaFX SDKFX SDK
16
![Page 17: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/17.jpg)
JavaJavaFXFX SDK SDK PreviewPreview 1.01.0
Animation : timeline, keyframe UI Components : composants Swing Effects : flou, ombres portée, éclairage,… Media : Player video/son, codec.
17
![Page 18: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/18.jpg)
Le projet Nile & Le projet Nile & WidgetWidgetFXFX
18
![Page 19: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/19.jpg)
LLe projet Nilee projet Nile
Plugin Photoshop/Illustrator
Moteur SVG
Permet d'exporter une maquette au format .fx ou .fxd
Un outil faisant le liant entre le développeur et le designer
19
![Page 20: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/20.jpg)
WidgetWidgetFXFX
Plateforme desktop
◦ Exécution de Widgets écris en
JavaFX Script
◦ Cross-platforme
◦ Widgets déployés avec JWS
Encore en version 0.1
20
![Page 21: JavaFX - igm.univ-mlv.frigm.univ-mlv.fr/~dr/XPOSE2008/Intro JavaFX/documents/JavaFX.pdf · Permet de créer facilement des interfaces riches : ... Un langage de script efficace](https://reader031.vdocuments.net/reader031/viewer/2022022118/5b9d8d9909d3f2443d8c6604/html5/thumbnails/21.jpg)
ConclusionConclusion
Avantages◦ Conception rapide d'interfaces graphiques◦ S'intègre parfaitement à Java Applet JWS Standalone application
◦ Cross-Platforme◦ Une communauté déjà conséquente
Inconvénients◦ Technologie encore jeune Pas de release de référence IDE -> Netbeans Difficilement intégrable en entreprise
◦ Workflow Developper-Designer interressant mais pas encore à la hauteur de la concurrence
RIA/RDA
Applications Desktop
21