I was long time thinking what could be an alternative to the Xojo toolchain with a pricing in the same region. The abilities should be:
Desktop for Windows, Linux and MacOS
Mobile for Android and IOS Devices
WEB for Server based and Progressive Web apps
So I was looking and found the following components for it and started to develop with them. And I have to say after long term of testing: it works!
As JDK I use OpenJDK11 and GraalVM for native compilation
(So I can choose to compile only Virtual machine Code or, if needed, native running Code with ahead of time Compiler.
IDE: IntelliJIdea ultimate
I decided to use Swing with Jformdesigner while I am used to swing. If youre starting new I would prefere to say you should start with JavaFX and the GLUON Scenebuilder for JavaFX while what also is used for Mobile. In both Cases Desktop Applications can be written in a state of the art wise with nice looking elements and all the functionality is needed for Desktop use.
- Mobile Development
For Mobile Development I use GLUON Mobile, a Solution which lets you write one Code and UI and use this for both, IOS and Android. The UI can be done by using GLUON Scenebuilder or by hardcoding in fxml. Using the Gluon Toolchain results in fast, reliable and uncomplex App building with a wide range of Hardware abstraction what allows you to write for both platforms the same code.
- Web Development
For most developments I need Database, graphics and Java. This Receipt I can cook with Cuba Platform with its upcoming release you can find under jmix.io
With Jmix I can write vaadin based Webapps and also PWA Webapps and I can combine both in one project for example for front- and backend.
What I have to pay for it (calculated for single Developer):
IntelliJIdea ultimate: 149,- Euro
JFormdesigner: 49,- Euro
GLUON: 499,- Euro
Cuba Studio: 189,- Euro.
Result: 886,- Euro
When writing the first Desktop Application with JavaFX I realized that it really works and makes fun to write with IntelliJIdea and the Scenebuilder Plugin inside of the IDE. And yes: Java has not native elements but it has nice looking elements and it is working. After compiling and testing the jar file I compiled the Jar file to a native binary for Mac (x86 and M1), Windows 10, Linux and Raspbian.
The resulting App was in its Gui as fast as xojo and in its code unbeatable fast. GraalVM is a really good way to compile!!!
The first Mobile App I wrote in three steps:
The GUI and the Logic I implemented for both in the same way, both schould give me Access to GPS Data from the Device. This I could handle with the abstracted Device handler of Gluon Plugin. Before compiling I have done the device own stuffs (in this Case only file system relative stuffs) and I compiled with Gluon Mobile for IOS and for Android. Compiling for IOS was only possible on a Mac! (what is also so with Graalvm ahead of time compiling for Mac and Mac M1 on the target Hardware). The result was a working and performant GUI showing APP.
With WEB I wrote a device App handling the Signal configuration for a medical device and its settings. So it was a vaadin based App as server based App. Most Stuff I could write with Java directly, only the UI Stuff I had to edit a few times the XML File. The visual editor for Web is not the most intelligend one but is is usable. It is truely possible to build responsible Apps which are really performant with it. For a PWA I was only using their Examples to try, alson that was running without any problem.
At the end I decided to use this toolchain with all connected Developers while it is better to have to get used to Java than getting used to having a not working System under my fingers.