SlideShare a Scribd company logo
Developing Rich Interfaces in JavaFX for
Ultrabooks
Bruno Borges
Felipe Pedroso
Agenda
• The future of PCs
• JavaFX and Touch Support
• Using JNI to work with sensors
2
Mobile Computing Lines are Blurring
Ultrabook™
Convertible & Detachable
Ultrabook™
TabletSmartphone
Consumption Usages Creation/Productivity
Notebook
The Ultrabook™ Platform
Reshaping the PC Experience
4
Ambient
Light Sensor
GPS
Compass
Near Field
Communication
Gyroscope
Ultrabook™
Accelerometer
Multi-Touch
Context Aware
Sensors
OK, they have all those features…
… but how can we implement them using Java?
To allow users to TOUCH my Java App...
6
• Should I use...
– AWT?
– Swing?
– SWT?
• Actually, you can use them but...
– They aren’t made for multi-touch (OK, there’s a way to do it)
– You must optimize your UI controls to be more ‘touch friendly’
• So, how to do it in a simple and easy way?
7
Actions supported
• Touch events: Down, Move and Up
– Tap (Down and Up) / Double tap
– Drag and Drop (Down, Move and Up)
– Hold
• Gestures
– Swipe: Up, Down, Left and Right
– Zoom: Pinch / Spread
– Rotate
8
What I need to do to manipulate components?
• Your components must extend the Node class or any of its
subclasses (StackPane, ImageView, etc)
• Set the proper EventHandler to handle the action.
9
What I need to do to manipulate components?
10
• Apply a transform to the component (Translation, Rotation and
Scale):
• Let’s dive into some code!
What about the sensors?
JNI, I choose you!
Available sensors on Ultrabooks
• Accelerometer
– Proper acceleration in three axis (x, y, z)
• Gyrometer
– Device orientation
• Magnetometer
– Strenght and direction of magnetic fields
• GPS (Global Positioning System)
– Location and Time information
• NFC
– Near Field Communication
• Ambient Light Sensor
– Ambient Light Level
12
API Windows – Sensor Fusion
13
API Windows – Namespaces
• Windows.Sensors.*  Common sensors
– Accelerometer
– Gyrometer
– Inclinometer
– OrientationSensor
– SimpleOrientationSensor
– Compass
– LightSensor
• Windows.Devices.Geolocation  GPS
– Geolocator
• Windows.Networking.Proximity  NFC
– ProximityDevice
14
Windows API – How to
• Get the default object of your sensor using the GetDefault method
• You can call the GetCurrentReading() to get the current value of the sensors or...
• ... work with the ReadingChanged event
– Set the attribute ReportInterval (please, respect the MinimumReportInterval to avoid
problems)
– Delegate a method to handle the event (something like setting a method as a listener)
– Handle the event!
• This procedure is valid only for sensors from Windows.Sensors namespace
15
How can I access that?
16
Using JNI to access the sensors from
Windows.Sensors
1. [Java] Create a native method to register the object that will
handle the events that come from the sensor
2. Generate the header file using javah
3. [C++] Create a DLL Project in Visual Studio with the DLLs and
namespaces of the Windows 8 APIS
4. [C++] Use a variable to keep a reference to the object and the ID
(GetMethodID) of the method that will handle the event
17
Using JNI to access the sensors from
Windows.Sensors
5. [C++] Initialize the sensor and delegate a C++ method to handle
the event
6. [C++] Redirect the delegate method call to the Java method using
the function CallVoidMethod with the following parameters: the
Java Object, the method ID and it’s parameters
7. [Java] Handle the event! 
A lot of text? Please, show me the code!
18
What about Linux?
• Touch works fine, but there aren’t clear APIs to read sensors. If
you know how to do it, let’s work together!
19
Wants to know more about Intel Software?
http://software.intel.com/en-us/
20
Windows Community
http://software.intel.com/en-us/windows
21
www.javafxcommunity.com
22
JFXtras.org
23
Take aways
• The PC experience is being reshaped
• JavaFX + Touch = AWESOME
• Using JNI to access the sensors can be LEGENDARY!
Any doubts?
(if yes, the answer is 42)
Thanks a lot!
Bruno Borges
facebook.com/brunocborges
@brunoborges
Felipe Pedroso
facebook.com/felipe.a.pedroso
@felipeapedroso

