Distributing your app

March 1, 2022 ยท View on GitHub

Regardless of how you distribute your app, you'll probably want to use run-ui-sync to prevent the jvm from shutting down. Below is an example of -main.

(defn -main [ & args]
  (let [initial-state {:foo "bar"}]
    (run-ui-sync #'app-root initial-state)))

Uberjar

You can always distribute your app as an uberjar. It will require java 1.8+ to be installed on the target platform, but it will work regardless of which platform the app was developed on.

Mac OS X .app

For distrbuting to Mac OS X, appbundler does a great job of turning your uberjar into a .app.

https://github.com/TheInfiniteKind/appbundler/