SlideShare a Scribd company logo
Moving to the Client - JavaFX and HTML5 Stephen Chin Chief Agile Methodologist, GXS steveonjava@gmail.com  tweet: @steveonjava Kevin Nilson VP of Engineering, Just.Me kevin.nilson@just.me  tweet: @javaclimber
About the Presenters Stephen Chin Kevin Nilson Silicon Valley Web JUG Silicon Valley JS Meetup Silicon Valley Google Technology UG Chief Agile Methodologist, GXS Author, Pro JavaFX Platform Java Champion Author Web 2.0 Fundamentals User Groups Leader Java Champion
This is a Participatory Session! Every now and then we will say something interesting…  and it will go out in a tweet. Follow  @steveonjava  to watch the tweets and retweet the ones you like to your followers Feel free to create your own tweets using the hash tags  "#HTML5 #JavaFX #Devoxx" We have some goodies for folks who play.  
History of the Web 1991  HTML 1994  HTML 2 1996  CSS 1  +  JavaScript 1997  HTML 4 1998  CSS 2 2000  XHTML 1 2002   Tableless Web Design 2005   AJAX 2009   HTML 5
What is HTML5 Web Hypertext Application Technology Working Group ( WHATWG ) HTML5  !=   HTML + CSS + JavaScript HTML5 = Next Generation Features for Modern Web Development Offline Storage, Web SQL Database, IndexedDB, Application Cache, Web Workers, WebSocket, Notifications, Native Drag & Drop, File System, GeoLocation, Speech Input,  Form Types, Audio, Video, Canvas, SVG
HTML5 Rounded Corners http://slides.html5rocks.com/#rounded-corners HTML5 No HTML5
HTML5 Canvas 3D (WebGL) http://oos.moxiecode.com/js_webgl/fish/index.html
Prefixes -webkit-text-fill-color: black; -webkit-column-count: 2; Before the spec is final Before the browser implementation is verified
Cross Browser Browsers behave differently HTML5 Non-Ambiguous Spec JavaScript Frameworks (jQuery, Dojo, YUI) Give Consistent API
Acid Test http://acid3.acidtests.org/
jQuery On The Rise 51% of Top 10,000 sites use jQuery (builtwith.com)
jQuery http://jsfiddle.net/3urR9/
Reaching Older Browsers Chrome Frame IE6, IE7, IE8 running Chrome Modernizr Feature Detection rather than User Agent Sniffing
Web on Mobile iPhone UIWebView Formatting Text Indalo is an iPhone App Kevin Helped Write
Native Mobile Web Titanium Write JavaScript, but Renders Native Application Many “Native” widgets are UIWebView E*Trade API Contest App Kevin Wrote
JavaFX 2.0 Platform Immersive Desktop Experience Combining the Best of JavaFX and HTML5 Leverage your Java skills with modern JavaFX APIs Integrate Java, JavaScript, and HTML5 in the same application New graphics stack takes advantage of hardware acceleration for 2D and 3D applications User your favorite IDE: NetBeans, Eclipse, IntelliJ, etc.
JavaFX and the Java Platform  Images Copyright Oracle
Architecture of JavaFX 2.0 Java Virtual Machine Java2D Open GL D3D Prism Glass WinTk Media Engine Web Engine JavaFX Public API Quantum Toolkit
Displaying HTML in JavaFX public class WebViewTest extends Application { public static void main(String[] args) { launch(WebViewTest.class, args); } @Override public void start(Stage stage) { WebView webView = new WebView(); webView.getEngine().load("http://google.com"); Scene scene = new Scene(webView); stage.setScene(scene); stage.setTitle("Web Test"); stage.show(); }}
JVM Language Options Imperative Java Java Builders GroovyFX ScalaFX Visage
Displaying HTML in JavaFX public class WebViewTest extends Application { public static void main(String[] args) { launch(WebViewTest.class, args); } @Override public void start(Stage stage) { WebView webView = new WebView(); webView.getEngine().load("http://google.com"); Scene scene = new Scene(webView); stage.setScene(scene); stage.setTitle("Web Test"); stage.show(); }} 12 Lines 311 Characters
HTML in JavaFX Builders public class WebViewTest extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) { WebView webView = WebViewBuilder.create().build(); stage.setScene(SceneBuilder.create().root(webView).build()); webView.getEngine().load("http://google.com"); stage.setTitle("Web Test"); stage.show(); }} 11 Lines 321 Characters
HTML in GroovyFX GroovyFX.start { primaryStage -> def sg = new SceneGraphBuilder() sg.stage( title: 'Web Test', show: true) { scene () { wv = webView() } } wv.engine.load("http://google.com/") } 11 Lines 152 Characters
HTML in ScalaFX object WebViewTest extends JFXApp { stage = new Stage { title = "Web Test" scene = new Scene { WebView { location = "http://google.com/" } } } } 10 Lines 117 Characters
HTML in Visage Stage { title: "Web Test" Scene { WebView { location: "http://google.com/" } } } 8 Lines 67 Characters
Calling Javascript from JavaFX String script = "alert('We have got a message, Houston!');”; eng.executeScript(script);
Responding to Browser Events Supported Events: Alert/Confirm/Prompt: Respond to JavaScript user interaction functions Resize: Web page moves or resizes the window object Status Web page changes the status text Visibility Hide or show the window object Popup Spawn a second web view/engine
HTML5/JavaFX Integration Demo
Pro JavaFX 2 Platform Coming Soon! Coming 1 st  Quarter 2012 All examples rewritten in Java Covers new controls including: WebPane TableView TreeView Etc. Content on ScalaFX/GroovyFX/Visage
Stephen Chin [email_address] tweet: @steveonjava Kevin Nilson k [email_address] tweet: @javaclimber Thank You!
Ad

