the javafx ecosystem - rainfocus · the javafx ecosystem is comprised of open source and commercial...

46
THE JAVAFX ECOSYSTEM ANDRES ALMIRAY IX-CHEL RUIZ @AALMIRAY @IXCHELRUIZ

Upload: others

Post on 01-Sep-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

THE JAVAFX ECOSYSTEM

ANDRES ALMIRAY IX-CHEL RUIZ @AALMIRAY @IXCHELRUIZ

Page 2: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only
Page 3: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

DON’T FORGET TO VOTE!

Page 4: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

DISCLAIMER

Page 5: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

THE JAVAFX ECOSYSTEM IS COMPRISED OF OPEN SOURCE AND COMMERCIAL

OFFERINGS.

ALL PROJECTS LISTED IN THIS PRESENTATION ARE OPEN SOURCE.

WE’LL ONLY COVER LIBRARIES AND

FRAMEWORKS. THE JAVAFX ECOSYSTEM IS SO BIG YOU

CAN’T COVER IT ALL IN 1 HOUR.

Page 6: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only
Page 7: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

LAYOUT

Page 8: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

MigLayout - http://miglayout.com <?xml  version="1.0"  encoding="UTF-­‐8"?>    <?import  javafx.scene.control.*?>  <?import  org.tbee.javafx.scene.layout.fxml.MigPane?>    <MigPane  xmlns:fx="http://javafx.com/fxml"                      fx:controller="org.example.SampleController"                      layout="fill,  wrap  2"                        cols="[label,  left,  pref!][grow,  50::]">          <Label  text="Username:"/>          <TextField/>          <Label  text="Password:"/>          <PasswordField/>          <Button  prefWidth="200.0"  text="Login"                          MigLayoutPane.cc="span  2,  right"/>  </MigPane>  

Page 9: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

WIDGETS

Page 10: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

Medusa - https://github.com/HanSolo/Medusa

Page 11: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

JSilhouette - https://github.com/aalmiray/jsilhouette

Page 12: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

JideFX - https://github.com/jidesoft/jidefx-oss Fields: FormattedTextField, NumericTextField, etc.

Decoration: apply decorators anywhere (like JXLayer).

Validation: custom validators; builds on top of decoration.

Common utilities for animations, tooltips, hints, search, etc.

Page 13: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

RichTextFX - https://github.com/TomasMikula/RichTextFX

https://github.com/JFormDesigner/markdown-writer-fx

Page 14: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

JFXtras - http://jfxtras.org/

Page 15: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

ControlsFX - http://fxexperience.com/controlsfx/

Page 16: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

LOOKS

Page 17: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

JFoenix - https://github.com/jfoenixadmin/JFoenix/

Page 18: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

BootstrapFX - https://github.com/aalmiray/bootstrapfx/

Page 19: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

FontawesomeFX - https://bitbucket.org/Jerady/fontawesomefx/

Page 20: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

Ikonli - http://aalmiray.github.io/ikonli/

Page 21: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

Undecorator - https://github.com/in-sideFX/UndecoratorBis

Page 22: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

TESTING

Page 23: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

TestFX - https://github.com/TestFX/TestFX