More Related Content

What's hot

smart quill pen
smart quill pensmart quill pen
smart quill pen
ranjith12
 
Smartquill
SmartquillSmartquill
Smartquill
Arpit Patel
 
Smart quill presentation by vikas
Smart quill presentation by vikasSmart quill presentation by vikas
Smart quill presentation by vikas
Vikas Gupta
 
Smart Quill
Smart QuillSmart Quill
Smart Quill
Jecrc University
 
Ece smart quill ppt
Ece smart quill pptEce smart quill ppt
Ece smart quill ppt
pranay mamilla
 
The power of Kinect in 10 minutes
The power of Kinect in 10 minutesThe power of Kinect in 10 minutes
The power of Kinect in 10 minutes
Tom Kerkhove
 
Smart quill(updated)
Smart quill(updated)Smart quill(updated)
Smart quill(updated)
najeeb Pasha
 
Xbox 360 Kinect
Xbox 360 Kinect  Xbox 360 Kinect
Xbox 360 Kinect
Saif Pathan
 
Smart quill ppt
Smart quill pptSmart quill ppt
Smart quill ppt
jyothsna vanka
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2
Jeff Sipko
 
Kinect presentation
Kinect presentationKinect presentation
Kinect presentation
Ankur Sharma
 
Smart quill
Smart quillSmart quill
Smart quill
Mastan Shaik
 
Smart quill
Smart quillSmart quill
Smart quill
najeeb Pasha
 
Smartquill
SmartquillSmartquill
Smartquill
Govind Raj
 
Smart Quill Pen
Smart Quill PenSmart Quill Pen
Smart Quill Pen
ijaranjani
 
Smart Quill Paras
Smart Quill ParasSmart Quill Paras
Smart Quill Paras
Paras Wadher
 
Smartquill
SmartquillSmartquill
Smartquill
Pramod Kumar
 
Microsoft Smart Quill Pen -A Digital Pen
Microsoft Smart Quill Pen -A Digital PenMicrosoft Smart Quill Pen -A Digital Pen
Microsoft Smart Quill Pen -A Digital Pen
Chirag Gudadhe
 
Seminar on smart pen
Seminar on smart penSeminar on smart pen
Seminar on smart pen
Kalyani Raipur
 
Virtual Mouse
Virtual MouseVirtual Mouse
Virtual Mouse
Vivek Khutale
 

What's hot (20)

smart quill pen
smart quill pensmart quill pen
smart quill pen
 
Smartquill
SmartquillSmartquill
Smartquill
 
Smart quill presentation by vikas
Smart quill presentation by vikasSmart quill presentation by vikas
Smart quill presentation by vikas
 
Smart Quill
Smart QuillSmart Quill
Smart Quill
 
Ece smart quill ppt
Ece smart quill pptEce smart quill ppt
Ece smart quill ppt
 
The power of Kinect in 10 minutes
The power of Kinect in 10 minutesThe power of Kinect in 10 minutes
The power of Kinect in 10 minutes
 
Smart quill(updated)
Smart quill(updated)Smart quill(updated)
Smart quill(updated)
 
Xbox 360 Kinect
Xbox 360 Kinect  Xbox 360 Kinect
Xbox 360 Kinect
 
Smart quill ppt
Smart quill pptSmart quill ppt
Smart quill ppt
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2
 
Kinect presentation
Kinect presentationKinect presentation
Kinect presentation
 
Smart quill
Smart quillSmart quill
Smart quill
 
Smart quill
Smart quillSmart quill
Smart quill
 
Smartquill
SmartquillSmartquill
Smartquill
 
Smart Quill Pen
Smart Quill PenSmart Quill Pen
Smart Quill Pen
 