Recommended

Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
Stephen Chin
 
Moving To The Client - JavaFX and HTML5
Moving To The Client - JavaFX and HTML5
Stephen Chin
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
Stephen Chin
 
JavaFX and HTML5 - Like Curds and Rice
JavaFX and HTML5 - Like Curds and Rice
Stephen Chin
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
Stephen Chin
 
Vaadin and Spring at Devoxx UK 2015
Vaadin and Spring at Devoxx UK 2015
Sami Ekblad
 
Introduction to Vaadin
Introduction to Vaadin
Jeroen Benats
 
Html5 with Vaadin and Scala
Html5 with Vaadin and Scala
Joonas Lehtinen
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - Istanbul
Robert Nyman
 
Vaadin & Web Components
Vaadin & Web Components
Joonas Lehtinen
 
Vaadin 7.2
Vaadin 7.2
Joonas Lehtinen
 
Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29
Alexandre Morgaut
 
React JS
React JS
Software Infrastructure
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Alexandre Morgaut
 
Reactjs Introduction - Virtual DOM
Reactjs Introduction - Virtual DOM
Tamir Azrab
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
Sunil Dalal
 
5 best Java Frameworks
5 best Java Frameworks
Aegis Softtech
 
Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 
React workshop presentation
React workshop presentation
Bojan Golubović
 
Java Framework comparison
Java Framework comparison
SIB Visions GmbH
 
The complete-beginners-guide-to-react dyrr
The complete-beginners-guide-to-react dyrr
AfreenK
 
Developing dynamic ui using react
Developing dynamic ui using react
sushmita bhor
 
VueJS Best Practices
VueJS Best Practices
Fatih Acet
 
SnapyX - ParisJS
SnapyX - ParisJS
florianharmel
 
webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)
Hendrik Ebbers
 
Reactjs workshop
Reactjs workshop
Ahmed rebai
 
Make your animations perform well - Anna Migas - Codemotion Rome 2017
Make your animations perform well - Anna Migas - Codemotion Rome 2017
Codemotion
 
Vue micro frontend implementation patterns
Vue micro frontend implementation patterns
Albert Brand
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
Ryan Cuprak
 
jfx
jfx
aprydwi
 

More Related Content

What's hot (20)

The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - Istanbul
Robert Nyman
 
Vaadin & Web Components
Vaadin & Web Components
Joonas Lehtinen
 
Vaadin 7.2
Vaadin 7.2
Joonas Lehtinen
 
Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29
Alexandre Morgaut
 
React JS
React JS
Software Infrastructure
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Alexandre Morgaut
 
Reactjs Introduction - Virtual DOM
Reactjs Introduction - Virtual DOM
Tamir Azrab
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
Sunil Dalal
 
5 best Java Frameworks
5 best Java Frameworks
Aegis Softtech
 
Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 
React workshop presentation
React workshop presentation
Bojan Golubović
 
Java Framework comparison
Java Framework comparison
SIB Visions GmbH
 
