Oracle’s JavaFX, the rich Java client platform for UI, has gained points with Java application developers since Oracle announced its plans to open source its iOS and Android implementations in the next few months. For the first time, application developers will be able to build cross-platform applications for iOS, Android, Windows RT, and desktop apps using JavaFX code.
Though this could be a great start for JavaFX on iOS devices, it could also be too little too late. The long-time lack of Java support on iOS has compelled developers to look for alternatives that are fairly mature and popular. For example, HTML5 for cross-platform web applications, mobile frameworks like PhoneGap for mobile apps, and Unity and ShiVa3D for serious game applications. The competition for JavaFX is extensive and strong.
However, developers who have worked with JavaFX 2.0 are huge supporters of the technology. For one thing, Java FX 2.0 allows you to create applications completely in Java using standard Java development tools. Java developers can get started with JavaFX without losing any time on the learning curve. Using Java for the backend and web client saves a lot of time, effort and of course, resources.
Secondly, JavaFX integrates well with popular languages like Groovy and Scala, and you can incorporate JavaFX scenes into Swing apps. It also has a proper browser component that’s based on Webkit. And you can also use XML format FXXML for UI coding, apart from Java.
Thirdly, the animation and drawing capabilities of JavaFX are undoubtedly impressive. It’s fairly easy to build complex graphics, include effects and make it jazzy – allowing for rich UI design and depth.
Open sourcing of JavaFX
Oracle started talking about open sourcing JavaFX code at JavaOne 2012. Since then, 543,055 lines of code, from 35 different sub-projects, have been released for public use in re-licensed form. This has happened after a long-standing demand from application developers.
In the February Open source Update, Richard Blair outlines all the JavaFX projects whose code has been open sourced such as decora implementation, Modena app, animation APIs and implementation, beans, properties, collections, prism scene graph peers/interfaces, 2D software rasterizer, testing stubs and tools.
In the next two weeks, 7 more projects (138,034 lines of code) including Glass, Image I/O and Prism will be shared, followed by the rest of prism, web, and media sources in the next 1-2 months. The team is also working on the OpenJFX list to replace javafx-font with direct calls to the native operating system in the open source version.
JavaFX for iOS and Android – Prognosis
The biggest news in the February update was of course the open sourcing of JavaFX for iOS and Android. However, both the ports are based on a yet to be released version of JavaSE Embedded for iOS/Android so we don’t know a lot yet. Though part of the code and a test/build system will be released in the next week, more will come only with the rest of prism, owing to time dependencies.
Another important factor on the iOS platform is licensing. OpenJFX and OpenJDK are both licensed with the same GPLv2 with Classpath Extension. This could get tricky but it’s workable. As Blair himself explains, if you take OpenJFX and OpenJDK (leaving out any binary stubs released under a different license), you should be able to safely combine this with your application and release your application under your own license as a single application co-bundle.
Personally, I think this will work out well for Java developers. Maybe this is just the shot JavaFX needs too!