A Java Toolchain for Desktop, Mobile and Web

Over a long time I was evaluating different ways to have a toolchain for Cross platform Desktop (Windows, Linux, MacOS, Unix, Auto-Linux), for Mobile Development on IOS (IpadOS, iPhones) and for Web Applications with Database management and full performance even for 3000 parallel users. Between around 300 Libraries and Programs I was testing I found one combination which replaces not only Xojo but brings me complete new Power for Development.

While Java is flexible and the possible Java Runtimes too I selected Java 11 for the beginning and I will switch to the next LTS Version as it is out for production. So I speak about the tests but I have done them on Java 11 and on Java 17 (incubator Version) to be sure that it really works.

  1. Cross platform Desktop

Desktop-Development is for Java Swing the right home. Therefore I chose Java Swing for Desktop. From a later reason it was a good decision. Java Swing allows me to get my Job done. It looks all the same on all Platforms, it has a totally flexible Look and Feel System and it can build up the Menu Position for Mac if it’s wanted. As Look and Feel I choose FlatLaf from https://www.formdev.com . While Java has tons of possible libraries to use I chose Jaspersoft Free for Reports as it’s Library version is under LGPL. PDF with Apache PDF Library and with the Build In PDF functionality. So Desktop is writable without any commercial Plugin.

  1. Mobile

For INDIE Developers which are not a bigger company the mobile Development with CodenameOne is marvelous. Codename One has a structure which is very similar to Java Swing, an own Designer and a complete Build infrastructure for IOS and Android. So there is no need to build up own Build Servers for it and it works. Coding is Java and Result is native Android or native IOS. That’s what I want. With maximum of 50MB Build Jar Size the Basic Variant for 19$ per month is good enough. (Makes 221$ per year). For bigger projects the professional is around 900$ per year. Do not forget: 50 MB jar file Size is pretty big App.

  1. Web

I was long time searching for a provider for Web Solutions which takes care of next generation switch and helps users to work with the Software. I found it: Haulmonts jmix.io helps me to develop Java Applications for the Web. With Backends which are builded for around 700 - 1000 concurrent users, with frontend Applications which are builded for ten thousands of users as they are progressive web apps (PWA) with Socket connections and REST API. That makes fun while I have no problem with programming and can take care of my targets. jmix and Cuba project are very similar. And for the Switch from the old Cuba Platform to jmix the provide migration tools and help. That’s how I wish to get a Web 1 to Web 2 Switch. Mission is possible! Cuba Platform costs 189 $ per year for indie Developers.

  1. The IDE

As I am developing on Linux and Mac I was searching for a Java IDE which helps me to get the Job done instead of nerving me with nice colored somethings which are out of order. So I chosed IntelliJIdea. While I like the IDE and it is really flaming fast I decided to buy it. But that’s not needed. If you only want to build Java Applications you can use the community edition for your toolchain (do not forget to install a database Plugin while database Management is less complex when it is on Board).

The Result

With yearly Costs of 460 Euro per year for:
JFormdesigner: 50 per year (Marketplace Edition)
Cuba Platform 189 per year
Codenameone 221 per year

I have a complete Toolchain for use. If I don’t need Web I can stop with the deal and use only Open Source (I am able to write and compile but the visual Designer is gone then). I can program for all platforms and I have a complete working Solution for Development. For me it was the fundamental base for changing from Xojo to Java.

Why I wrote this here? While I firstly wrote it under a thread about a Plugin Set to demonstrate that a complete toolchain is not as expensive as Xojo is per year. And that is for real an argument to think about that what I am doing for the next years.

3 Likes

Nice writeup @thorstenstueker.

Wrong link here, missing a d:

Should be:

https://www.formdev.com/

2 Likes

how to install Flatlaf on IntelliJIdea IDE?

In this Video I am describing the process completely:

I saw u have sql support on the list below groovy and kotlin.

How to get or install that?

I am using Postgresql and Mysql and Oracle Databases in customer Projects. Rund like a charm. While I use the Ultimate edition Datagrip is integrated therefore you should install one of the Database Managers for Database working with the community edition (for free). But also community edition is working well.

What about sqlite or cubesql??

Preferences->Plugins there you find them. I would recommend Database navigator. SQL by self is connected with a JDBC connector you can download for the Database you use for example for Mysql it comes as a Jar File. For that choose platform independent. The rest is not that complex. If there is interest I will do a Mysql and a postgresql tutorial.

SQLite has also a jabc connector. As far as I can see there is also Cube SQL.

With SQLite I do all my Devices Databases where I have no need for Multi User Systems. So 90% of them are working with SQLite and a few where I have many devices in a device net with many users are working with PostGreSQL.

I use a tool called DBeaver
All Java
It has, by default, these sql drivers

And of course you can add whatever ones you can get a JDBC driver for
There is one for cubesql on cubeSQL: A fully featured and high performance relational database management system built on top of the sqlite database engine

1 Like

finally got it working following your brilliant screencast!!!

I’ll do later for database but before I’ll have Dinner… give me an hour

what about sqlite one?

Especially for you I’ll do SQLite one

superb thorsten

Thanks!!