An example for cross-platform standalone GUI application

,

As I promised in the thread about the instruction how to create standalone applications with a GUI, here is as example a complete GUI program that was created using PackageCompiler + Lazarus.
(I selected Lazarus as UI because it is platform-independent and one is quick to make a fully-featured GUI.)

The program is part of a package I wrote for a new algorithm to cluster data (called “Iteridense”). I wrote the algorithm completely in Julia as a module. This module is compiled to a library as described in the above mentioned thread. This library is used by the Lazarus program.

  • You find the Julia module as package here.
  • Inside of this package you find the module adapted for compilation as C-callable library here.
  • The Lazarus program can be found here.
  • If you are interested to have a look at the final Lazarus program without compiling it, you can download from the latest release assets the file IteridenseClustering.zip. There you find in its bin folder the file IteridenseClustering.exe file that can directly be executed under Windows (no installation or admin permissions necessary.
15 Likes

I tested it and it works really smoothly, impressive :ok_hand:

2 Likes

Nice to hear that you like it.

For information: Lazarus just released a new major version. I tried it now and can say it is worth the upgrade.
My recommendation: At the first start Lazarus 4.0 asks you about modern IDE and modern forms designer. My recommendation is to use the modern IDE, but the “classic” forms designer because for the forms I find it important to see them exactly as you will see them later in the program.

1 Like

I really appreciate the work you’ve done to demonstrate how to do this, as well as the documentation. As Julia’s compilation options improve, this will continue to get better!

2 Likes