Live data from Hacker News

JetBrains Compose

jetbrains.com

1–10 of 53 posts

Re: JetBrains Compose

#2
This looks interesting, having skia as the drawing foundation and reactive as a core element sounds like they’re rewriting a flutter like framework but on the jvm instead of dartvm. Jetbrains sometimes dogfoods their products so I hope to see this technology exercised into utility

Re: JetBrains Compose

#4

somehow reminds me of SWT. could someone more familiar compare this with SWT, Swing, etc. in term of its placement in the ecosystem.

This is very different from SWT. SWT mostly uses the platform's native widgets, whereas this draws its own widgets. SWT is much better for accessibility.

Re: JetBrains Compose

#6
My biggest gripe with virtually every UI is that it forces you to learn yet another language just to code with it. Why can't there be UI APIs that work across languages like there is with loads of other stuff?

We have this for networking, disk I/O, common OS operations, and even 3D graphics, but for some reason 2D user interfaces just can't be presented in this way. Why can't there be an OpenGL-like thing for desktop-style and mobile-style UIs that presents the most universal design patterns via standard APIs and allows access to OS or UI-layer specific extensions? How hard is this?

There is one lone project by one developer that seems to have been trying to do this, but it seems dead. Probably far larger than one developer can tackle in their spare time, but the effort is admirable:

https://github.com/andlabs/libui

This one person somehow gets it.

Back to the topic at hand. It's not that Kotlin is a bad language. I've heard it's quite nice. The problem is that it's yet another language which means more cognitive load, more build complexity, and so on. If my project is in Go or C++ or Rust, I want my UI in Go or C++ or Rust.

All that being said, I use Jetbrains IDEs and am generally impressed. They make very high quality stuff, so this merits at least a look.

Re: JetBrains Compose

#8

How does this interact with the Accessibility settings on Mac OS?

I've found that accessibility is the rock upon which virtually every third party UI option dies (for serious work), save the most mature ones.

Re: JetBrains Compose

#9
Ugh, yet another GUI toolkit. Let's spread the work of implementing and debugging accessibility even thinner.

I understand that by drawing its own widgets on desktop, Compose can provide greater parity with Android. But that benefits developers at the cost of some users.

I think what I would have done is implement the widgets on the web platform and use CEF for the whole application, not just the browser widget. Then they could also target web applications through Kotlin/JS, though potentially with an oversized JS bundle. It would also be important in that case to avoid the pitfalls of Flutter for Web, e.g. requiring the user to press a button to turn on full accessibility.

Speaking of CEF, making their embedding of that accessible is going to be particularly problematic, because they're using it in off-screen rendering mode, so they can render the page to a bitmap and draw that onto their own canvas. That means they don't benefit from Chromium's mature support for platform accessibility APIs. CEF does expose Chromium's cross-platform accessibility tree (thanks Adobe!), but then it's up to you to expose that to the host platform. Windows screen readers in particular have special support for Chromium's Windows accessibility implementation, allowing users to use special keyboard commands when browsing web pages. Unless Compose's accessibility implementation is a bug-for-bug emulation of Chromium's, Windows screen reader users won't have the usual level of access to web content.

Re: JetBrains Compose

#10

Ugh, yet another GUI toolkit. Let's spread the work of implementing and debugging accessibility even thinner. I understand that by drawing its own widgets on desktop, Compose can provide greater parity with Android. But that benefits developers at the cost of some users. I think what I would have done is implement the widgets on the web platform and use CEF for the whole application, not just the browser widget. Then…

What's even worse - It's Java UI kit.
Post reply on HN