Go 真的也可以进行 GUI 开发:还有这样的图书呢(go语言开发书籍)

大家好,我是站长 polarisxu。

最近看到一个视频:Building a Chess GUI with Fyne[1],讲解如何使用 Go 构建一个完整的国际象棋应用程序。这个视频演示了如何构建 UI,添加动画,交互和拖放。所有这些都基于 Fyne[2] 这个库构建,可以安装到桌面和移动设备!这个国际象棋的项目地址:https://github.com/andydotxyz/chess。

Go 真的也可以进行 GUI 开发:还有这样的图书呢(go语言开发书籍)

出于好奇,我深挖了一下,访问了视频作者的个人网站:https://andy.xyz/,发现它就是 Fyne 的作者:Andrew Williams。他还创建了 FyneLabs[3],专门支持 Fyne 的发展。

01 一本 Go GUI 图书

同时,通过作者的网站,我发现他写了一本书:《GUI Application Development in Go》[4],作者在这本书里对比了 Go 中可用的 GUI 工具包,包括一些传统的工具包(Walk[5]andlabs UI[6]Go-GTK[7]qt[8])和一些更前沿的项目(Shiny[9]nk[10]Fyne[11])。通过这些项目,作者探讨什么样的结构和代码更适合开发 Go GUI 程序。

通过 GTK 的 Go 绑定构建了一个电子邮件应用程序,界面如下图,看起来还可以?

Go 真的也可以进行 GUI 开发:还有这样的图书呢(go语言开发书籍)

另外有一个图片查看器,使用 Fyne 构建的,界面如下图:

Go 真的也可以进行 GUI 开发:还有这样的图书呢(go语言开发书籍)

在这本书中,作者还讨论了如何规划和构建一个 GUI 应用程序以及它所依赖的代码。此外还了如何使用单元测试持续集成,以及在集成网络和云服务时如何保持可维护的代码。最后介绍了如何打包和分发跨平台应用程序,以便交付给最终用户。

该书在 Amazon[12] 上可以买到,还有 Kindle 版,出版时间是 2019 年 2 月。

Go 真的也可以进行 GUI 开发:还有这样的图书呢(go语言开发书籍)

02 一个 Fyne 图书

通过上面那本书,我又发现了另外一本书:《Building Cross-Platform GUI Applications with Fyne》[13],副标题是:Create beautiful, platform-agnostic graphical applications using Fyne and the Go programming language。

这也是 Andrew Williams 写的,出版时间是 2021 年 1 月底。

上一本书主要对比现存的 Go GUI 库,以及探索一个更合适的 Go GUI 开发方案,而这本书,主要讲述如何使用 Fyne 这个 Go GUI 工具包开发出漂亮的、跨平台的 GUI 应用程序。

该书主要让你:

  • 了解如何使用标准 widgets,dialogs 和 layouts 以及如何构建自己的以上组件
  • 了解如何开发应用程序和包并将其分发到不同的操作系统和应用商店
  • 探索 Fyne 工具包的设计原则和愿景以及你在项目中可以如何使用

本书主要通过示例项目来讲解,一共有五个示例项目,你将学习如何有效构建应用程序,专注于每个主要区域,包括画布,布局,文件处理,小部件,数据绑定和主题。本书还将向你展示已完成的应用程序如何在桌面计算机,笔记本电脑和智能手机上运行。完成这些项目后,你还可以将它们分发各种应用商店中供别人下载使用。

如果你坚持学完该书,应该能够创建出漂亮的跨平台图形应用程序。

以下是该书目录:

  1. A Brief History of GUI Toolkits and Cross-Platform Development
  2. The Future According to Fyne
  3. Window, Canvas, and Drawing
  4. Layout and File handling
  5. Widget Library and Themes
  6. Data Binding and Storage
  7. Building Custom Widgets and Themes
  8. Project Structure and Best Practices
  9. Bundling Resources and Preparing for Release
  10. Distribution – App Stores and Beyond
  11. Appendix A: Developer Tool Installation
  12. Appendix B: Installation of Mobile Build Tools
  13. Appendix C: Cross-Compiling

03 总结

虽然 GUI 不是 Go 的主战场,但作为一门通用编程语言,一些第三方库证明,Go 也是可以进行 GUI 开发的。如果你对 Go 语言开发 GUI 感兴趣,可以看看本文介绍的这两本书,特别是 Fyne 这本。从 Fyne 的发展看,前途还是值得期待的。

当然,你也可以直接研究文章开头提到的国际象棋项目。

以后请别说 Go 不能开发 GUI 程序了~当然,我们可以将 Go GUI 开发作为自己的爱好,业余研究,不能指望通过它找工作啥的。

你会学习下 Go 的 GUI 开发吗?欢迎留言交流。

参考资料

[1]