Smart Quill Paras
Smart Quill ParasSmart Quill Paras
Smart Quill Paras
 
Smartquill
SmartquillSmartquill
Smartquill
 
Microsoft Smart Quill Pen -A Digital Pen
Microsoft Smart Quill Pen -A Digital PenMicrosoft Smart Quill Pen -A Digital Pen
Microsoft Smart Quill Pen -A Digital Pen
 
Seminar on smart pen
Seminar on smart penSeminar on smart pen
Seminar on smart pen
 
Virtual Mouse
Virtual MouseVirtual Mouse
Virtual Mouse
 

Similar to Developing Rich Interfaces in JavaFX for Ultrabooks

Developing Rich Interfaces in JavaFX for Ultrabooks
Developing Rich Interfaces in JavaFX for UltrabooksDeveloping Rich Interfaces in JavaFX for Ultrabooks
Developing Rich Interfaces in JavaFX for Ultrabooks
Bruno Borges
 
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Itvedant
 
Sixth sense techno_ppt
Sixth sense techno_pptSixth sense techno_ppt
Sixth sense techno_ppt
PALAK_SINGH
 
6th sense technology
6th sense technology6th sense technology
6th sense technology
Sarbjeet kaur
 
Sixth sense technology ppt
Sixth sense technology pptSixth sense technology ppt
Sixth sense technology ppt
Mohammad Adil
 
Touchless Touchscreen Technology
Touchless Touchscreen TechnologyTouchless Touchscreen Technology
Touchless Touchscreen Technology
Akshay Vasava
 
Touchless touchscreen
Touchless touchscreenTouchless touchscreen
Touchless touchscreen
Naga Dinesh
 
Touchless Touchscreen
Touchless TouchscreenTouchless Touchscreen
Touchless Touchscreen
Sandeep Jangid
 
virtual reality Information-160422181930.pdf
virtual reality Information-160422181930.pdfvirtual reality Information-160422181930.pdf
virtual reality Information-160422181930.pdf
21107117
 
Virtual Reality
Virtual RealityVirtual Reality
Virtual Reality
Viral Patel
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developers
joycsc
 
Mobile AR Lecture 10 - Research Directions
Mobile AR Lecture 10 - Research DirectionsMobile AR Lecture 10 - Research Directions
Mobile AR Lecture 10 - Research Directions
Mark Billinghurst
 
powerpoint presentation on sixth sense Technology
powerpoint presentation  on sixth sense Technologypowerpoint presentation  on sixth sense Technology
powerpoint presentation on sixth sense Technology
Jawhar Ali
 
Sixth Sens Technology technology
Sixth Sens Technology                                          technologySixth Sens Technology                                          technology
Sixth Sens Technology technology
Khagesh Desai
 
Sixth sense technology ppt
Sixth sense technology pptSixth sense technology ppt
Sixth sense technology ppt
OECLIB Odisha Electronics Control Library
 
Natural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface ComputingNatural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface Computing
Yuvaraj Ilangovan
 
Touchless touch screen
Touchless touch screenTouchless touch screen
Touchless touch screen
Sanjit Sadhukhan
 
sixth sense technology.pdf
sixth sense technology.pdfsixth sense technology.pdf
sixth sense technology.pdf
gopika1official
 
Touchless-Touchscreen-Technology-PPT.pptx
Touchless-Touchscreen-Technology-PPT.pptxTouchless-Touchscreen-Technology-PPT.pptx
Touchless-Touchscreen-Technology-PPT.pptx
ArebuMaruf
 
MTA java script coding for the touch interface
MTA  java script coding for the touch interfaceMTA  java script coding for the touch interface
MTA java script coding for the touch interface
Dhairya Joshi
 

Similar to Developing Rich Interfaces in JavaFX for Ultrabooks (20)

Developing Rich Interfaces in JavaFX for Ultrabooks
Developing Rich Interfaces in JavaFX for UltrabooksDeveloping Rich Interfaces in JavaFX for Ultrabooks
Developing Rich Interfaces in JavaFX for Ultrabooks
 
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
 
