Toolchain Alternative: Java for web, mobile, Desktop

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!

  1. JDK
    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.

  2. IDE: IntelliJIdea ultimate

I choosed the Ultimate edition while I need often Databasees and I really often need JavaScript, HTML, JSON and so on. This IDE runs under Linux and Windows and as well also on Mac Computers.

  1. Desktop-Environment

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.

  1. 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.

  1. 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

Testing Results

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.

1 Like

Could you post some screenshots?

1 Like

I’ll do some tomorrow but you can see at

Gluonhq for gluon mobile
Cuba-platform.com for web
And Formdev.com for form designer
And for Javafx scenebuilder at gluonhq.com

Try it it will cost nothing and don’t forget when designing swing apps… I will do a small tutorial for swing beginners to show

Screenshots like promised
First of all: WYSIWYG GUI Editor for Java Swing: JFormdesigner


![Bildschirmfoto_2021-04-06_07-43-06|690x388, 50%](upload://7HmAjck1ICzAXL yhf3FhMHUg5jS.png)

This is showing the Screen Design for Desktop Applications: JFormDesigner which is a fast and intuitive form designer. The resulting form you can setup with different look and feels which you can get for example if you decide to use material design.

The underlying IDE is IntelliJIdea from Jetbrains. I could have used Netbeans for free but I for me decided that I like more to work with IntelliJIdea. Anyhow for Cuba-Platform it is strongly recommended to use IntelliJ.

For Database Development inside the IDE there is in IntelliJIdea Datagrip. A fast and furious Database-Designer and Testing Circuit for your Database operations. That was my personal “I need it” moment.

One word to the screen shots: design shows Dracula theme, when running I was loading the nimbus theme

For the Web there is a bunch of screenshots coming up here:

The Backoffice-UI (means the UI not running on the Client but on the Server what can be used for several different other tasks also)


Here you see the UI in code, as you can see it is pure xml and nothing hard to do.

the visual Designer comes up here:

and a Code example from the user Editor Java Sourcecode:


When running it, it shows the screen I was styling and programming in Browser simply at 127.0.0.1:8080 and to deploy I have to deploy it as war file for apache deployment or with the apache server byself.

For JavaFX Desktop Application bhuilding use GLUON Scenebuilder. After installing Openjfx, Scenebuilder and IntelliJIdea you only have to setup the Scenebuilder in IntelliJ to have it as a Plugin:

So style your Programm and do the rest of development. Java FX Scenebuilder is also used for Mobile Development.

Mobile Development is done with GLUON Mobile Plugin which we own for development of IOS and ANDROID Apps on one Codebase if needed together with Desktop.


As you can see, GLUON Mobile comes with Wizzard helping you to structure your project from scratch. It is plain Java, GLUON takes advantage of the most common mobile Hardware tasks. Informations aboutthe hardware abstraction you will get at Gluon Attach - Gluon

Thanks for reading.

@thorstenstueker
What advantages do you see in your chosen toolchain compared to B4X?

First of all for me it is less complex cause I am used to program Java. If I would be a VB/XOJO Programmer I would choose B4x while it is really uncomplex to do. From some reasons it is better to program in Java what you would also do with B4x. While I am using both from time to time I would say: nothing but a few minimalistic things. So it is less complex to program for example Socket Servers with multiple Sockets in B4x and therefore it is less complex to programm Multi threading in Java. It is not so uncomplex. Both, Java and B4x are far away from the simplified programming of Xojo but both are near to getting the Job done with professional tools.
One thing B4x do not have is Linux and MAC IDE. That is for me a real thing cause I am a Linux developer and not using MS Windows. Therefore it is a part of the decision mostly to use Java for programming Jobs.
Using B4x under Linux and on Mac is possible but it starts to be complex to use it on Mac M1 while there are unbeatable problems. Until there is no Solution I can not develop on M1 with B4J.

Another Part is the Cuba platform which uses really state of the art technologies for developming Web Applications. Something I really prefere to use while it helps me to develop faster. But do not forget: Solutions can be done also with B4J Banano. And I was also writing a solution in B4J ABMaterial while it is unbeatable fast und uncomplex for big Web Portals.

Back to the most cases I have to say that I am mostly developing WebApps which are running on Devices with Raspberry PI or another Single Board Computers what makes ist uncomplex for me to develop with Cuba Platform.

Mobile development: is nice in B4A and B4I and also with Gluon. It is for me both with a good usability. But in the Result I was changing to Java and GLUON while it is complex to develop in MAC without support for the IDE. While I changed many of the development computers to MAC there was a way for decisions.

I will also provide the same for B4x later so people can make their own way. But the way I am going mostly (so Java Toolchain) is working natively on Mac and makes no problems at all.

That are my decisions in unsorted cloud to think byself what for you is important. One word to Java: even if you will program with B4J you will have the same Java VM in the background and also the possibility to use Graalvm native image. This should not be your decisionmaker.

Both B4x and IntelliJIdea have no showstoppers. So: try to select what is more comfortable for you instead of humping behind something else.

Thank you for your explanations.

At the moment I will stay with B4X. My “brain capabilities” are not good enough for Java or even for Swift to learn and be able to develop in a proper time frame.

B4X is the tool where I am able to learn fast, understand and see if I can develop my ideas on all relevant platforms.

1 Like

It’s like I said already: take the tool that fits your needs and skills . B4j is really good and you can get all known jobs done you would do with java