Building a Chess GUI with Fyne: https://www.youtube.com/watch?v=zlPDWBLhn6c

[2]

Fyne: https://fyne.io/

[3]

FyneLabs: https://fynelabs.com/

[4]

《GUI Application Development in Go》: https://andy.xyz/2019/03/07/meet-the-first-book-about-golang-gui-programming/

[5]

Walk: https://github.com/lxn/walk

[6]

andlabs UI: https://github.com/andlabs/ui

[7]

Go-GTK: https://github.com/mattn/go-gtk

[8]

qt: https://github.com/therecipe/qt

[9]

Shiny: https://github.com/golang/exp/tree/master/shiny

[10]

nk: https://github.com/golang-ui/nuklear

[11]

Fyne: https://github.com/fyne-io/fyne

[12]

Amazon: https://www.amazon.com/Hands-GUI-Application-Development-cross-platform-ebook/dp/B07GYLYSCT/ref=sr_1_1

[13]

《Building Cross-Platform GUI Applications with Fyne》: https://www.amazon.com/Building-Cross-Platform-Applications-Fyne-platform-agnostic-ebook/dp/B08PKTNVBQ/ref=pd_rhf_dp_s_ci_mcx_mr_hp_d_2

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年5月14日 上午9:39
下一篇 2023年5月14日 上午9:55

相关推荐

  • 0代码体验效果,1行实现推理,10行搞定调优!101个CV模型开源(cv 代码)

    作者:谢宣松 阿里达摩院开放视觉智能负责人 编辑:好困 【新智元导读】11 月 3 日,在 2022 云栖大会上,阿里达摩院联手 CCF 开源发展委员会共同推出了 AI 模型社区「…

    科研百科 2024年7月8日
    142
  • 科研项目费用支付过程数据流程图(科研项目具体费用情况怎么填)

    科研项目具体费用情况的填写 在申请科研项目时,如何填写具体费用情况是一个至关重要的问题。费用情况的填写不仅关系到项目的申请,也关系到项目的实施和成果。因此,准确填写费用情况非常重要…

    科研百科 2024年4月11日
    61
  • 科研项目实施大纲

    科研项目实施大纲 科研项目的实施是项目成功的关键之一。一份好的实施大纲可以帮助项目团队更好地规划项目,确保项目按时按质完成。本文将介绍一份科研项目实施大纲的结构和内容。 一、项目概…

    科研百科 2025年2月14日
    0
  • 为科研项目落地开花结果

    科研项目落地开花结果 科研项目落地开花结果是科学家们不断努力追求的目标。在过去的几十年中,科学家们一直在探索新的科学技术,并努力将它们转化为实际应用。今天,我们可以自豪地说,许多科…

    科研百科 2025年1月30日
    0
  • 项目管理中的项目进度管理

    项目管理中的项目进度管理 在项目管理中,项目进度管理是非常重要的一个环节。进度管理不仅是为了确保项目能够按时完成,同时也是为了确保项目在预算、时间、质量等方面都能够达到预期目标。本…

    科研百科 2024年9月27日
    14
  • 南召县应急管理局积极探索主题党日“3+N”模式打造党建坚强战斗堡垒

    今年以来,南召县应急管理局坚定不移强化组织建设,认真落实党建工作责任制,牢固树立“围绕中心抓党建,抓好党建促工作”的思想,积极探索主题党日“3 N”模式,多彩党建与业务工作融合互促…

    科研百科 2023年10月4日
    138
  • 科研管理重要性

    科研管理的重要性 科研管理是保证科研项目正常推进、研究成果质量和效率的重要环节。科研管理不仅仅是对科研项目的规划和组织,还包括对科研项目的进度、质量、成本、安全等方面的管理。科研管…

    科研百科 2024年10月26日
    0
  • 朋友圈九宫格切图怎么做?这3款切图软件收好了!(朋友圈九宫格切图教程)

    朋友圈九宫格切图怎么做?朋友圈最高级的晒图方式,当然是九宫格图片了,很多小伙伴们经常刷到九宫格切图的朋友圈,你一定很好奇这样的图片是怎么做出来的吧?今天就来给大家分享三种方法~ 0…

    科研百科 2024年5月21日
    64
  • 办公新风系统

    办公新风系统: 让办公环境更清洁、更健康 随着现代办公室的忙碌程度越来越高,空气质量也变得越来越重要。尤其是在工作日午后,人们常常需要离开办公室进行休息,这时候办公室的空气质量变得…

    科研百科 2025年1月4日
    0
  • 免费合同管理系统

    免费合同管理系统: 实现合同管理的简单高效 随着商业活动的不断增加,合同管理已经成为了企业日常运营中不可或缺的一部分。但是,传统的手动合同管理方式不仅效率低下,而且容易出错。因此,…

    科研百科 2025年1月3日
    2