steam-deck-utilities icon indicating copy to clipboard operation
steam-deck-utilities copied to clipboard

Re-evaluate Fyne as the GUI library

Open CryoByte33 opened this issue 2 years ago β€’ 8 comments

Fyne has many small issues that make it difficult to work with. Either spend some time working with the Fyne devs to improve the library (preferred), or change to another library.

In the absolute worst case, reconsider Go as the development language.

CryoByte33 avatar Feb 25 '23 08:02 CryoByte33

agree with reconsidering the Go language given that as of today "Go" is widely reported as THE multi-platform malware delivery system that every bad actor uses these days, something linux isnt safe from either.

DisasterIncarnate avatar Feb 25 '23 19:02 DisasterIncarnate

"Go" is widely reported as THE multi-platform malware delivery system that every bad actor uses these days, something linux isnt safe from either.

I mean, countless languages have been used to deliver malware. Considering that Go is just a language, blacklisting it because it's used seems kind of odd πŸ˜…

My point wasn't that Go is bad, just that the GUI ecosystem isn't very robust yet.

CryoByte33 avatar Feb 25 '23 21:02 CryoByte33

I have found that Fyne has community extensions and one of them is responsive layout - https://github.com/fyne-io/fyne-x maybe it's worth a look.

Promising frameworks i found (i don't have exp with them):

  • Gio - https://gioui.org/doc/showcase/godcr
  • NuxUI - https://github.com/nuxui/nuxui
  • Giu - https://github.com/AllenDang/giu

And not gui but tui (but it is pretty amazing) - https://charm.sh/libs/

ElNovi avatar Feb 25 '23 23:02 ElNovi

agree with reconsidering the Go language given that as of today "Go" is widely reported as THE multi-platform malware delivery system that every bad actor uses these days, something linux isnt safe from either.

Go isn't used to write malware because it's inherently less secure than other languages, it's used for three primary reasons:

  • it's a very simple language that's easy to write
  • it has a very extensive standard library that let's you do a lot without needing external dependencies
  • it makes it super easy to create binary executables for all major OSs.

Python has the same easy to write, large std lib benefits but to send malware out to the world requires your target having a compatible version of python installed in most cases.

Basically the reason why go is so popular in malware is the same reason why anyone would want to use go, it makes it really easy to deliver software without a lot of overhead

dannyg28 avatar Feb 26 '23 20:02 dannyg28

@CryoByte33 have you considered solutions like https://wails.io ?

Wails is a project that enables you to write desktop apps using Go and web technologies. Consider it a lightweight and fast Electron alternative for Go. You can easily build applications with the flexibility and power of Go, combined with a rich, modern frontend.

I've been using it on a couple of projects and it works quite well. I had 10 minutes to spend so I've reimplemented the login screen. Screenshot 2023-03-07 at 13 01 25 Screenshot 2023-03-07 at 13 00 47

If you are comfortable with web technologies and typescript I highly recommend it. When a Go function is exposed to the UI it even generates the typescript interface.

I could write a POC if you are interested. Can be fun πŸ˜†

fkhadra avatar Mar 07 '23 12:03 fkhadra

I am 0% comfortable with web technologies, I'm almost entirely a backend developer and can't stand JS/TS πŸ˜…

CryoByte33 avatar Mar 07 '23 13:03 CryoByte33

I am 0% comfortable with web technologies, I'm almost entirely a backend developer and can't stand JS/TS πŸ˜…

Too bad πŸ˜†

fkhadra avatar Mar 07 '23 15:03 fkhadra

I use gio . I also know wails and Fyne.

gio is a less well know one. Mostly because it’s on source hut .

it’s pretty powerful. You get pixel level control.

It Loks like you need to manage files but not sure. Gio have a good file explorer that works everywhere so that might help

gedw99 avatar Mar 13 '23 22:03 gedw99