GUI Application 的定义

GUI(Graphical User Interface/图形用户界面)程序是指使用图形界面与用户进行交互的软件应用程序。图形界面通常包括窗口、图标、按钮、文本框、菜单等可视化元素, 使用户可以通过直观的操作(如点击、拖动, 输入内容)与程序进行交互, 而不需要通过如命令行进行操作。

例子: 好比 VS Code 就是。

使用 Fyne 开发 GUI(图形用户界面)程序有许多优势, 我们简单地和 Electron 比较一下。

1. 轻量

  • Fyne:Fyne 是一个轻量级的 GUI 框架, 应用程序的体积相对较小, 占用的系统资源也较少。
  • Electron:Electron 打包了整个 Chromium 和 Node.js, 导致应用程序的体积较大, 并且在运行时占用不少内存。

2. 性能

  • Fyne:Fyne 应用是用 Go 语言编写的, Go 语言本身以其高效和快速的性能而闻名。Fyne 应用在启动和运行时的性能通常优于 Electron 应用。
  • Electron:由于 Electron 依赖于 Chromium 和 Node.js, 其性能受限于这些底层技术的性能。Electron 应用启动较慢, 运行时占用较多的内存和 CPU 资源。

3. 资源消耗

  • Fyne:Fyne 应用程序消耗的系统资源较少, 特别是在内存和 CPU 使用方面。这使得 Fyne 应用在低配置的系统上也能顺畅运行。
  • Electron:Electron 应用通常消耗更多的内存和 CPU 资源, 特别是在打开多个窗口或运行复杂的应用时, 这在低配置系统上可能会导致性能问题。

4. 开发语言

  • Fyne:Fyne 使用 Go 语言开发。Go 语言以其简洁、高效和强大的并发支持而著称, 非常适合开发高性能的服务器和桌面应用。
  • Electron:Electron对于 Web 开发者而言则非常熟悉。

5. 其它优势

  • Fyne 提供了一套统一的、现代的用户界面, 能够在各个平台上看起来一致。其设计风格和用户体验都非常优雅。而得益于 Go 语言的编译特性,Fyne 应用在编译成二进制文件后,更难被逆向工程破解,从而在一定程度上增强了应用的安全性。

6. Fyne 也有一些问题

  • Fyne 是一个相对较新的框架,虽然社区也在飞速发展, 但是肯定不能和 Electron 比, Electron 早已有了一个成熟的生态系统。

适用场景

  • Fyne:适合开发轻量级、高性能、跨平台的桌面应用,尤其是在对资源消耗和性能要求较高的场景下。

  • Electron:适合快速开发跨平台的桌面应用,尤其是已经有 Web 应用或有大量现成 Web 组件的场景。

对于本教程

本频道一直对于 Go 很重视, 有很多朋友对于 Go 的 Fyne 学习很有兴趣, 同时, Fyne 也很适合 Go 语言新手上手, 开发出一个不错的 GUI 程序。

关于热重载(Hot Reload)

定义: Hot Reload 允许开发者在不重新启动整个应用程序的情况下立即看到代码更改的效果。

通过热重载, 开发者可以大大提高效率。而 Fyne 框架本身不直接内置热重载功能

快速理解例子:

如 Vue.js 中,运行 npm run dev, 此命令启动了一个开发服务器, 监视项目中的文件变化, 并在检测到变化时自动重新编译, 而无需重新启动服务器。

配置基本环境

项目代码: https://github.com/haveflychi/Fyne-study