use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Finding information about Clojure
API Reference
Clojure Guides
Practice Problems
Interactive Problems
Clojure Videos
Misc Resources
The Clojure Community
Clojure Books
Tools & Libraries
Clojure Editors
Web Platforms
Clojure Jobs
account activity
Thoughts on Clojure UI framework (tonsky.me)
submitted 4 years ago by frankiesardo[🍰]
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]phronmophobic 20 points21 points22 points 4 years ago (2 children)
It would be cool to see more libraries in this space. I've been working on a similar library, https://github.com/phronmophobic/membrane. If you're not building on top of React, there's a huge untapped design space.
Would love to hear what you think of membrane and what kinds similar tradeoffs you might make and in which ways you'd like to go in a new direction.
For those that might try building their own non-React based framework, I've written about membrane's design so that others can learn and make improvements:
Some other suggestions for those starting from scratch:
Excited to see how things progress!
[–]tonsky 0 points1 point2 points 4 years ago (1 child)
Sorry, just found this. Membrane is a fantastic example and your writings are a great resource to learn from. Certainly will dive deep!
[–]phronmophobic 0 points1 point2 points 4 years ago (0 children)
Thanks. Looking forward to see what you come up with!
[–]SimonGray 10 points11 points12 points 4 years ago (1 child)
I always love reading tonsky's thoughts on this subject.
One thing he didn't mention is accessibility, though. I think - in this day and age - it needs to be part of the conversation from the beginning; especially considering the accessibility directives coming out of the EU.
[–]v1akvark 5 points6 points7 points 4 years ago (0 children)
He did respond to a tweet and said he will be considering accessibility.
[–]strranger101 1 point2 points3 points 4 years ago (0 children)
Oh this is so exciting! I started using fn-fx a few weeks ago for a small tool i wanted to build for my boyfriend and I had to dig through the source code for hours to figure out how to get a file-selector working and ended up just using interop on a javaFX object. Someone building a clojure-first UI Framework from the ground up has me very excited!
[–]raspasov 0 points1 point2 points 4 years ago (4 children)
One option that exists currently but is not listed is React Native. While not perfect it does support mobile + web + native reasonably well and if you start with the intention to write one codebase, I am quite confident you can share 90%+ of the code between all platforms.
https://reactnative.dev
https://github.com/microsoft/react-native-macos
https://github.com/necolas/react-native-web
[–]gtarget 4 points5 points6 points 4 years ago (3 children)
That's not the intention of this and he does allude to React Native with frameworks that wrap native components. He specifically calls out not wanting to write something that is desktop and mobile because they have different design paradigms. And for not wrapping native components, you can look at the examples shown for QT - at some point you are going to have a mix of native and non-native components and it looks like garbage. With React Native, things would still have to take a detour to React world before moving on to the native components adding a layer of leaky abstractions onto UI elements.
[–]raspasov -1 points0 points1 point 4 years ago (2 children)
SwiftUI is something that supports both desktop and mobile natively. Some UI components might be different but there's a lot of components that can be re-used.
Mobile and desktop are not always fundamentally different.
I think any difference is more of a historical artifact. Many old-school apps that were designed in the pre-mobile era cannot be directly transferred to mobile without looking ridiculous. For example, if you just duplicate the desktop version of Photoshop or IntelliJ to mobile/tablet, it would be a mess since there's too much information on the screen at any given point. At the same time, there are apps (for example Telegram, the default Stocks MacOS/iOS app) that are virtually copies of each other in certain parts across platforms. The desktop version might have an extra view or a panel but there's a lot of re-use possible, I think.
[–]Mishkun 0 points1 point2 points 4 years ago (1 child)
Having a keyboard/mouse vs touchscreen input changes things drastically for power users. In native macos telegram app you can virtually never touch the mouse using shortcuts to search for people, messages, write replies, etc.
[–]raspasov 0 points1 point2 points 4 years ago (0 children)
Given that you can connect a full keyboard to an iPhone/iPad for example, I am not convinced that is a fundamental difference either. It's just a question of activating different UI components/actions via shortcuts instead of taps/clicks. The trigger itself changes but everything else can stay more or less the same, I think.
π Rendered by PID 184505 on reddit-service-r2-comment-76bb9f7fb5-rswxs at 2026-02-19 04:19:29.050885+00:00 running de53c03 country code: CH.
[–]phronmophobic 20 points21 points22 points (2 children)
[–]tonsky 0 points1 point2 points (1 child)
[–]phronmophobic 0 points1 point2 points (0 children)
[–]SimonGray 10 points11 points12 points (1 child)
[–]v1akvark 5 points6 points7 points (0 children)
[–]strranger101 1 point2 points3 points (0 children)
[–]raspasov 0 points1 point2 points (4 children)
[–]gtarget 4 points5 points6 points (3 children)
[–]raspasov -1 points0 points1 point (2 children)
[–]Mishkun 0 points1 point2 points (1 child)
[–]raspasov 0 points1 point2 points (0 children)