Sunday, February 9, 2014

JavaFX + GraniteDS

http://java.dzone.com/articles/real-world-javafx-graniteds-0?mz=46483-html5

Good and bad of JavaFX

JavaFX has been very enjoyable to work with and is a great tool for developing desktop applications. Being built in the Java SDK runtime makes it really friendly for Java developers, and easy to use and deploy. It has a decent number of available widgets including nice charting controls and allows for a clean MVC architecture. Building complex views is quite easy using the FXML markup language and the ability to use CSS styling has been very convenient.
During the development of our application, we unfortunately encountered several issues, notably memory leaks (in particular when using TableView and selection models) that forced us to introduce ugly workarounds in the code making it much less clean and readable, and we wasted a lot of time to identify the bugs.
Some very useful widgets were also missing such as a text field with suggestions, or even a calendar widget and we had to find third-party components which are not necessarily very reliable. It seems many of these issues will be addressed in JavaFX 8.

Good and bad of GraniteDS

GraniteDS has been very helpful to develop and structure our application and has almost entirely eliminated the need for handling network communication in our code.
We have particularly enjoyed some of its features which have saved us a lot of time:
  • automatic pagination working with many widgets (ListView, TableView, ChoiceBox) with incremental loading of data and caching. Just great!
  • automatic generation of client side JavaFX bindable entities from the JPA model
  • transparent lazy loading of remote data
  • dirty checking of changes made in client side entities
  • Spring integration, both on the server and on the client
Except some early bugs in the beta versions which are now fixed, we have not faced too many issues with GraniteDS. It just needs some time to become familiar with its many features and the documentation is sometimes a bit short. This initial effort is really worth it and you can build your application much faster and become very productive once you are more familiar with the framework. 

No comments: