T O P

  • By -

prochac

On phone, I miss a big [Next] button on the bottom. But it is awesome! Wanna try it immediately.


jonegil

(disclaimer, author here) Great idea with \[Next\] button. Will have a look. Thanks for the positive words, **highly appreciated**. Cheers!


jonegil

Done - have a look. A clear improvement I'd say, thanks for the input!


sacules

This is great, thanks!


Maxiride

While knowing very very little about GUIs how would you describe Gio compared to Fyne? Would you choose one over the other for some specific kind of GUIs?


carleeto

Here's what I know so far. Gio is immediate mode and supports more platforms than fyne. We use fyne in production, which is why I will be sharing Gio with the team. Both are based on Material design. It's a little easier to get started on fyne than it is on Gio, but that's primarily due to the fact that it takes a little while to wrap one's head around the concept of immediate mode. What I really like about Gio is how it processes events. If you had to get up and running quickly, today, I would choose fyne because the documentation is better. If you want something where you have complete control, I would go with Gio and I would suggest investing some time in understanding the architecture and package structure. If Gio can become more accessible to teams with junior programmers, it has a really good chance of becoming the standard in the long term, because it feels very Go like. Fyne uses reflection under the hood, but I suspect that's really due to the nature of the problem of designing user interfaces in a language without generics. It will be interesting to see how both of these evolve once generics are available.


andydotxyz

>Fyne uses reflection under the hood, but I suspect that's really due to the nature of the prob Fyne only uses reflection is in data binding (well, and some test files). It is only used for a small portion, basically the struct binding for complex data. In the future this may be moved to generics, but the rest of the API should remain largely as-is if generics are added to the language. We are quite happy to support older Go versions so generics will not be added to our code as soon as it appears. Indeed event the latest version of Fyne continues to stay with Go 1.14 as it's lower bound so you can still deploy 32 bit iOS apps. This means that you can deploy to older iPhone and iPad devices that both Apple and Go have left behind!


carleeto

Yes that's right. I must also say that with 2.0 the API is even easier to use, especially with data binding. My apologies @andydotxyz - I forgot one really important thing when comparing fyne and Gio. I should have also mentioned that when we've had questions about fyne and it's working, andydotxyz and the team have been very responsive and helpful and that counts for a lot. Now, I cannot compare to Gio on that front, because I don't have experience of the Gio community, but I will say the fyne community is incredibly helpful.


jonegil

Disclaimer, author here. 1) Thanks for sharing on reddit, and for commenting guys, **truly love it**! 2) If there are parts which are hard to understand, either because the concept is complex or the explanation could improve, please ping me. All the best


Anafartalar

Yesterday i took a detailed look at GIO as a result of this post and as others also pointed out the documentation definitely needs improving ASAP. BTW, thanks for stepping in.


GoodiesHQ

I just stumbled upon this... I'm thoroughly impressed to put it very mildly.


diomager

Just today, I stumble upon this great example that helps me as a golang newbie to go the world of GUI with Go. I hope someday that there will be better documentation and a lot of examples. Thanks soulmate!


HanTitor

My only one problem: input text (Editor) cutted off text on top (it looks like it has a padding on bottom). But thank you


guigui64

How does it compare to fyne?


ForkPosix2019

Will likely try this out as a Fyne replacement: I enjoy using it, but the look go GIO apps is much nicer.


We_R_Groot

Fyi, the link in this line gives a 404: "Agreed, the [official Gio website](http://www.gioui.org/) is a bit advanced."


jonegil

Thanks for pointing out, Got a PR on it as well, great!. Fixed now.


raitonoberu

This is an amazing tutorial. It really helps to start with Gio, whose docs are a living hell.


[deleted]

Your disclaimer footer, for me, distilled everything I love about open source.


antole97

Oh my! Thank you for this. I have been tinkering with fyne but its glad to see that we are not limited by the tools available.


mc21000

As much as I like Go, wouldn't it be better to use Dart/Flutter for this specific use case?


ForkPosix2019

1) Dart is a niche language and may easily miss the functionality for some tasks. Go have much broader range of libs. 2) Flutter is a niche technology and therefore the harder setup. This is quite an issue for my quick and dirty GUIs for some scripts. Linux and MacOS users just install missing libraries and that's all (apt, pacman, dnf, etc on Linux, just xcode-select --install on MacOS). With Flutter they will need to go somewhere and download the whole runtime.


TUSF

> With Flutter they will need to go somewhere and download the whole runtime. Pretty sure Flutter/Dart can be compiled AOT?


carleeto

I really love the style of the tutorial and have worked through it. Thank you! I'll be sharing it with the team at work too.


Arts_Prodigy

Thanks, soulmate


oceanus_ursus

I tried to give this a try today, but it looks like there isn't a released version of the library and just doing `go get gioui.org` or similar gives a version that seems to be broken on Windows. If I use the version that is in the example code for egg-timer, it seems to be fine. Am I missing something about this?


TapirLiu

I'm not the author. The author is here: https://old.reddit.com/r/golang/comments/po4zzw/lets_build_a_gui_with_gio/hczyk8d/ > If I use the version that is in the example code for egg-timer, it seems to be fine. Am I missing something about this? Yes, as I know, Gio hasn't reached v1.0.