3 ms·
I suggest taking a look at Cljfx https://github.com/cljfx/cljfx https://github.com/cljfx/cljfx It's built around JFX, but it's very Clojure-y (much more than
by geokon 7y ago
I suggest taking a look at Cljfx
https://github.com/cljfx/cljfx https://github.com/cljfx/cljfx
It's built around JFX, but it's very Clojure-y (much more than the alternate Swing library). I've been making small GUIs with it and it's convenient and "just works". The only issue I've had is when some callback blows up somewhere in the guts you don't get clean call stacks so it's very hard to debug, but then.. isn't most GUI code? You just need to work incrementally which is easy to do with a REPL
- lvh 7y agoHuh! I've previously only used fn-fx. Any chance you've used both?
- geokon 7y agoYeah, I actually used fn-fx at first but it's quite complicated internally and semi-unmaintained. I found some bugs/issues and I couldn't figure out how to fix them. Then the project was taken over by a new maintainer but he admitted that he didn't really know how the system works or how to fix it. I similarly read a comment from the cljfx creator that he started the project b/c he didn't know how fn-fx works and how to add to it. I also wanna say that the CLJFX maintainer is very friendly and responsive and he's been very helpful with all my dumb questions. I thought it's be one of those libraries that gets "finished" and then archived, but he's been keeping at it and releasing new versions for a long while now The design-paradigm is essentially the same (React-style). You still have a state atom and you're still making a map structure of your GUI elements and then hooking up callbacks to events. I find it's really easy to use, but at the same time I have to admit I don't really get how it works or how to debug the system. It's a bit of a black box for me. You feed in a data structure and it make a GUI for you and functions get called when stuff happen/changes.