Thanks for writing this up! It still assumes a lot of prior knowledge, but it's a good starting point to approaching these problems. How JavaFX works on different platforms really looks like dark magic from the outside. I wrote an app in Clojure using cljfx. I can jpackage it and run it Linux/Windows/macOS .. it's quite easy to get working. But once you step outside of the standard platforms it gets complicated really fast. Trying to get it to Android or a native build and suddenly you have to be an expert in several build systems and JVM internals.