Mobile JavaFX Enterprise at JavaOne

I am glad the two session proposals I submitted for JavaOne are both accepted. I will be talking about DataFX and about JavaFX on Android. In this blog post, I try to explain why I focus on exactly these two topics.

There are a number of tendencies in the IT industry that we can't ignore.  

Mobile is overtaking the desktop

As shown in the article at, people today spend more time using devices than using a desktop. Desktops and laptops still hold a strong part of the market, but the mobile devices (mainly smartphones and laptops) are simply more relevant today.

Apps haven overtaken browsers

The same article shows that in the case of mobile, the use of applications outnumbers the use of web browsers.

If we combine both trends, we can conclude that the market of mobile applications is a very interesting one. That doesn't mean web browsers and traditional web sites are vanishing very soon, but it clearly shows the hot spot is shifting from web pages to mobile applications.

The two major platforms for mobile devices, Apple's iOS and Google's Android, dwarf the other platforms. While you can write applications using Objective C for iOS, or the Android SDK for Android devices, I believe there are a number of advantages in writing your application in Java, using JavaFX as the User Interface platform.

  • cost efficiency: there is no reusability of code between an Objective C application and an Android application. Using Java and JavaFX, developers can leverage the "write once, run anywhere" paradigm of Java.
  • portable to the desktop: the success of appstores for mobile devices is starting to influence the desktop. We see a growing number of application stores for desktop operating systems. The same JavaFX application that is being used on a mobile device can also be used on desktop devices. The use of CSS or separate skin classes can lead to a combination of same codebase yet platform-familiar look and feel.
  • JavaFX is simply a great interactive user interface platform. I like the Android services (and they are very interoperable with JavaFX, so they can be used in a JavaFX application), but for UI development, JavaFX is the clear winner for me.

In Session CON1804, Running JavaFX Applications on Android, we will discuss the current state of JavaFX on Android, provide an overview, show how to create a JavaFX Android application, and talk about future plans.


Another trend is the growing interest in (REST-based) "microservices" at the back-end. This is important for client applications as well. A typical business application makes a number of requests to a back-end, and expects responses as well. Mobile devices are getting more and more powerful, but still they cannot be compared with servers, clusters of servers, or a cloud environment. Many of the techniques used in server-side software simply won't work on (mobile) devices. It is extremely important, though, that client applications can easily interact with back-end applications. This is where the DataFX framework helps. The JavaFX Platform provides a great client platform, with a strong focus on the user interface and interactions. DataFX extends the JavaFX Platform by providing components that can be used to communicate with back-end systems, and by providing a simple API that allows developers to define the flow between different parts and views of the application. We will discuss DataFX in Session CON 3640, DataFX: From External Data to a UI Flow and Back .

I preferred to focus on 2 presentations in a single area, but that does not mean I have no interest in other areas. I am still watching the evolutions for Java EE 8 from as close as I can, since I realize this is a very important piece of the whole end-to-end puzzle. Looking at the presentations in the Java server-side track, I'm convinced this is going the right way.

I hope to see many developers at JavaOne. Those are interesting times, let's make the difference.

written on 04 Sep 2014 17:42.

1 comment

Author: Jim Morrison
Date: 10 Sep 2014 18:22

"Apps have overtaken browsers". This makes a lot of sense to me. I think until recently, people wanted web browsers to be like an OS within an OS. So you could run anything from within your web browser, and the program you are running would have network access (because it is running within a web browser). Well the parent OS (Android, Windows etc.) is also network connected, so we don't have to have the program running in the web browser. So, I think ideally, the main OS itself should take on the functionality of a web browser (as well as keeping the other things it already does). So your main OS would be capable of letting you browse web pages as well as letting you run apps that require a network.

Create comment