JavaFX JumpStart @JavaOne 2016

44
JavaFX canoo

Transcript of JavaFX JumpStart @JavaOne 2016

Page 1: JavaFX JumpStart @JavaOne 2016

JavaFXcanoo

Page 2: JavaFX JumpStart @JavaOne 2016

About meJava Champion

JavaOne RockstarCanoo Engineering AG

JCP Expert GroupJUG Dortmund

Star Warswww.guigarage.com@hendrikEbbers canoo

Page 3: JavaFX JumpStart @JavaOne 2016

Hello Worldwww.guigarage.com@hendrikEbbers canoo

Page 4: JavaFX JumpStart @JavaOne 2016

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

Hello Worldwww.guigarage.com@hendrikEbbers canoo

1 - Create a Class

2 - Extend Javafx.application.application

3 - Have Fun

Page 6: JavaFX JumpStart @JavaOne 2016

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

Hello Worldwww.guigarage.com@hendrikEbbers canoo

Stage

Scene

StackPane

Button

Scenegraph

contains

Page 8: JavaFX JumpStart @JavaOne 2016

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

stuck in the IDE

www.guigarage.com@hendrikEbbers canoo

Page 10: JavaFX JumpStart @JavaOne 2016

stuck in the IDE

www.guigarage.com@hendrikEbbers canoo

Netbeans Project Eclipse Project

Page 11: JavaFX JumpStart @JavaOne 2016

stuck in the IDE

www.guigarage.com@hendrikEbbers canoo

Page 12: JavaFX JumpStart @JavaOne 2016

stuck in the IDE

www.guigarage.com@hendrikEbbers canoo

😥

😭

😱

😰😵

Page 13: JavaFX JumpStart @JavaOne 2016

stuck in the IDE

www.guigarage.com@hendrikEbbers canoo

😥 😓 😨 😰 😵 😭 😱

Page 14: JavaFX JumpStart @JavaOne 2016

stuck in the IDE

www.guigarage.com@hendrikEbbers canoo

?

Page 15: JavaFX JumpStart @JavaOne 2016

Project management

www.guigarage.com@hendrikEbbers canoo

Page 16: JavaFX JumpStart @JavaOne 2016

www.guigarage.com@hendrikEbbers canoo

Describe the application in an Environment independent way

Project management

Page 17: JavaFX JumpStart @JavaOne 2016

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

www.guigarage.com@hendrikEbbers canoo

JavaFX and Maven

Project management

a perfect match

Page 19: JavaFX JumpStart @JavaOne 2016

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

www.guigarage.com@hendrikEbbers canoo

You have to choose

Project management

Page 21: JavaFX JumpStart @JavaOne 2016

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

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

www.guigarage.com@hendrikEbbers canoo

Native Builds

Project management

Page 24: JavaFX JumpStart @JavaOne 2016

www.guigarage.com@hendrikEbbers canoo

Native Builds

Project management

simply add native content to your project

Page 25: JavaFX JumpStart @JavaOne 2016

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

Build pipeline

Page 27: JavaFX JumpStart @JavaOne 2016

Build pipeline

Deploying an productive app... from your local machine is like ...

Page 28: JavaFX JumpStart @JavaOne 2016

Build pipeline

Deploying an productive app. . . from your local machine is like

Page 29: JavaFX JumpStart @JavaOne 2016

Build pipeline

Deploying an productive app. . . from your local machine is like

Page 30: JavaFX JumpStart @JavaOne 2016

Build pipeline

Deploying an productive app. . . from your local machine is like

Page 31: JavaFX JumpStart @JavaOne 2016

Build pipeline

Deploying an productive app. . . from your local machine is like

Page 32: JavaFX JumpStart @JavaOne 2016

Build pipeline

Just to make sure you get it ...

Page 33: JavaFX JumpStart @JavaOne 2016

Build pipeline

Deploying an productive app. . . from your local machine is like

Page 34: JavaFX JumpStart @JavaOne 2016

Build pipeline

Deploying an productive app. . . from your local machine is like

All together now

Page 35: JavaFX JumpStart @JavaOne 2016

Build pipeline

Deploying an productive app... from a Build server is like ...

Page 36: JavaFX JumpStart @JavaOne 2016

Build pipeline

Deploying an productive app. . . from your local machine is like

Page 37: JavaFX JumpStart @JavaOne 2016

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

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

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

JavaFX on Mobile

Page 41: JavaFX JumpStart @JavaOne 2016

www.guigarage.com@hendrikEbbers canoo

JavaFX MobileSimply Install IDE Plugin

Create a new Project

Run JavaFX on Mobile

Page 42: JavaFX JumpStart @JavaOne 2016

www.guigarage.com@hendrikEbbers canoo

WAIT!DON'T We stuck in the IDE now????

JavaFX on Mobile

Page 43: JavaFX JumpStart @JavaOne 2016

www.guigarage.com@hendrikEbbers canooGradle Build

Page 44: JavaFX JumpStart @JavaOne 2016

questions?