The complete-beginners-guide-to-react dyrr
The complete-beginners-guide-to-react dyrr
AfreenK
 
Developing dynamic ui using react
Developing dynamic ui using react
sushmita bhor
 
VueJS Best Practices
VueJS Best Practices
Fatih Acet
 
SnapyX - ParisJS
SnapyX - ParisJS
florianharmel
 
webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)
Hendrik Ebbers
 
Reactjs workshop
Reactjs workshop
Ahmed rebai
 
Make your animations perform well - Anna Migas - Codemotion Rome 2017
Make your animations perform well - Anna Migas - Codemotion Rome 2017
Codemotion
 
Vue micro frontend implementation patterns
Vue micro frontend implementation patterns
Albert Brand
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - Istanbul
Robert Nyman
 
Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29
Alexandre Morgaut
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Alexandre Morgaut
 
Reactjs Introduction - Virtual DOM
Reactjs Introduction - Virtual DOM
Tamir Azrab
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
Sunil Dalal
 
5 best Java Frameworks
5 best Java Frameworks
Aegis Softtech
 
Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 
React workshop presentation
React workshop presentation
Bojan Golubović
 
The complete-beginners-guide-to-react dyrr
The complete-beginners-guide-to-react dyrr
AfreenK
 
Developing dynamic ui using react
Developing dynamic ui using react
sushmita bhor
 
VueJS Best Practices
VueJS Best Practices
Fatih Acet
 
webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)
Hendrik Ebbers
 
Reactjs workshop
Reactjs workshop
Ahmed rebai
 
Make your animations perform well - Anna Migas - Codemotion Rome 2017
Make your animations perform well - Anna Migas - Codemotion Rome 2017
Codemotion
 
Vue micro frontend implementation patterns
Vue micro frontend implementation patterns
Albert Brand
 

Similar to Moving to the Client - JavaFX and HTML5 (PowerPoint Version) (20)

JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
Ryan Cuprak
 
jfx
jfx
aprydwi
 
JavaFX 101
JavaFX 101
Richard Bair
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration
Kazuchika Sekiya
 
XML-Free Programming
XML-Free Programming
Stephen Chin
 
JavaFX 2 Rich Desktop Platform
JavaFX 2 Rich Desktop Platform
Rajmahendra Hegde
 
JavaFX - Next Generation Java UI
JavaFX - Next Generation Java UI
Yoav Aharoni
 
Front End Development | Introduction
Front End Development | Introduction
JohnTaieb
 
JavaFX vs AJAX vs Flex
JavaFX vs AJAX vs Flex
Craig Dickson
 
Presentation JavaFX
Presentation JavaFX
recon4
 
Presentation JavaFX
Presentation JavaFX
recon4
 
JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)
Stephen Chin
 
Server Side Javascript
Server Side Javascript
rajivmordani
 
The Brainify App - JavaFx
The Brainify App - JavaFx
Mohd Shamweel
 
JavaFX and WidgetFX at SVCodeCamp
JavaFX and WidgetFX at SVCodeCamp
Stephen Chin
 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5
Christian Heindel
 
Flex vs. HTML5 for RIAS
Flex vs. HTML5 for RIAS
Pamela Fox
 
JavaFX 2.0 With Alternative Languages [Portuguese]
JavaFX 2.0 With Alternative Languages [Portuguese]
Stephen Chin
 
Introduction to JavaFx and HTML5
Introduction to JavaFx and HTML5
Neil Ghosh
 
Java Restart with WebFX
Java Restart with WebFX
Nikita Lipsky
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
Ryan Cuprak
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration
Kazuchika Sekiya
 
XML-Free Programming
XML-Free Programming
Stephen Chin
 
JavaFX 2 Rich Desktop Platform
JavaFX 2 Rich Desktop Platform
Rajmahendra Hegde
 
JavaFX - Next Generation Java UI
JavaFX - Next Generation Java UI
Yoav Aharoni
 
Front End Development | Introduction
Front End Development | Introduction
JohnTaieb
 
JavaFX vs AJAX vs Flex
JavaFX vs AJAX vs Flex
Craig Dickson
 
Presentation JavaFX
Presentation JavaFX
recon4
 
Presentation JavaFX
Presentation JavaFX
recon4
 
JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)
Stephen Chin
 
Server Side Javascript
Server Side Javascript
rajivmordani
 
