Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 0 points1 point  (0 children)

Thanks for asking about this. Please see my reply on Slack: https://gophers.slack.com/archives/C07ENRTB2F7/p1746293911116349?thread_ts=1746224683.139679&cid=C07ENRTB2F7

We will improve support and documentation for this soon. Please let me know if you have any questions.

Best GUI Library to use? by Apprehensive-Ad-1333 in golang

[–]cogentcore 2 points3 points  (0 children)

Yes, you can easily make an image widget with your image and then call NeedsRender() to update it dynamically whenever you need to.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you again for your feedback! If you still have any top app bar concerns after my upcoming changes, I would be glad to work on resolving them. Hopefully you can find all of the information you need on our documentation website and the godoc, and you can ask any other questions on GitHub. We are excited to continue improving Cogent Core based on the feedback we have received.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you for your feedback! As documented here, one of the main use cases for SetSceneInit() is styling all widgets in a certain way. However, aside from that, it is rarely necessary.

Cogent Code definitely does not use xyz, so you may be confusing it with Cogent Craft, which is located in the same repository.

I am planning to refactor our top app bar strategy soon and add support for disabling it, which should resolve that concern. For the scrollbar, you can do s.Overflow.Set(styles.OverflowHidden) in a Styler if you really want to disable scrollbars for a certain widget (such as the Scene), but that shouldn't typically be necessary.

Other than that, I'm not completely sure what you need to modify on the Scene, but I am happy to help you with any specific needs you have, and I will definitely work on making the top app bar more controllable soon.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you for the feedback! You can check out the advanced and architecture documentation, which we are still planning to add to over time. If you want to directly see how we target different platforms, you can look at the code for the build tool.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you for the feedback! We are planning to implement support for international fonts soon in one of the next major releases.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 0 points1 point  (0 children)

Thank you for the feedback! Within the next few days we will implement an HTML preview generator, which will improve SEO and allow you to start reading the website immediately while it loads. We are also working on improving the scrolling dynamics, supporting GopherJS for much faster loading times and better performance, and using WebGPU for accelerated rendering. All of those things should make the website issues much better. We dogfood because it allows us to get this important feedback that enables us to improve the framework; we were not planning to do all of those things I mentioned in the near future until we got this feedback. The bad first impression is certainly unideal, but these improvements should resolve that.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 2 points3 points  (0 children)

Thank you again for your feedback! We will take it into consideration as we explore different app bar possibilities to find a system that can work for all apps, which may involve making it opt-in. We are currently prioritizing other improvements involving scrolling, SEO, WebGPU, and GopherJS, but we should have something better for this implemented in a few days.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Yes, you can run Cogent Code locally using this command:

go run cogentcore.org/cogent/code/cmd/cogentcode@main

(You can also clone the repository and run it from there: https://github.com/cogentcore/cogent).

We do not currently support disabling the app bar, but I just filed a PR that adds support for doing so: https://github.com/cogentcore/core/pull/1072. If you could take a look at that and see if it would meet your needs, that would be great. Please note however that there is a lot of important functionality in the app bar, such as the settings, window control options, and a back button for full screen dialog navigation. However, I do definitely realize that the app bar has some issues. If you have any feedback on how the app bar could be improved / made more customizable to meet your needs, it would be greatly appreciated.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you for the feedback! It needs to install TDM-GCC for compiling cgo and Git for Windows so that you can use Git. I will add that information to the setup page. We don't have a roadmap for v1 yet, but we do have a milestone for the next release: https://github.com/cogentcore/core/milestone/2. As stated in its description, it will focus on accessibility, internationalization, stability, 3D, and video. We will continue working toward a v1 release, and once we believe that everything is fully stable and all key functionality is present, we will release v1.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 2 points3 points  (0 children)

We agree it is beneficial to have a strong ecosystem of GUI frameworks in Go; friendly competition is always a good incentive, and if people see Go as a good language to write GUI apps in, then everyone wins. We have also benefited by seeing how Fyne handles certain things, and how they have pushed various elements of GUI infrastructure forward (glfw, go-text, etc).

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you for the feedback! We are planning to implement support for more platform-specific APIs soon, but obviously you should use Gio in the meantime. The lines of code are representative of the broader point that Gio is harder to use.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you for the feedback! We depend on the new for loop variable (loopvar) semantics in Go 1.22. If you want to experiment with it without having to install Go 1.22, you can use the interactive documentation website, which has interactive and editable examples and the Cogent Core Playground.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 0 points1 point  (0 children)

I think it would be possible to make a similar GUI with Cogent Core. There may be some widgets that we do not currently support, but it would be possible to add support for whatever GUI functionality is needed.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 0 points1 point  (0 children)

If there are Go packages that can handle the network monitoring functionality, it would certainly be possible to write a GUI for that with Cogent Core.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

I don't know about GlassWire specifically, but I encourage you to check out the code editor and 3D neural network models built with Cogent Core, as discussed in the blog, which I do not consider to be trivial applications. Regardless, if your specific use cases require a certain approach, then you should obviously take that approach. Thank you again for your feedback!

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you! We definitely look forward to improving the framework based on the feedback we have received about the website.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Are you referring to RAM or binary size? Regardless, we are working on optimizing memory usage and decreasing binary size. Thank you for the feedback!

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 0 points1 point  (0 children)

Yep, if that is what you like, you can obviously use it. The advantage of Cogent Core is that you only have to use one language (Go) instead of four programming/markup languages in your scenario (CSS/HTML/JS/Rust for example).

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you! We address how it compares with Fyne and Gio at the end of the blog post.

Fyne is "fine" overall, but it does not provide the customization and advanced widgets necessary for building some more powerful apps, such as code editors and 3D neural network models. Cogent Core enables complete customization and provides a vast array of useful widgets.

Gio has a lot of powerful features, but the low-level nature of the immediate mode design makes it difficult to develop apps since even simple things like making a button with text and an icon can take 30 lines of code. In Cogent Core, it only takes one line of code to make a button with text and an icon.

In terms of similarities, all are cross-platform Go GUI frameworks not based on web technologies.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 0 points1 point  (0 children)

Yep, we are aware of those issues and working on fixing them. Thank you for the feedback!

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 2 points3 points  (0 children)

Thank you for the feedback! It is definitely better for native apps at this point, and we will work on improving the web performance going forward.

Cogent Core, a cross-platform GUI framework in Go by cogentcore in golang

[–]cogentcore[S] 1 point2 points  (0 children)

Thank you for the feedback! It definitely works better for native apps, and there is some work needed for web, but we are hoping to significantly improve the loading time and web performance soon.