Starting up a new Java Client Desktop App

SwingingDuke[1]One thing we hear a lot from our customers and clients is that they want to start building a new Java client application, or move to JavaFX from Swing, but they don’t know how to get started, or they need help. There is no silver bullet way to handling this – each case is different, and depends a lot on the needs of the specific application, and what benefits they see in moving to JavaFX. Some of the more common arguments for moving to JavaFX that we’ve heard include:

  • The impression that Swing is becoming (or has become) deprecated in the JDK.
  • Community interest is waning – development on open source projects is slowing down, whereas JavaFX is ramping up.
  • Interest in the more modern look and feel of JavaFX user interfaces.
  • The availability of most commonly required UI controls (including TreeTable!) in the main SDK (and the availability of open source and commercial projects such as ControlsFX, JFXtras, CalendarFX, etc).
  • The impression that JavaFX is more performant due to its hardware acceleration and modern architecture.
  • The support (through the Gluon JavaFXPorts project) for mobile devices such as iOS and Android phones / tablets, as well as embedded devices.

javafx_logo[1]Inside Gluon we’ve assembled a team of engineers who are expert in JavaFX, and we truly do believe that it is an excellent UI toolkit for building cross-platform and cross-device applications (by the way, our team are available for consulting and training). Today, however, we want to talk about Gluon Desktop, our just-released Java desktop application framework. As noted, this project is by no means a silver bullet, but our goal in developing this product was to deal with a lot of the plumbing so that it just gets out of the way, and allows developers to focus on developing their applications. Gluon Desktop is designed solely with desktop UX metaphors in mind. For users who are wanting to build cross-device applications, you are much better served by Gluon Charm.

We’ve already built a few Gluon Desktop based applications inside Gluon, for things like Gluon Cloud monitoring / browsing, etc. As well as this, we have built a Git repo browser called Code Vault using Gluon Desktop to demonstrate best practices. You can find the source code for Code Vault in our gluon-oss project at bitbucket. We’ve intentionally kept the functionality of the application itself minimal, so that the best practices for using this library show clearly. We do not intend for this to become a commercial product – it is simply a sample for learning from. Another good source of information about Gluon Desktop is the Gluon Docs website for Gluon Desktop – go check it out, we’ll wait here until you get back! 🙂

codeVaultNow that you’re back, it seems like a good idea to discuss how Gluon Desktop can help. For starters, it is unapologetic in being a commercial software product. We do this so that we can offer you top-quality support, bug fixes in a timely manner, and ensure we have the best engineers needed to develop and support your needs. We understand that for many organizations, the ability to send an urgent email and get a response within minutes or hours is important, and that is what we can offer with Gluon Desktop.

Beyond that, in designing and building Gluon Desktop we have been guided by our desire to build a minimal API, where convention takes precedence over configuration, and built-in annotation scanning and field injection is supported out of the box. We want to bring the ‘magic’ back to cross-platform desktop client software development. The amount of boilerplate code that is necessary is already very low, and we have a lot more in the pipeline to improve things even further.

Finally, as with all of our software and consulting services, it is all about us forming a closer bond with our users and community. Through this we are able to better understand your needs and wants, and drive our engineering team to better serve these in our software. If you are interested in Gluon Desktop, or any of our software, please contact us and discuss your requirements. More often than not, we already have sample code or can say that our products are already capable of what you need. In the rare instance where we don’t support what you need, we can work with you on defining these requirements and prioritize them appropriately in our issue tracker for a future release.