The Brainify App - JavaFx
The Brainify App - JavaFx
Mohd Shamweel
 
JavaFX and WidgetFX at SVCodeCamp
JavaFX and WidgetFX at SVCodeCamp
Stephen Chin
 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5
Christian Heindel
 
Flex vs. HTML5 for RIAS
Flex vs. HTML5 for RIAS
Pamela Fox
 
JavaFX 2.0 With Alternative Languages [Portuguese]
JavaFX 2.0 With Alternative Languages [Portuguese]
Stephen Chin
 
Introduction to JavaFx and HTML5
Introduction to JavaFx and HTML5
Neil Ghosh
 
Java Restart with WebFX
Java Restart with WebFX
Nikita Lipsky
 
Ad

More from Stephen Chin (20)

DevOps Tools for Java Developers v2
DevOps Tools for Java Developers v2
Stephen Chin
 
10 Ways Everyone Can Support the Java Community
10 Ways Everyone Can Support the Java Community
Stephen Chin
 
Java Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive Guide
Stephen Chin
 
DevOps Tools for Java Developers
DevOps Tools for Java Developers
Stephen Chin
 
Java Clients and JavaFX - Presented to LJC
Java Clients and JavaFX - Presented to LJC
Stephen Chin
 
RetroPi Handheld Raspberry Pi Gaming Console
RetroPi Handheld Raspberry Pi Gaming Console
Stephen Chin
 
Confessions of a Former Agile Methodologist (JFrog Edition)
Confessions of a Former Agile Methodologist (JFrog Edition)
Stephen Chin
 
Devoxx4Kids Lego Workshop
Devoxx4Kids Lego Workshop
Stephen Chin
 
Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)
Stephen Chin
 
Confessions of a Former Agile Methodologist
Confessions of a Former Agile Methodologist
Stephen Chin
 
Internet of Things Magic Show
Internet of Things Magic Show
Stephen Chin
 
Zombie Time - JSR 310 for the Undead
Zombie Time - JSR 310 for the Undead
Stephen Chin
 
JCrete Embedded Java Workshop
JCrete Embedded Java Workshop
Stephen Chin
 
Oracle IoT Kids Workshop
Oracle IoT Kids Workshop
Stephen Chin
 
OpenJFX on Android and Devices
OpenJFX on Android and Devices
Stephen Chin
 
Java on Raspberry Pi Lab
Java on Raspberry Pi Lab
Stephen Chin
 
Java 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and Legos
Stephen Chin
 
DukeScript
DukeScript
Stephen Chin
 
Devoxx4Kids NAO Workshop
Devoxx4Kids NAO Workshop
Stephen Chin
 
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)
Stephen Chin
 
DevOps Tools for Java Developers v2
DevOps Tools for Java Developers v2
Stephen Chin
 
10 Ways Everyone Can Support the Java Community
10 Ways Everyone Can Support the Java Community
Stephen Chin
 
Java Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive Guide
Stephen Chin
 
DevOps Tools for Java Developers
DevOps Tools for Java Developers
Stephen Chin
 
Java Clients and JavaFX - Presented to LJC
Java Clients and JavaFX - Presented to LJC
Stephen Chin
 
RetroPi Handheld Raspberry Pi Gaming Console
RetroPi Handheld Raspberry Pi Gaming Console
Stephen Chin
 
Confessions of a Former Agile Methodologist (JFrog Edition)
Confessions of a Former Agile Methodologist (JFrog Edition)
Stephen Chin
 
Devoxx4Kids Lego Workshop
Devoxx4Kids Lego Workshop
Stephen Chin
 
Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)
Stephen Chin
 
Confessions of a Former Agile Methodologist
Confessions of a Former Agile Methodologist
Stephen Chin
 
Internet of Things Magic Show
Internet of Things Magic Show
Stephen Chin
 
Zombie Time - JSR 310 for the Undead
Zombie Time - JSR 310 for the Undead
Stephen Chin
 
JCrete Embedded Java Workshop
JCrete Embedded Java Workshop
Stephen Chin
 
Oracle IoT Kids Workshop
Oracle IoT Kids Workshop
Stephen Chin
 
OpenJFX on Android and Devices
OpenJFX on Android and Devices
Stephen Chin
 
Java on Raspberry Pi Lab
Java on Raspberry Pi Lab
Stephen Chin
 
Java 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and Legos
Stephen Chin
 
