THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire...

50
www.jpro.io © 2017 jpro technologies AG. All Rights Reserved. 1 THE FUTURE IS FUN!

Transcript of THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire...

Page 1: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

1

THE FUTURE IS FUN!

Page 2: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

2

Matthias Hänel

CEO & FOUNDER OF onexip GmbH & jpro technologies AG

Herzlich Willkommen!

Page 3: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

3Heuteaktuelle Crossplattform Applikationen bestehen aus vielen Technologien

● viele verschiedene Technologien

● Applikationen nutzen mehrerer Technologien

● Unterschiedliche Technologien für Desktop, Mobile und Web Applikationen

● Zu viel non-shareable code

Page 4: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

4

Wir müssen das ändern.

Page 5: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

5

Hans-Henry SandbaekCEO & Founder

Sandec Media AG

Florian KirmaierCTO & Founder

Sandec Media AG

Tobias BleyCTO & Founder

onexip GmbH

Matthias HänelCEO & Founder

onexip GmbH

Team Geschichtepeople bring up great solutions

Page 6: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

6

technologies AG

Zusammen sind wirpeople bring up great solutions

Page 7: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

7

Wie ändern wir diese Situation?

Page 8: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

8

Page 9: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

9

WindowsWindows Vista, 7, 8, 8.1 and 10 support

Mac OS XOS X 10.7.4 and later

Linuxany newer glibc 6 based Linux

Desktop SupportJavaFX runs on Windows, Mac and Linux

Page 10: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

10IOT SupportJavaFX runs on embedded ARM systems

IoTembedded ARM Linux support

Page 11: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

11

AndroidAndroid 4 and newer

iOSiOS 6 and newer

Qualitysame code on all platforms

Future safetynew platforms emerging?

Custom Designpossible mobile themed FXML for each platform

Mobile SupportJavaFX with Gluon works on iOS and Android

Gluon

Page 12: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

12

for the Web

Page 13: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

13

Wir nennen es einfach ...

Page 14: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

14

Page 15: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

15

Porting it to JavaFXRe-implementing the entire Software

Reusable librariesreusing code is one of the major advantages of the Java ecosystem on Desktop

DJ Softwaredeployed to million computers wold wide

Beispiel Desktop ApplikationUltraMixer on Desktop is great

Page 16: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

16Deployment UltraMixerUltraMixer on the Web is the future

Launch

Page 17: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

17Crossplattform Technologie für Java JavaFX läuft auf Desktop, Mobile und Web

Page 18: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

18

Showcasejpro shows its power in those demos

jpro it is already used in some real world applications. More follow in the next months.

See http://jpro.io/?page=demos

CalendarFX Fashion Shop

Tetris

MyLeporello

Scenebuilder

Page 19: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

19How does the magic work?native cross platform support mit JavaFX

Page 20: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

20jpro Architekturthin client model

controller and model tier (business logic)

Server

JavaFX (JAVA, FXML, CSS)

JVM

Client

HTML5 (CSS, JS, SVG)

view tier (rendering)

Browser

Page 21: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

21JavaFX ArchitekturInside JavaFX

Java Virtual Machine

JDK API Libraries & Tools

Java 2D / OpenGL / D3D

Prism / Glass Windowing Toolkit / Media Engine / Web Engine

Quantum Toolkit

JavaFX Public APIs and Scene Graph

Page 22: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

22jpro ArchitekturInside jpro

Java Virtual Machine

JDK API Libraries & Tools

Java 2D / OpenGL / D3D

Quantum Toolkit

JavaFX Public APIs and Scene Graph

Prism / Glass Windowing Toolkit / Media Engine / Web Engine

Page 23: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

23jpro architectureInside jpro

Node1

JFX Scene

Node2

Node3

Node4

Node1

HTML DOM

Node2

Node3

Node4

Page 24: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

24

Scene3

Scene2

Scene6

Scene5

Scene1 Scene4

Scene9

Scene8

...

..

Scene7 .

JavaFX-App● JavaFX läuft auf dem

Server● eine Scene Instanz pro

Nutzer

jpro ServerarchitekturInside jpro

Page 25: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

25jpro ServerarchitekturInside jpro

JavaFX-App

JavaFX-App

JavaFX-App

Die gleiche App läuft auf verschiedenen Servern oder in der Cloud.

Server1 Server2 ServerX

Page 26: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

26

1 2 3 4 5 6

Any JVM

Sprachee.g. Groovy, Kotlin,

Scala or Clojure

Any JFX

bindinge.g. GroovyFX,

KotlinFX, ScalaFXor ClojureFX

Pixel perfectrendering across

browsers

Development

speedthrough consistent

tools

IP Protectionis immanent

Jede LibraryAlmost any Java

Library can be used

Möglichkeiten der Architekturinside jpro

7

Middle tiercan be dropped

