Over the last month we built 5 kiosks for JavaOne (1 prototype and 4 production). The idea was to show Java SE Embedded and JavaFX running on a small embedded device as a Kiosk with a great UI to help people plan their JavaOne schedule. One was shown in the Technical Keynote and the 4 production ones were then placed in the Hilton, Parc 55 and Nikko hotels of JavaOne. This is the story of how they were made…
It is normal for the month or so before JavaOne to be filled with demo building fun but up until now that had only included software development and visual design. This year we had been working with small embedded devices such as the Beagle XM, Panda ES and Raspberry Pi. As cool as they are they come as bare board which is neither practical or compelling for demos. So this year I took on the challenge of designing and building the hardware for the demo as well as software and visual design. We already had the idea of using the JavaOne schedule data set for a demo and the crazy idea of building kiosks popped up one time when we were chatting about how to use the data.
So I started in Photoshop designing the user interface for the application. Once I had a basic idea of the look I jumped into code and got a early version up and running on desktop. We already had a 22″ 3M touch screen from our 2010 JavaOne demo so we hooked that up to a Beagle XM and started getting the application to work on there. This took many rounds as the JavaFX Embedded port was very young when we started. So developing this app we helped test, debug and tune the port. Here is a pic of the very first designs, some of you may spot what stayed and what changed:
At the same time as moving the app forward I started thinking about what a kiosk might look like and how I might be able to make it with the limited tooling I have in my garage. At the point my colleague Joe McGlynn made the foolish mistake of asking if I needed any help building it. A decision he may have later regretted a little as it turned out to be a lot of hard work, oops 🙂 but he was a star and they would not have been half of what they are without his help. So to help visualize what they might look like I started modeling my design ideas in my favorite 3D package Cheetah 3D. There were at least 10 versions of the design I experimented with, here are some of the renders of those ideas:
In the next part I will tell the story of the prototype. Hope you enjoy the behind the demo story 🙂
The initial designs seriously seems mindblowing. JavaFX is really rocking and would soon take over. The UI looks great and would love to read further about the prototype story. By the way which hardware was used to build the prototype out of the three mentioned above ?
The prototype used Beagle xM rev C and the production Kiosks use Panda ES boards. We have not released a public version for Panda yet but you can get the Beagle version at http://jdk7.java.net/fxarmpreview/javafx-arm-developer-preview.html
Where did you get the embedded port of JavaFX !?
I can’t wait to get my hands on it 🙂
Yes, yes! YES!
You can get the first early access of JavaFX for ARM at http://jdk7.java.net/fxarmpreview/javafx-arm-developer-preview.html designed for Beagle xM board.
Good Joobs….Amazing UI
fantastic ui!! Do you think to release the source of the code?I think it would be interesting to study.
We will look into it just depends on time we have available. It will need some cleaning before releasing as it is accessing private servers for data, login etc. So we will need to make a dummy data service for it. Also it was depending on a couple fixes that we made last minute in the JavaFX platform that we will need to finish off to production quality and get committed into JavaFX 8. We will do our best 🙂
The ui looks great. I wanted to dive into JavaFX recently, but the Java SE license terms ( http://www.oracle.com/technetwork/java/javase/terms/license/index.html ) do not cover kiosk systems explicitly. You used an ARM edition of JavaFX. That edition is currently at preview status and it’s license ( http://jdk7.java.net/license.html ) grants non-commercial and non-productive use only.
Is there any way to use JavaFX in a real world application from a licensing point of view? I even could not find alternative licenses on the Oracle web shop. Do have insights on licenses and future evolvement?
Oracle’s Binary Code License for Java SE (and JavaFX) enables it to be freely used for general purpose desktops or servers.
However if Java SE (or JavaFX) is bundled as part of a dedicated solution that involves or controls hardware of some kind, then it’s likely an embedded application and is subject to modest royalty payments.
“JavaFX for ARM” will ultimately be released as part of “Java SE Embedded”, and therefore will be available under such commercial license. More details about the licensing model can be found on the Java SE Embedded section of OTN
Nice work! I am trying to watch the presentation “CON4606 – Building Amazing Applications with JavaFX” from javaone but unfortunately the video and the presentation were removed from the session page, can you please essist ?
commenting on Oracle web site does not help …
please the second part of prototype
I am doing a technology research how to get a gui for an audio mixing console on an arm-board with multi-touch screen. JavaFX for ARM seems to be suited well. Can you advise me which device (Beagle XM, Panda ES, Raspberry Pi or any other eval board) is best for getting a fast result. Also, I am looking for a supported multi-touch screen. Would any linux-compaible multi-touch work? Or can you suggest any?
So this post will not get a part 2 before Javaone 2013 this year. Assumming part 2 will have source codes.
This is real JavaFX evangelism!
Please Oracle learn from this http://code.google.com/p/iosched/.
JavaFx evangelists please learn from this https://blogs.oracle.com/geertjan/
BTW please inform the JavaOne speakers if they are not making source codes available they should not even demo the app. We are not following these events to be entertained but to learn.
hey, how can i make the tabpane in javafx positioned on the left but the text still horizontal and add some image in it?? please!