Devoxx4Kids NAO Workshop
Devoxx4Kids NAO Workshop
Stephen Chin
 
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)
Stephen Chin
 
Ad

Recently uploaded (20)

MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
The Future of AI Agent Development Trends to Watch.pptx
The Future of AI Agent Development Trends to Watch.pptx
Lisa ward
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
The Future of AI Agent Development Trends to Watch.pptx
The Future of AI Agent Development Trends to Watch.pptx
Lisa ward
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 

Moving to the Client - JavaFX and HTML5 (PowerPoint Version)

  • 1. Moving to the Client - JavaFX and HTML5 Stephen Chin Chief Agile Methodologist, GXS [email protected] tweet: @steveonjava Kevin Nilson VP of Engineering, Just.Me [email protected] tweet: @javaclimber
  • 2. About the Presenters Stephen Chin Kevin Nilson Silicon Valley Web JUG Silicon Valley JS Meetup Silicon Valley Google Technology UG Chief Agile Methodologist, GXS Author, Pro JavaFX Platform Java Champion Author Web 2.0 Fundamentals User Groups Leader Java Champion
  • 3. This is a Participatory Session! Every now and then we will say something interesting… and it will go out in a tweet. Follow @steveonjava to watch the tweets and retweet the ones you like to your followers Feel free to create your own tweets using the hash tags "#HTML5 #JavaFX #Devoxx" We have some goodies for folks who play. 
  • 4. History of the Web 1991 HTML 1994 HTML 2 1996 CSS 1 + JavaScript 1997 HTML 4 1998 CSS 2 2000 XHTML 1 2002 Tableless Web Design 2005 AJAX 2009 HTML 5
  • 5. What is HTML5 Web Hypertext Application Technology Working Group ( WHATWG ) HTML5 != HTML + CSS + JavaScript HTML5 = Next Generation Features for Modern Web Development Offline Storage, Web SQL Database, IndexedDB, Application Cache, Web Workers, WebSocket, Notifications, Native Drag & Drop, File System, GeoLocation, Speech Input, Form Types, Audio, Video, Canvas, SVG
  • 6. HTML5 Rounded Corners http://slides.html5rocks.com/#rounded-corners HTML5 No HTML5
  • 7. HTML5 Canvas 3D (WebGL) http://oos.moxiecode.com/js_webgl/fish/index.html
  • 8. Prefixes -webkit-text-fill-color: black; -webkit-column-count: 2; Before the spec is final Before the browser implementation is verified
  • 9. Cross Browser Browsers behave differently HTML5 Non-Ambiguous Spec JavaScript Frameworks (jQuery, Dojo, YUI) Give Consistent API
  • 11. jQuery On The Rise 51% of Top 10,000 sites use jQuery (builtwith.com)
  • 13. Reaching Older Browsers Chrome Frame IE6, IE7, IE8 running Chrome Modernizr Feature Detection rather than User Agent Sniffing
  • 14. Web on Mobile iPhone UIWebView Formatting Text Indalo is an iPhone App Kevin Helped Write
  • 15. Native Mobile Web Titanium Write JavaScript, but Renders Native Application Many “Native” widgets are UIWebView E*Trade API Contest App Kevin Wrote
  • 16. JavaFX 2.0 Platform Immersive Desktop Experience Combining the Best of JavaFX and HTML5 Leverage your Java skills with modern JavaFX APIs Integrate Java, JavaScript, and HTML5 in the same application New graphics stack takes advantage of hardware acceleration for 2D and 3D applications User your favorite IDE: NetBeans, Eclipse, IntelliJ, etc.
  • 17. JavaFX and the Java Platform Images Copyright Oracle
  • 18. Architecture of JavaFX 2.0 Java Virtual Machine Java2D Open GL D3D Prism Glass WinTk Media Engine Web Engine JavaFX Public API Quantum Toolkit
  • 19. Displaying HTML in JavaFX public class WebViewTest extends Application { public static void main(String[] args) { launch(WebViewTest.class, args); } @Override public void start(Stage stage) { WebView webView = new WebView(); webView.getEngine().load("http://google.com"); Scene scene = new Scene(webView); stage.setScene(scene); stage.setTitle("Web Test"); stage.show(); }}
  • 20. JVM Language Options Imperative Java Java Builders GroovyFX ScalaFX Visage
  • 21. Displaying HTML in JavaFX public class WebViewTest extends Application { public static void main(String[] args) { launch(WebViewTest.class, args); } @Override public void start(Stage stage) { WebView webView = new WebView(); webView.getEngine().load("http://google.com"); Scene scene = new Scene(webView); stage.setScene(scene); stage.setTitle("Web Test"); stage.show(); }} 12 Lines 311 Characters
  • 22. HTML in JavaFX Builders public class WebViewTest extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) { WebView webView = WebViewBuilder.create().build(); stage.setScene(SceneBuilder.create().root(webView).build()); webView.getEngine().load("http://google.com"); stage.setTitle("Web Test"); stage.show(); }} 11 Lines 321 Characters
  • 23. HTML in GroovyFX GroovyFX.start { primaryStage -> def sg = new SceneGraphBuilder() sg.stage( title: 'Web Test', show: true) { scene () { wv = webView() } } wv.engine.load("http://google.com/") } 11 Lines 152 Characters
  • 24. HTML in ScalaFX object WebViewTest extends JFXApp { stage = new Stage { title = "Web Test" scene = new Scene { WebView { location = "http://google.com/" } } } } 10 Lines 117 Characters
  • 25. HTML in Visage Stage { title: "Web Test" Scene { WebView { location: "http://google.com/" } } } 8 Lines 67 Characters
  • 26. Calling Javascript from JavaFX String script = "alert('We have got a message, Houston!');”; eng.executeScript(script);
  • 27. Responding to Browser Events Supported Events: Alert/Confirm/Prompt: Respond to JavaScript user interaction functions Resize: Web page moves or resizes the window object Status Web page changes the status text Visibility Hide or show the window object Popup Spawn a second web view/engine
  • 29. Pro JavaFX 2 Platform Coming Soon! Coming 1 st Quarter 2012 All examples rewritten in Java Covers new controls including: WebPane TableView TreeView Etc. Content on ScalaFX/GroovyFX/Visage
  • 30. Stephen Chin [email_address] tweet: @steveonjava Kevin Nilson k [email_address] tweet: @javaclimber Thank You!

