HNHacker News
TopNewBestAskShowJobs

eliasnaur

124 karma · joined April 1, 2019

Started Gio, https://gioui.org, for portable immediate mode GUI programs in Go. Maintainer of mobile platform support for Go.
submissionscomments
eliasnaur··on Raygui – A simple and easy-to-use immediate-mode GUI library
FWIW, Gio (gioui.org) recently added support for RTL languages and complex scripts. So there's no fundamental reason immediate mode UIs can't have the nice features you're used to from retained mode UIs.
eliasnaur··on Raygui – A simple and easy-to-use immediate-mode GUI library
With intelligent frame pacing you can sacrifice, say, a frame of input latency to sustain high frame rates. See https://raphlinus.github.io/ui/graphics/gpu/2021/10/22/swapc....

> Are immediate-mode GUIs up to the task? What is driving their authors to pursue this design? Why aren't they choosing a declarative design

Immediate mode UIs make managing state much easier, and avoids callbacks for event processing. That alone is worth it in my opinion.

eliasnaur··on Raygui – A simple and easy-to-use immediate-mode GUI library
The immediate mode Gio (gioui.org) toolkit has support for accessibility (on Android for now), IME and, recently, RTL text layout.

Disclaimer: I'm the author.

eliasnaur··on Write Libraries, Not Frameworks
Sadly even imgui cannot get around the fact that many operating systems (macOS/iOS/Android) force you to give up your main thread. Linux and, perhaps surprisingly, Windows are good guys in this regard.
eliasnaur··on Show HN: A Go unikernel capable of running GUI programs
It happened by accident. Originally I wanted to run on bare-metal, and thought UEFI would be a good starting point. THen I never got around to adding multiboot and similar support.
eliasnaur··on Ask HN: Best language to share code between an Android and iOS app?
Gomobile bridges Java and ObjectiveC/Swift to Go, and probably entails the same overhead the author is trying to avoid.

Shameless plug: If you like Go and immediate mode UIs in particular, Gio[0] runs the same Go code across desktop and mobile alike. No bridging or native code required.

If you like a more mature framework and don't mind Dart, I think Flutter is an attractive toolkit. I started Gio wanting to write a Flutter clone in Go before going for the immediate mode design.

[0] https://gioui.org