HumbleUI
compose-multiplatform
HumbleUI | compose-multiplatform | |
---|---|---|
5 | 96 | |
1,123 | 14,760 | |
2.6% | 1.2% | |
7.7 | 9.6 | |
7 days ago | 1 day ago | |
Clojure | Kotlin | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
HumbleUI
-
Is Clojure the only language you need?
So you can see, there are really a lot of choices but none of them dominates, which means they all have flaws. You can read a good article from Niki Tonsky where Clojure UI problems are discussed. Also to address the problems Niki Tonsky started the development of a new UI for Clojure, called Humble UI. So now we have one more option :)
-
So you're using a weird language
If you don't mind being stuck on Windows you could use Visual C# or Visual Basic, they have edit-and-continue too. https://learn.microsoft.com/en-us/visualstudio/debugger/edit... I've worked with the SuperTux C# level editor in the past. C# was actually pretty nice for GUI stuff.
There doesn't seem to be a good GUI framework for Clojure. There was Seesaw but it hasn't been updated since 2019. There is a guy developing a new framework https://github.com/HumbleUI/HumbleUI/ but it's WIP. I guess you could sidestep this by making it a webapp and using figwheel.
-
The shape of data
UI toolkits: https://github.com/HumbleUI/HumbleUI and https://github.com/phronmophobic/membrane
-
Ask HN: Does Java need a modern Java UI toolkit for desktop/web?
Nikita Prokopov is developing Humble UI which is worth keeping a close eye on. (Yes, it's Clojure, but Java interop is bound to emerge if it builds up a critical mass and catches on.)
https://github.com/HumbleUI/HumbleUI/
-
The Decline and Fall of Java on the Desktop Part 1 (1999-2005)
I've made a few desktop apps in https://github.com/cljfx/cljfx (e.g., https://www.chronos-desk.com/), and cljfx (JavaFX + Clojure) is amazing and makes for rapid development, not to mention fun. I'm keeping an eye on https://github.com/HumbleUI/HumbleUI, which promises to be a step up.
compose-multiplatform
-
Understanding file associations in JVM apps
So, to add file associations, we need to be able to pass both the .properties file and the --file-associations option. At the time of writing this article, the org.jetbrains.compose plugin doesn't provide such a mechanism. There is an open issue on GitHub that describes a possible workaround, which, unfortunately seems to not work on macOS.
-
Compose cannot be used for large amount of text
JetBrains has a simplified example of a general-purpose Compose text viewer here: https://github.com/JetBrains/compose-multiplatform/blob/master/examples/codeviewer/shared/src/commonMain/kotlin/org/jetbrains/codeviewer/ui/editor/Editor.kt
-
[Compose Multiplatform] Disable a button according to a list of flow values
![image](https://github.com/JetBrains/compose-multiplatform/assets/1382241/6747a3f6-53b9-43da-8d97-ab1e1e31170f)
- Compose Multiplatform 1.5.0-beta01
-
Timeline with Scrollbar in LazyColumn Compose
Compose for desktop has a scrollbar component available. You probably can't use that directly on Android, but you could probably steal most of its code.
- How good is Compose Multiplatform in production especially in creating Desktop apps?
-
Kotlin for a desktop App
My company uses https://github.com/JetBrains/compose-multiplatform to make a desktop app in Kotlin. It's amazing and fantastic. It's basically as mature as using Kotlin in an Android app.
-
Kamel v0.5.0 released with Kotlin Native and JS support
Kamel is an asynchronous media loading library for Compose Multiplatform.
-
Ksoup - Kotlin Multiplatform HTML Parser ⚡
Kotlin Compose Multiplatform is the way to do Desktop apps. https://github.com/JetBrains/compose-multiplatform
-
JetBrains Compose is now Compose Multiplatform
As for missing controls, a common one is a grid. They have built in grids, but again they are built for Android and don't make any sense in a desktop app. There is no simple way to create an Excel-like Data Grid like you might see in Windows Forms, although it can be done. https://github.com/JetBrains/compose-multiplatform/issues/344.
What are some alternatives?
teavm - Compiles Java bytecode to JavaScript, WebAssembly and C
javafx-examples - A large collection of JavaFX examples demonstrating basic + advanced features of JavaFX.
membrane - A Simple UI Library That Runs Anywhere
tornadofx - Lightweight JavaFX Framework for Kotlin
skija - Java bindings for Skia
skiko - Kotlin MPP bindings to Skia
cljfx - Declarative, functional and extensible wrapper of JavaFX inspired by better parts of react and re-frame
javafx-gradle-plugin - Gradle plugin that makes it easy to work with JavaFX 11+
convex - Convex Main Repository - Decentralised platform for the Internet of Value
Jetpack-Compose-Playground - Community-driven collection of Jetpack Compose example code and tutorials :rocket: https://foso.github.io/compose
jdeploy - Developer friendly desktop deployment tool
tornadofx2 - TornadoFX 2.0