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

相关推荐

  • 山东开通-u0026#34;灯塔—党建在线-u0026#34;综合管理服务平台(山东开通高铁的地方)

    新华网济南9月1日电(记者萧海川)山东“灯塔——党建在线”综合管理服务平台8月31日在济南正式开通。该平台整合多方面党建信息化资源,为党员群众、各级党组织等提供服务,实现对山东全省…

    科研百科 2024年6月9日
    37
  • 如何加强合同管理的措施

    1、加强合同管理的措施:提高管理人才的素质 专业人才缺乏也是影响建设项目合同管理效果的一个重要因素。建设合同涉及内容多,专业面广,合同管理人员需要有一定的专业技术知识、法律知识和造…

    科研百科 2022年11月16日
    170
  • 模拟科研项目申报书范文

    科研项目申报书范文 科研项目申报书范文 项目概述 本科研项目旨在研究一种新的材料制备方法,该方法具有高效、环保、节能等优点。该研究旨在为材料科学的发展做出贡献,并为解决能源问题提供…

    科研百科 2025年4月9日
    1
  • 科研项目外协验收

    科研项目外协验收: 探索合作与共赢之路 科研项目外协验收是科研项目的重要环节之一,它标志着项目合作达到了预期的目标,同时也为项目双方提供了重要的评估和沟通机制。在当前全球化、信息化…

    科研百科 2025年2月15日
    1
  • 水务工程项目管理系统

    水务工程项目管理系统:让工程项目管理更高效 随着城市化进程的加速,水资源短缺问题越来越受到重视。水务行业作为水资源管理的重要领域,也面临着巨大的挑战。为了有效地管理水务工程项目,我…

    科研百科 2025年1月17日
    1
  • 科研项目如何落地实施

    科研项目如何落地实施 科研项目的落地实施是科研项目最终成功的关键之一。实施过程需要确保项目进度和质量,并最终实现项目目标。以下是一些实施科研项目的关键步骤。 1. 制定详细的计划在…

    科研百科 2025年3月14日
    0
  • 5个典型的开发模型

    开发模型是人工智能领域的重要分支,主要负责将大量数据转换为机器可以理解和处理的信息。以下是五个典型的开发模型: 1. 神经网络模型神经网络模型是一种基于神经网络的机器学习模型。它可…

    科研百科 2024年10月13日
    4
  • 江苏出台科研经费管理新规为科研人员“减负松绑”(江苏省科研经费管理办法)

    交汇点讯 科学研究离不开资金的支持,科研经费怎样更好地为科研服务?今天上午,江苏省政府召开新闻发布会,相关部门对近日出台的《关于改革完善江苏省省级财政科研经费管理的实施意见》进行解…

    科研百科 2024年4月7日
    81
  • 职业教育课题立项(职业技术教育科研项目申报)

    职业技术教育科研项目申报 随着经济的发展和社会进步,职业技术教育越来越受到重视。为了推动职业技术教育的发展,提高教学质量,许多学校和研究机构都在积极申报科研项目。本文将介绍一些职业…

    科研百科 2024年8月5日
    52
  • 2023年中国各软件公司的销售额

    2023年中国各软件公司的销售额预测 随着数字化进程的加速,软件行业已成为中国经济增长的重要驱动力之一。根据市场研究机构的估计,2023年中国软件行业的销售额预计将达到8,000亿…

    科研百科 2024年11月28日
    5