Page 27: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

27Browser VoraussetzungenInside jpro

● Aktueller Browser● Websocket Support● Aktiviertes JavaScript

Page 28: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

28

Gradle Java 8Linuxbevorzugt:

Ubuntu> Version 2.14 Oracle JDK 8

Server TechnologienVoraussetzungen für jpro

Page 29: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

29Entwicklung mit jpro

jpro app mit Sourcecode starten (z.B. während Entwicklung)

● Gradle-Script erzeugen (build.gradle + settings.gradle)

● Ordner-Struktur erzeugen

/src/main

/java/resources

/test/java/resources

● Deployment:

Gradle scripts und src-folder zum Server hochladen

Kommandozeile: gradle runBrowser oder gradle restartServer

Page 30: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

30Entwicklung mit jpro

Automatisch erzeugte jpro Pfade● http://localhost:8080/test/default

● http://localhost:8080/test/fullscreen/default

Selbst definierte jpro Pfade

● Selbst definierte und zugreifbare Ressourcen liegen in: „resources/jpro/html“

● z.B. resources/jpro/html/index.html

● Zugriffe per http://localhost:8080/index.html

Page 31: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

31von JavaFX zu jpro

static Attribute und Methoden (static) meidenAusnahme: alles was zwischen allen Nutzern geteilt wird

Preferences in der Cloud speichern (z.B. database, jclouds)

Dateizugriff ändern (Upload/ Download)

System.exit(0) und Toolkit.exit() entfernen

“Save as...” neu definieren. Entweder als Download oder Speichern in die Cloud

Page 32: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

32jpro WebAPI

Platform switches (isDesktop() / isBrowser())

Upload/Download Files

Ausführen und eval JavaScript

Register Java Callbacks

Register JavaScript Variables

Cookies zugreifen

Page 33: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

33

e.g. cache images, save effects,

optimise CSS rules, prevent

memory leaks

develop resource-aware

GUI adjustment for different

devices

Responsive Design

in case of performance

optimizations

Run JS Code in the Browser

e.g. rethink web or app metaphors

User Interfaceparadigm

like Ajax applications, defining

URLs, which direct to defined

states in a application like

home, purchase, pricing etc.

application states/pages

e.g. JMeter with Web-Driver or

Cloud services like loader.io

Run performance tests

best practicemit jpro

Page 34: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

34

jpro.handsOnCode();

Page 35: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

35

“Hello JPro”skinned by CSS

Controller Class

Tag Codeembed “Hello JPro”

Demo with <jpro>

Quellcodeshow case

Page 36: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

36Real World ApplikationWeb page jpro.io

Page 37: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

37

Server 1

AsiaServer 3: Sydney

AmericaServer 2: California

EuropeServer 1: Frankfurt

Server 2

Server N

GEO LOAD

Balancing

Real World ApplikationWeb page jpro.io

Page 38: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

38

Hosting

3x Amazon EC2 t2.large

Geo-Balancing over DNS

Port-Forwarding for www.jpro.io(Port 80 => 8080)

Real World ApplikationWeb page jpro.io

Page 39: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

39

= Web 3.0

Page 40: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

40

Finally

Page 41: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

41

W.O.R.A.Wiederverwendung von

Source Code

sharing is caring

fast developmentEine Sprache (Java),

common tools (Maven, Gradle, Jenkins)

IP ProtectionGeistiges Eigentum ist

geschützt

scale easilyserverseitiges Scaling

Crossplattform deployment

Deployment auf alle Plattformen (Desktop,

Mobile, Web)

zentrale Updatessoftware updates finden

auf dem Server statt

being a great team

java und Crossplatform Enthusiasten

Unsere Philosophiesumup everything

Page 42: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro-software.com© 2016 jpro technologies AG. All Rights Reserved.

42

First Alpha

Demos, Beispiele

Ende 2015

Closed BetaViele neue Demos

Early Bird Customers

Sommer 2016

Selected Early BirdsCommunity Demos

Integration in Web Services

Erste TeaVM version

Anfang 2018

Open Release

Ende Juni 2017

RoadmapProjekt Status

Page 43: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

43

SIGN UP!

jpro.io/?page=signup

Page 44: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

44

KAFFEE PAUSE ?….

Page 45: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

45

ONE MORE THING?Go to

multiview.jpro.io

Page 46: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

46MultiView?one more thing

Scene3

Scene2

Scene6

Scene5

Scene1 Scene4

Scene9

Scene8

...

..

Scene7 .

JavaFX● single Scene● Scene zu

mehreren Nutzern routen Scene5

Page 47: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

47

VIELEN DANK!

jpro_io

Page 48: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

48

Q & A?

Page 49: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

49

jpro_io

Follow us on Twitter

Page 50: THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire Software Reusable libraries reusing code is one of the major advantages of the Java

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

50