Top Banner
THE JAVAFX ECOSYSTEM ANDRES ALMIRAY @AALMIRAY
37

Andres Almiray - O ecosistema JavaFX

Apr 15, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Andres Almiray - O ecosistema JavaFX

THE JAVAFX

ECOSYSTEM

ANDRES ALMIRAY

@AALMIRAY

Page 2: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

Page 3: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

Page 4: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

LAYOUT

Page 5: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

MigLayout - http://miglayout.com/

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?><?import org.tbee.javafx.scene.layout.fxml.MigPane?>

<MigLayoutPane 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"/></MigLayoutPane>

Page 6: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

WIDGETS

Page 7: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Page 8: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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 9: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

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

Page 10: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Page 11: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

LOOKS

Page 12: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Page 13: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Page 14: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Page 15: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Page 16: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Page 17: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

TESTING

Page 18: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

public class DesktopPaneTest extends ApplicationTest {public void start(Stage stage) { /* init */ }

@Testpublic 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 19: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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 20: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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 21: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

FRAMEWORKS

Page 22: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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 23: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

JacpFX - http://jacpfx.org/

• Spring support

• Maven support

• Workbench and Perspective concepts borrowed from Eclipse

• Messaging

• Light-weight event bus

• View templates

Page 24: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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 25: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

MvvmFX - https://github.com/sialcasa/mvvmFX

Provides necessary components to implement the MVVM

pattern with JavaFX.

Maven compatible.

Page 26: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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 27: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

PLATFORMS

Page 28: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Eclipse RCP + JavaFX Views

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

NetBeans RCP + JavaFX Views

Page 29: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

LIBRARIES

Page 30: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Page 31: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

Page 32: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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

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

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

WellbehavedFX -

https://github.com/TomasMikula/WellBehavedFX

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

Page 33: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

MISC

Page 34: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

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 35: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

AsciidocFX - http://asciidocfx.com/

Page 36: Andres Almiray - O ecosistema JavaFX

@aalmiray #JavaOneBrazil@aalmiray #JavaOneBrazil

Page 37: Andres Almiray - O ecosistema JavaFX

THANK YOU!

ANDRES ALMIRAY

@AALMIRAY