Editor's Notes

  • #2: [twitter]HTML5 and JavaFX together? - Find out in Room 7[/twitter]
  • #3: [twitter]Presentation tweets powered by #MacPowerTweet (http://bit.ly/vlGDf5)[/twitter]
  • #4: [twitter]Follow the HTML5/JavaFX Dev Talk here: XXX[/twitter]
  • #5: [twitter]HTML is not a teenager anymore… 20+ years[/twitter]
  • #6: [twitter]HTML5 != HTML + CSS + JavaScript[/twitter]
  • #7: [twitter]Rounded corners in HTML5: http://bit.ly/eVJuNR[/twitter]
  • #8: [twitter]3D WebGL Fish Demo: http://bit.ly/nLYjVf [/twitter]
  • #10: [twitter]HTML5 is a Non-Ambiguous Spec[/twitter]
  • #11: [twitter]Is your brower HTML5 ready? http://acid3.acidtests.org/[/twitter]
  • #12: [twitter]51% of Top 10,000 sites use jQuery[/twitter]
  • #14: [twitter]Chrome Frame enables HTML5 features in IE6: http://bit.ly/47jP6U[/twitter]
  • #17: [twitter]JavaFX combines the Best of Java and HTML5[/twitter]
  • #21: [twitter]WebView let's you embed HTML5 in JavaFX and Swing Apps[/twitter]
  • #22: [twitter]Web Test using Java - 12 lines, 311 characters[/twitter]
  • #23: [twitter]Web Test using Java Builders - 11 lines, 321 characters[/twitter]
  • #24: [twitter]Web Test using GroovyFX - 11 lines, 152 characters: http://groovy.codehaus.org/GroovyFX[/twitter]
  • #25: [twitter]Web Test using ScalaFX - 10 lines, 117 characters: http://code.google.com/p/scalafx/[/twitter]
  • #26: [twitter]Web Test using Visage - 8 lines, 67 characters http://visage-lang.org/[/twitter]
  • #27: [twitter]You can even call Javascript methods from JavaFX[/twitter]
  • #29: [twitter]No Map component? Embed Google Maps in your JavaFX app![/twitter]
  • #30: [twitter]Pro JavaFX 2 Coming in Q1 2012: http://www.apress.com/9781430268727 [/twitter]
  • #31: [twitter]Thank you for following Moving to the Client - JavaFX and HTML5[/twitter]