Finally the first “JavaFX Real World Apps” post that actually covers an “app” and not an “application”, meaning the first JavaFX application in this series that was designed for mobile devices and not the desktop. The application is simply called “Monastery Disentis”. It was developed by cnlab in Switzerland. It can be used by visitors of the monastery as a guide. Below you can see a couple of screenshots that were taken on an Android device.
Video: a screencast of the application.
What is cool about this application is that everybody can try it out be following the links to the app stores, either the Apple App Store for iPhone users or Google Play for Android.
As usual I asked the development team a couple of questions and Daniel Zimmermann was nice enough to answer them below:
What is the name of your product / project?
Who are your users / customers?
Monastery of Disentis, Mustér, Switzerland.
What is the purpose of your software? What are its benefits?
Mobile app to guide the user through the monastery church.
Is the application operational? If yes, since when. If not when do you plan to go live?
Yes. It can be installed via the iTunes app store or Google play.
How did you get the necessary JavaFX Know-How into your team? (Consultants, Internal / External training courses)?
With which version of JavaFX did you start? 1, 2, 8?
We started with version 8.
When did you start developing the application and how long did it take?
September, 2016, 6 Month with some pauses in between.
How many developers worked on it? In total and on the UI.
2 Developers in total. 1 exclusively on the UI.
How big is the application? Lines of code, Number of classes.
Lines of Code: 11000, No. of Classes: 113.
How big is the JavaFX client? Lines of code, Number of classes.
Lines of Code: 7500, No. of Classes: 51
Why did you choose JavaFX as frontend technology? And very importantly: why did you not choose HTML / Web?
The developer already knew Cordova, but wanted something else. The app‘s scopeseemed small enough to be used for it.
Was it difficult to convince decision makers to agree on JavaFX?
No. Since so we did not need to create two native apps with two developers.
What were the biggest challenges / problems / issues / bugs you faced in the JavaFX part and how did you solve them?
Rendering performance of Text nodes – heavily relied on asynchronous content loading andlazy content display (in other words: lazily put it onto the Scene Graph).
Which 3rd-party products / frameworks / tools (open source and commercial) did you use and why did you choose them?
JavaFXPorts, Gluon Charm Down, ControlsFX, FontawesomeFX, jackson, commons-codec, Afterburner.fx, ScenicView.
Did you mix JavaFX and Swing code?
Would you use JavaFX again for your next project? Please elaborate why or why not.
Yes, but I will think twice for mobile, because the performance is not yet where it needs tobe on all platforms / phone variants.
Which recommendations do you have related to JavaFX for other companies / projects?
Not much, except for: Just give it a try. If you need platform independent Desktopapplications and/or don‘t want to rely on long-term browser support, this is a good andgood-looking alternative.
Which features would you like to see being added to JavaFX?
CSS closer to Web, faster CSS, improved layouting/API, faster text rendering performance.