Sixth sense techno_ppt
Sixth sense techno_pptSixth sense techno_ppt
Sixth sense techno_ppt
 
6th sense technology
6th sense technology6th sense technology
6th sense technology
 
Sixth sense technology ppt
Sixth sense technology pptSixth sense technology ppt
Sixth sense technology ppt
 
Touchless Touchscreen Technology
Touchless Touchscreen TechnologyTouchless Touchscreen Technology
Touchless Touchscreen Technology
 
Touchless touchscreen
Touchless touchscreenTouchless touchscreen
Touchless touchscreen
 
Touchless Touchscreen
Touchless TouchscreenTouchless Touchscreen
Touchless Touchscreen
 
virtual reality Information-160422181930.pdf
virtual reality Information-160422181930.pdfvirtual reality Information-160422181930.pdf
virtual reality Information-160422181930.pdf
 
Virtual Reality
Virtual RealityVirtual Reality
Virtual Reality
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developers
 
Mobile AR Lecture 10 - Research Directions
Mobile AR Lecture 10 - Research DirectionsMobile AR Lecture 10 - Research Directions
Mobile AR Lecture 10 - Research Directions
 
powerpoint presentation on sixth sense Technology
powerpoint presentation  on sixth sense Technologypowerpoint presentation  on sixth sense Technology
powerpoint presentation on sixth sense Technology
 
Sixth Sens Technology technology
Sixth Sens Technology                                          technologySixth Sens Technology                                          technology
Sixth Sens Technology technology
 
Sixth sense technology ppt
Sixth sense technology pptSixth sense technology ppt
Sixth sense technology ppt
 
Natural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface ComputingNatural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface Computing
 
Touchless touch screen
Touchless touch screenTouchless touch screen
Touchless touch screen
 
sixth sense technology.pdf
sixth sense technology.pdfsixth sense technology.pdf
sixth sense technology.pdf
 
Touchless-Touchscreen-Technology-PPT.pptx
Touchless-Touchscreen-Technology-PPT.pptxTouchless-Touchscreen-Technology-PPT.pptx
Touchless-Touchscreen-Technology-PPT.pptx
 
MTA java script coding for the touch interface
MTA  java script coding for the touch interfaceMTA  java script coding for the touch interface
MTA java script coding for the touch interface
 

More from Felipe Pedroso

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Felipe Pedroso
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na Prática
Felipe Pedroso
 
Machine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitMachine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML Kit
Felipe Pedroso
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Felipe Pedroso
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.js
Felipe Pedroso
 
Testes A/B
Testes A/BTestes A/B
Testes A/B
Felipe Pedroso
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot Framework
Felipe Pedroso
 
Análise SWOT
Análise SWOTAnálise SWOT
Análise SWOT
Felipe Pedroso
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101
Felipe Pedroso
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o Retrofit
Felipe Pedroso
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit
Felipe Pedroso
 
Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)
Felipe Pedroso
 
Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)
Felipe Pedroso
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTT
Felipe Pedroso
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDK
Felipe Pedroso
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
Felipe Pedroso
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"
Felipe Pedroso
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
Felipe Pedroso
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8
Felipe Pedroso
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"
Felipe Pedroso
 

More from Felipe Pedroso (20)

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis Platform
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na Prática
 
Machine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitMachine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML Kit
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.js
 
Testes A/B
Testes A/BTestes A/B
Testes A/B
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot Framework
 
Análise SWOT
Análise SWOTAnálise SWOT
Análise SWOT
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o Retrofit
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit
 
Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)
 
Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTT
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDK
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"
 

Recently uploaded

Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 

Recently uploaded (20)

Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 

