javafx jumpstart @javaone 2016
TRANSCRIPT
![Page 1: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/1.jpg)
JavaFXcanoo
![Page 2: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/2.jpg)
About meJava Champion
JavaOne RockstarCanoo Engineering AG
JCP Expert GroupJUG Dortmund
Star Warswww.guigarage.com@hendrikEbbers canoo
![Page 3: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/3.jpg)
Hello Worldwww.guigarage.com@hendrikEbbers canoo
![Page 4: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/4.jpg)
Hello Worldwww.guigarage.com@hendrikEbbers canoo
JavaFX is PLAIN JAVANO JavaFX Script
Write it with any Java IDE
... or go oldschool
never use this one ;)
![Page 5: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/5.jpg)
Hello Worldwww.guigarage.com@hendrikEbbers canoo
1 - Create a Class
2 - Extend Javafx.application.application
3 - Have Fun
![Page 6: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/6.jpg)
Hello Worldwww.guigarage.com@hendrikEbbers canoo
publicclassHelloWorldextendsApplication{
@Overridepublicvoidstart(StageprimaryStage){StackPanemyPane=newStackPane(newButton("HelloWorld"));primaryStage.setScene(newScene(myPane));primaryStage.show();}
publicstaticvoidmain(String[]args){launch(args);}}
![Page 7: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/7.jpg)
Hello Worldwww.guigarage.com@hendrikEbbers canoo
Stage
Scene
StackPane
Button
Scenegraph
contains
![Page 8: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/8.jpg)
Hello Worldwww.guigarage.com@hendrikEbbers canoo
public class Demo extends javafx.application.Application { @Override public void init() {}
@Override public void start(javafx.stage.Stage stage) {}
@Override public void stop() {}
public static void main(String[] parameters) { launch(parameters); } }
application.init() application.start(Stage) application.stop()
stage.close()
![Page 9: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/9.jpg)
stuck in the IDE
www.guigarage.com@hendrikEbbers canoo
![Page 10: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/10.jpg)
stuck in the IDE
www.guigarage.com@hendrikEbbers canoo
Netbeans Project Eclipse Project
![Page 11: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/11.jpg)
stuck in the IDE
www.guigarage.com@hendrikEbbers canoo
![Page 12: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/12.jpg)
stuck in the IDE
www.guigarage.com@hendrikEbbers canoo
😥
😭
😱
😰😵
![Page 13: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/13.jpg)
stuck in the IDE
www.guigarage.com@hendrikEbbers canoo
😥 😓 😨 😰 😵 😭 😱
![Page 14: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/14.jpg)
stuck in the IDE
www.guigarage.com@hendrikEbbers canoo
?
![Page 15: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/15.jpg)
Project management
www.guigarage.com@hendrikEbbers canoo
![Page 16: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/16.jpg)
www.guigarage.com@hendrikEbbers canoo
Describe the application in an Environment independent way
Project management
![Page 17: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/17.jpg)
www.guigarage.com@hendrikEbbers canoo
1 - Define Java Version in Build file
2 - Define Dependencies in Build File
I like to to this in a
static way… Project management
![Page 18: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/18.jpg)
www.guigarage.com@hendrikEbbers canoo
JavaFX and Maven
Project management
a perfect match
![Page 19: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/19.jpg)
www.guigarage.com@hendrikEbbers canoo
Project management
<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.guigarage</groupId><artifactId>javafx-application</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties></project>
![Page 20: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/20.jpg)
www.guigarage.com@hendrikEbbers canoo
You have to choose
Project management
![Page 21: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/21.jpg)
www.guigarage.com@hendrikEbbers canoo
Native Builds
Project management
Providing a JAR to customers sucks
Since Java 8 we can go Native
EXE & DMG
![Page 22: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/22.jpg)
www.guigarage.com@hendrikEbbers canoo
Native Builds
Project management
JavaPackager is part of JDKOracle Provides ANT supportMaven & Gradle Support by Community
![Page 23: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/23.jpg)
www.guigarage.com@hendrikEbbers canoo
Native Builds
Project management
![Page 24: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/24.jpg)
www.guigarage.com@hendrikEbbers canoo
Native Builds
Project management
simply add native content to your project
![Page 25: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/25.jpg)
www.guigarage.com@hendrikEbbers canoo
Test Support
Project management
USe TestFX to write JavaFX test
Tests automatically boot your UI
Headless Tests supported
![Page 26: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/26.jpg)
Build pipeline
![Page 27: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/27.jpg)
Build pipeline
Deploying an productive app... from your local machine is like ...
![Page 28: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/28.jpg)
Build pipeline
Deploying an productive app. . . from your local machine is like
![Page 29: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/29.jpg)
Build pipeline
Deploying an productive app. . . from your local machine is like
![Page 30: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/30.jpg)
Build pipeline
Deploying an productive app. . . from your local machine is like
![Page 31: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/31.jpg)
Build pipeline
Deploying an productive app. . . from your local machine is like
![Page 32: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/32.jpg)
Build pipeline
Just to make sure you get it ...
![Page 33: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/33.jpg)
Build pipeline
Deploying an productive app. . . from your local machine is like
![Page 34: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/34.jpg)
Build pipeline
Deploying an productive app. . . from your local machine is like
All together now
![Page 35: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/35.jpg)
Build pipeline
Deploying an productive app... from a Build server is like ...
![Page 36: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/36.jpg)
Build pipeline
Deploying an productive app. . . from your local machine is like
![Page 37: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/37.jpg)
Build pipeline
Using a Build server is quite easyIt's really the same than for any other Java project
Remember: JavaFX == Java
choose your favorite
![Page 38: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/38.jpg)
Build pipeline
Works for Open Source, TooIt only takes 5 minutes to setup a Travis Build for your GitHub repo
+
![Page 39: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/39.jpg)
Build pipeline
Native BuildsYou need build notes for the different platforms
Build server
Linux build node
Mac build node
Windows build node
trigger builds
![Page 40: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/40.jpg)
JavaFX on Mobile
![Page 41: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/41.jpg)
www.guigarage.com@hendrikEbbers canoo
JavaFX MobileSimply Install IDE Plugin
Create a new Project
Run JavaFX on Mobile
![Page 42: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/42.jpg)
www.guigarage.com@hendrikEbbers canoo
WAIT!DON'T We stuck in the IDE now????
JavaFX on Mobile
![Page 43: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/43.jpg)
www.guigarage.com@hendrikEbbers canooGradle Build
![Page 44: JavaFX JumpStart @JavaOne 2016](https://reader030.vdocuments.mx/reader030/viewer/2022012919/58a5f6d11a28aba5728b6a95/html5/thumbnails/44.jpg)
questions?