practicalli / practicalli/clojure

Desktop apps in Clojure

Open
#230 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Makefile
Stars
117
Forks
36
PR merge metrics
No merged PRs in 30d

Description

https://vlaaad.github.io/year-of-clojure-on-the-desktop
http://nils-blum-oeste.net/desktop-guis-with-clojure-in-2017-what-are-the-options/

JavaFX
https://github.com/cljfx/cljfx
Cljfx is a declarative, functional and extensible wrapper of JavaFX
https://github.com/cljfx/css
Simple Styling for cljfx

https://www.reddit.com/r/Clojure/comments/8uge0p/guis_and_clojure_how_can_i_do_it/

https://ahungry.com/blog/2019-07-22-Simple-non-Electron-Native-GUI-Development.html

fn(fx)
https://github.com/fn-fx/fn-fx
wrapper around JavaFX / OpenJFX to provide a "Virtual DOM"
https://github.com/nblumoe/clj-ui-spikes/tree/master/fn-fx-ui
a simple GUI with Clojure and JavaFX

Scene builder and FXML
Visually design your application using JavaFX scene builder, includes a few themes
https://gluonhq.com/products/scene-builder/
Is written in Java, so multiplatform
Choose base template, design app and save to an FXML file
Use https://github.com/zilti/clojurefx to consume that file
https://www.slideshare.net/netpyoung/using-fxml-on-clojure

Swing
https://github.com/daveray/seesaw
https://gist.github.com/daveray/1441520
https://stuartsierra.com/2010/01/02/first-steps-with-clojure-swing

Java Interop
Call Swing and AWT (abstract window toolkit) directly from Clojure via standard interop code.

Java Server Faces
https://www.primefaces.org/

Other options?

  • Tck/tk

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the linked Clojure desktop-app resources, including JavaFX, fn-fx, FXML, Swing, Java interop, Java Server Faces, and Tk/tk. Decide which options belong in the project’s documentation and organize the relevant links and descriptions. Done means the desktop-app guidance is current, coherent, and covers any selected additional options.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure, java
Domain
desktop-dev, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.