Developing Rich Interfaces in JavaFX for Ultrabooks

  • 1. Developing Rich Interfaces in JavaFX for Ultrabooks Bruno Borges Felipe Pedroso
  • 2. Agenda • The future of PCs • JavaFX and Touch Support • Using JNI to work with sensors 2
  • 3. Mobile Computing Lines are Blurring Ultrabook™ Convertible & Detachable Ultrabook™ TabletSmartphone Consumption Usages Creation/Productivity Notebook
  • 4. The Ultrabook™ Platform Reshaping the PC Experience 4 Ambient Light Sensor GPS Compass Near Field Communication Gyroscope Ultrabook™ Accelerometer Multi-Touch Context Aware Sensors
  • 5. OK, they have all those features… … but how can we implement them using Java?
  • 6. To allow users to TOUCH my Java App... 6 • Should I use... – AWT? – Swing? – SWT? • Actually, you can use them but... – They aren’t made for multi-touch (OK, there’s a way to do it) – You must optimize your UI controls to be more ‘touch friendly’ • So, how to do it in a simple and easy way?
  • 7. 7
  • 8. Actions supported • Touch events: Down, Move and Up – Tap (Down and Up) / Double tap – Drag and Drop (Down, Move and Up) – Hold • Gestures – Swipe: Up, Down, Left and Right – Zoom: Pinch / Spread – Rotate 8
  • 9. What I need to do to manipulate components? • Your components must extend the Node class or any of its subclasses (StackPane, ImageView, etc) • Set the proper EventHandler to handle the action. 9
  • 10. What I need to do to manipulate components? 10 • Apply a transform to the component (Translation, Rotation and Scale): • Let’s dive into some code!
  • 11. What about the sensors? JNI, I choose you!
  • 12. Available sensors on Ultrabooks • Accelerometer – Proper acceleration in three axis (x, y, z) • Gyrometer – Device orientation • Magnetometer – Strenght and direction of magnetic fields • GPS (Global Positioning System) – Location and Time information • NFC – Near Field Communication • Ambient Light Sensor – Ambient Light Level 12
  • 13. API Windows – Sensor Fusion 13
  • 14. API Windows – Namespaces • Windows.Sensors.*  Common sensors – Accelerometer – Gyrometer – Inclinometer – OrientationSensor – SimpleOrientationSensor – Compass – LightSensor • Windows.Devices.Geolocation  GPS – Geolocator • Windows.Networking.Proximity  NFC – ProximityDevice 14
  • 15. Windows API – How to • Get the default object of your sensor using the GetDefault method • You can call the GetCurrentReading() to get the current value of the sensors or... • ... work with the ReadingChanged event – Set the attribute ReportInterval (please, respect the MinimumReportInterval to avoid problems) – Delegate a method to handle the event (something like setting a method as a listener) – Handle the event! • This procedure is valid only for sensors from Windows.Sensors namespace 15
  • 16. How can I access that? 16
  • 17. Using JNI to access the sensors from Windows.Sensors 1. [Java] Create a native method to register the object that will handle the events that come from the sensor 2. Generate the header file using javah 3. [C++] Create a DLL Project in Visual Studio with the DLLs and namespaces of the Windows 8 APIS 4. [C++] Use a variable to keep a reference to the object and the ID (GetMethodID) of the method that will handle the event 17
  • 18. Using JNI to access the sensors from Windows.Sensors 5. [C++] Initialize the sensor and delegate a C++ method to handle the event 6. [C++] Redirect the delegate method call to the Java method using the function CallVoidMethod with the following parameters: the Java Object, the method ID and it’s parameters 7. [Java] Handle the event!  A lot of text? Please, show me the code! 18
  • 19. What about Linux? • Touch works fine, but there aren’t clear APIs to read sensors. If you know how to do it, let’s work together! 19
  • 20. Wants to know more about Intel Software? http://software.intel.com/en-us/ 20
  • 24. Take aways • The PC experience is being reshaped • JavaFX + Touch = AWESOME • Using JNI to access the sensors can be LEGENDARY!
  • 25. Any doubts? (if yes, the answer is 42)
  • 26. Thanks a lot! Bruno Borges facebook.com/brunocborges @brunoborges Felipe Pedroso facebook.com/felipe.a.pedroso @felipeapedroso