public  class  DesktopPaneTest  extends  ApplicationTest  {          public  void  start(Stage  stage)  {  /*  init  */  }            @Test          public  void  should_drag_file_into_trashcan()  {                  //  given:                  rightClickOn("#desktop").moveTo("New")                                          .clickOn("Text  Document");                  write("myTextfile.txt").push(ENTER);                    //  when:                  drag(".file").dropTo("#trash-­‐can");                    //  then:                  verifyThat("#desktop",  hasChildren(0,  ".file"));          }  }  

Page 24: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

TestFX - https://github.com/TestFX/TestFX

clickOn("#showSettingsButton");    JFXDrawer  settingsPanel  =  lookup("#drawer").query();  waitUntil(settingsPanel,  isShown(),  defaultWaitTimeout());    verifyThat("#username",  hasText(defaultUsernameValue));  clickOn("#username").eraseText(defaultUsernameValue.length());  clickOn("#username").write(usernameValue);  verifyThat("#username",  hasText(usernameValue));  

Page 25: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

TestFX - https://github.com/aalmiray/testfx-dsl/

import  static  org.kordamp.testfx.QueryChain.$;    $("#showSettingsButton")          .click()  .$$("#drawer")          .waitUntil(isShown(),  defaultWaitTimeout())  .$$("#username")          .verifyThat(hasText(defaultUsernameValue))          .click()          .eraseText(defaultUsernameValue.length())          .write(usernameValue)          .verifyThat(hasText(usernameValue));  

Page 26: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

FRAMEWORKS

Page 27: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

Afterburner.fx - http://afterburner.adam-bien.com/ •  High productivity with WYSIWYG editor inclusion

•  No boilerplate code

•  Highest possible non-intrusion

•  No external libraries or dependencies

•  Maven 3 build support

Page 28: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

JacpFX - http://jacpfx.org/ •  Spring support

•  Maven support

•  Workbench and Perspective concepts borrowed from Eclipse

•  Messaging

•  Light-weight event bus •  View templates

Page 29: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

JRebirth - http://www.jrebirth.org/ •  Simplify Thread Management

•  Avoid memory leak

•  Maintain a good SoC

•  Be the more convenient as possible for developers

•  Be lightweight (and modularizable) •  Follow OSS spirit and Java Best Practices

•  Maven compatible

•  MVC

Page 30: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

MvvmFX - https://github.com/sialcasa/mvvmFX Provides necessary components to implement the MVVM pattern with JavaFX. Maven compatible.

Page 31: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

Griffon - http://griffon-framework.org/ •  Application life cycle

•  Configuration

•  MVC artifacts

•  Localized resources (and injection)

•  Loosely coupled actions •  Dependency injection

•  Event system

•  Centralized error management

•  Extension points via plugins •  Maven and Gradle support

Page 32: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

PLATFORMS

Page 33: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

e(fx)clipse - http://efxclipse.bestsolution.at/

Eclipse RCP + JavaFX Views

eFX - https://bitbucket.org/sreimers/efx

NetBeans RCP + JavaFX Views

Page 34: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

LIBRARIES

Page 35: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

AnchorFX - https://github.com/aalmiray/AnchorFX

Page 36: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

VWorkflows - https://github.com/miho/VWorkflows

Page 37: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

ReactFX - https://github.com/TomasMikula/ReactFX Flowless - https://github.com/TomasMikula/Flowless

UndoFX - https://github.com/TomasMikula/UndoFX

WellbehavedFX - https://github.com/TomasMikula/WellBehavedFX

Page 38: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

RxJavaFX - https://github.com/ReactiveX/RxJavaFX

Page 39: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

MISC

Page 40: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

GroovyFX - http://groovyfx.org/

application(title:  'Sample',  sizeToScene:  true,                              centerOnScreen:  true)  {          scene(fill:  WHITE,  width:  300,  height:  120)  {                  migLayoutPane(layoutConstraints:  'fill')  {                          label  'Username:',  constraints:  'left'                          textField  constraints:  'grow,  wrap')                          label  'Password:',  constraints:  'left'                          passwordField  constraints:  'grow,  wrap')                          button  loginAction,  constraints:  'span  2,  right'                  }          }  }  

Page 41: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

AsciidocFX - http://asciidocfx.com/

Page 42: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only
Page 43: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only
Page 44: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only
Page 45: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

DON’T FORGET TO VOTE!

Page 46: THE JAVAFX ECOSYSTEM - RainFocus · the javafx ecosystem is comprised of open source and commercial offerings. all projects listed in this presentation are open source. we’ll only

THANK YOU!

ANDRES ALMIRAY IX-CHEL RUIZ @AALMIRAY @IXCHELRUIZ