Go 真的也可以进行 GUI 开发:还有这样的图书呢
大家好,我是站长 polarisxu。
最近看到一个视频:Building a Chess GUI with Fyne[1] ,讲解如何使用 Go 构建一个完整的国际象棋应用程序。这个视频演示了如何构建 UI,添加动画,交互和拖放。所有这些都基于 Fyne[2] 这个库构建,可以安装到桌面和移动设备!这个国际象棋的项目地址:https://github.com/andydotxyz/chess。
出于好奇,我深挖了一下,访问了视频作者的个人网站: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 绑定构建了一个电子邮件应用程序,界面如下图,看起来还可以?
另外有一个图片查看器,使用 Fyne 构建的,界面如下图:
在这本书中,作者还讨论了如何规划和构建一个 GUI 应用程序以及它所依赖的代码。此外还了如何使用单元测试、持续集成,以及在集成网络和云服务时如何保持可维护的代码。最后介绍了如何打包和分发跨平台应用程序,以便交付给最终用户。
该书在 Amazon[12] 上可以买到,还有 Kindle 版,出版时间是 2019 年 2 月。
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 工具包的设计原则和愿景以及你在项目中可以如何使用本书主要通过示例项目来讲解,一共有五个示例项目,你将学习如何有效构建应用程序,专注于每个主要区域,包括画布,布局,文件处理,小部件,数据绑定和主题。本书还将向你展示已完成的应用程序如何在桌面计算机,笔记本电脑和智能手机上运行。完成这些项目后,你还可以将它们分发各种应用商店中供别人下载使用。
如果你坚持学完该书,应该能够创建出漂亮的跨平台图形应用程序。
以下是该书目录:
A Brief History of GUI Toolkits and Cross-Platform DevelopmentThe Future According to FyneWindow, Canvas, and DrawingLayout and File handlingWidget Library and ThemesData Binding and StorageBuilding Custom Widgets and ThemesProject Structure and Best PracticesBundling Resources and Preparing for ReleaseDistribution - App Stores and BeyondAppendix A: Developer Tool InstallationAppendix B: Installation of Mobile Build ToolsAppendix C: Cross-Compiling03 总结
虽然 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
电子书vs实体书,加州数字图书馆和出版商们表示谁也不服谁
你现在看的更多的是什么书?电子书?还是实体纸质书?
小编得承认,自己为了方便和省钱在许久前就换成了使用电子书,纸质课本的厚度 和价格 实在是让我“无福消受”。
图片来源: Penn Book Center
不得不说,Ebook的发明的确为人类生活带来了不少便利 。
据调查,68% 的新一代成年读者使用电子阅读设备 ,因为其可以在任何光线条件下阅读或调整文字大小 ,也可以使用在线功能高光突出重要的文字以供之后参考存储 ,并且在同一个设备中可以放很多书随身携带 ;
86% 的受采访者表示,他们倾向于更便宜 的书,比如网站上免费的书籍文章 ,这也是他们选择阅读电子书的原因之一。
图片来源: Pinterest
加利福尼亚州旧金山的互联网档案馆Internet Archive 就是这么一个提供网络免费书籍的存在。
互联网档案馆是一个的非盈利在线数字图书馆 ,成立于1996年,其宗旨是“向民众普及所有知识 ”,该档案馆使公众能够免费观看大量数字化音乐、书籍和电影 。
学生通过互联网档案馆访问电子书
图片来源: Internet Archive
截至2022年5月,互联网档案馆已积累超过3500万 册图书和文本、790万 部电影、视频和电视节目、84.2万 个软件程序、1400万 个音频文件、400万 幅图像、240万 个电视片段和23.7万 场音乐会。
研究人员、历史学家、学者、弱视和阅读障碍等残疾群众 以及普通公众 都可以访问这个巨大的知识库。
图片来源: Tenor
该平台最受欢迎的收藏之一是Wayback机器 ,一个访问书籍的重要资源库,共记录了6820亿个网页 。
它是由万维网组成的数字档案,实如其名,允许用户“回到过去”,查阅一些25年前的网站和新闻 。
Internet Archive
“报纸也好,网络也好,发布的内容都是短暂的,很快就会被覆盖刷新。但网络有一点与报纸不同的是,报纸难以保存,但网络可以。”
虽然互联网档案馆提供了一个便利 的图书窗口,让每位前来的读者以类似于公共图书馆的方式感受在线信息和数字媒体 的魅力。
而这种行为,让出版商们坐不住了 ,纷纷表示你这不是让读者“白嫖”,那对我纸质书不就是侵权嘛!
图片来源: Gera Shen
四大出版商John Wiley&Sons和美国五大出版商中的三家,Hachette BookGroup、HarperCollins 和企鹅兰登书屋 (Penguin Random House),联合对互联网档案馆提起诉讼,声称该非营利组织“蓄意实施大规模的版权侵犯”。
因为他们的起诉,也使得档案馆的未来访问也面临风险。
图片来源: Amiga Da Leitora
这起诉讼源于互联网档案馆在疫情时发起的一项临时发布的创新举措 ,该举措被称为《国家紧急图书馆法 》。
当时各大图书馆出于安全原因关闭,人们对电子书的需求增加,因此互联网档案馆改变原受控数字借阅 (controlled digital lending)的规定,即一次只能借出一本书 。
图片来源: project-disco.org
考虑到突发公共卫生事件的影响,互联网档案馆决定放宽图书借阅限制,允许多人同时借阅同一本书的数字副本 。
互联网档案馆创始人Brewster Kahle表示:
Brewster Kahle
“我们所做的是与其他图书馆的相同的做法。我们通过购买书籍、保存书籍然后借阅书籍这一过程支持着出版业们和作者们。”
若出版商们的说法属实,即紧急借阅计划具有破坏性,互联网档案馆可能会被迫销毁大量书籍 。在他们的诉讼中,出版商声称确认了127个违反了版权法以数字方式共享的作品 。
图片来源: Gifer
7月13日,法庭收到由电子前沿基金会 (EFF)提交的一份45页的简报,支持互联网档案馆的动议。
EFF认为互联网档案馆的受控数字借阅(CDL)计划构成版权法所涵盖的合理使用,并在数字世界中保留了传统的图书馆借阅 。
EFF的数据表明,档案馆的数字借阅不会损害图书市场 ,互联网档案馆的数字借阅也并没有让出版商损失一分钱的收入。
图片来源: Gifer
这场电子书与实体书的战役将在9月或10月开庭“打响”。
是保护电子书便捷的存在?还是维护实体书收费的权利?我们现在暂时不得而知。
图片来源: Thread Basket
电子书的冲击,真的让实体书无路可走了吗? 其实也不然。
电子书刚盛行时被指责扼杀了实体书产业,但似乎比起电子书,人们还是更爱看普及印刷的实体纸质书。
图片来源: Realme Community
传统印刷书籍仍是最流行的阅读格式 。
66% 的年轻读者认为印刷书籍更好。首先,他们对眼睛友好,保护了视力健康 。其次,它们提供了更充实的阅读体验 ,能将读者与书籍联结。
来自皮尤研究中心(Pew Research Center)的数据显示,65% 的人表示他们在过去一年里读过纸质书,而32% 的人表示他们只阅读印刷书籍。
图片来源: pewresearch.org
实体书的情怀与书香能将读者包围,不是雾里看花,是身临其境。
每每读完一本书,那种周公梦蝶般度完的一生,是实体书独有的满足感 。你蜷缩与一本好书中,慢慢想,慢慢念,纸张在指尖脆弱却坚韧的触感,皆是电子书无法模仿的浪漫 。
图片来源: Tenor
电子书和实体书都有各自的特点 ,在使用上是因人而异 ,这最终取决于读者的个性与个人喜好,还取决于哪种书本模式更适用于当下的特定情况。
伦敦书展主任Jacks Thomas 此前吐露,对于未来,所有形式的书籍都将继续受到需求 。
Jacks Thomas
“人们总是需要汲取知识,总归需要聆听故事,我认为书,无论以何种形式,都应有着美好的未来。”
你更喜欢电子书还是实体书呢?
相关问答
三星i9300看电子书的模式怎么改啊?你直接到网上下载jar的格式看,就不要改模式了,去多多电子书网站直接下,那里都是全本的。如果你的电子书是其它格式想改成jar的格式,可以下载E书部落ebookPK...
BRM文件是什么文件?BRM(byreadmedia)百阅(byread)兼容的一款电子书格式文件,需安装百阅可查看,百阅是一款阅读和社区于一体的手机阅读互动社区的android软件,支持在手机上离线或...
ipad怎么打开mobi格式文件?-ZOL问答制作mobi电子书的软件有:Amazon官方推出的kindlegen(推荐)e书立方-ebookpk电子书制作器MobipocketCreator制作器mobi格式是亚马逊电子书格式,可以用亚马逊...
chm格式电子书打不开(如下图),为什么?怎么解决?-ZOL问答用这个转换器制作很简单啦:e书部落电子书制作器,你只要把txt文件拖动到ebookpk中去,然后按工具栏的“制作chm”按钮即可,只要两个步骤.e书部落电子书制作器(ebo...
弱弱的问下电脑如何打开mobi文件_其他问答_系统粉推荐使用Kindle进行查看。还可以使用MobipocketReader进行查看。制作mobi电子书的软件有:Amazon官方推出的kindlegen(推荐)e书立方-ebookpk电子书制...
大连市有哪些为酒店,餐厅,工厂或学校(贵族学校或国际学校...[回答]",要着眼于21世纪知识经济对劳动力的要求和终身学习社会对公...自己,认识本国、本民族,这种了解和认识,始自家庭,及于学校,延至社会,推而广之...
1.请问,华为荣耀3X畅玩版,如何使用电子书,我有很多小说的,现...你把下载的电子书都放在应该文件夹里,比如Ebook。你再下载应该电子书阅读器...苹果手机肿么打开apk是文件7467浏览6回答求推荐一款笔记本。工科研究生用...