Golang語(yǔ)言的跨平臺(tái)UI工具包fyne使用詳解
前言
Fyne 是 fyne-io 組織在 Github 上開(kāi)源的 Go 語(yǔ)言 UI 工具包 ,目前版本為 v2.3.5,2.3版是Fyne API的最新版本,它添加了一個(gè)精致的主題設(shè)計(jì)以及云存儲(chǔ),同時(shí)改進(jìn)了國(guó)際語(yǔ)言和許多語(yǔ)言的文本處理較小的功能添加。我們現(xiàn)在正致力于下一個(gè)代號(hào)為Dalwhinnie。
Fyne是由Golang開(kāi)發(fā)的跨平臺(tái)應(yīng)用,除了對(duì)Windows、Mac、Linux這三大PC平臺(tái)提供了支持,還支持樹(shù)莓派、移動(dòng)APP的打包發(fā)布,可以說(shuō)在跨平臺(tái)方面做到了極致。另外Fyne項(xiàng)目沒(méi)有復(fù)雜目錄結(jié)構(gòu),使用一個(gè)獨(dú)立的go文件就能啟動(dòng)一個(gè)簡(jiǎn)單的應(yīng)用。
安裝
Fyne 使用 Go 語(yǔ)言開(kāi)發(fā),需要 Go 1.14 或以上,使用 go get 安裝:
go get fyne.io/fyne/v2
在導(dǎo)入新模塊后,請(qǐng)?jiān)诘谝淮尉幾g代碼之前運(yùn)行以下命令。避免在編寫(xiě)使用模塊的代碼之前運(yùn)行它,以防止意外刪除依賴項(xiàng):
go mod tidy
Demo
Fyne的設(shè)計(jì)非常易于使用。請(qǐng)遵循了上述條件步驟安裝,現(xiàn)在需要打開(kāi)IDE或者文本編輯器,然后打開(kāi)一個(gè)新文件,既可以編寫(xiě)您的第一個(gè)應(yīng)用程序了。如下:
package main import ( "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget" ) func main() { a := app.New() w := a.NewWindow("Hello") hello := widget.NewLabel("Hello Fyne!") w.SetContent(container.NewVBox( hello, widget.NewButton("Hi!", func() { hello.SetText("Welcome :)") }), )) w.ShowAndRun() }
代碼十分簡(jiǎn)潔明了。首先,通過(guò) app.New() 創(chuàng)建一個(gè)應(yīng)用實(shí)例,并新建一個(gè)標(biāo)題為 Hello 的窗口。然后,使用 widget.NewLabel 來(lái)創(chuàng)建一個(gè)便簽,并在窗口設(shè)置 垂直方向排列的vbox 布局,首先放置標(biāo)簽,然后再放置一個(gè)新建的按鈕。按鈕注冊(cè)了一個(gè)點(diǎn)擊事件的回調(diào)函數(shù),在點(diǎn)擊按鈕時(shí)會(huì)把標(biāo)簽的文本更改為 Welcome。最后,運(yùn)行并顯示窗口。
直接運(yùn)行代碼
go run main.go
就會(huì)出現(xiàn)一個(gè)新的窗口,并顯示帶有一個(gè)標(biāo)簽和一個(gè)按鈕的界面:
移動(dòng)端方案
打包
想要在移動(dòng)設(shè)備上運(yùn)行,必須對(duì)應(yīng)用程序進(jìn)行打包。為此,我們可以使用fyne實(shí)用程序“package”子命令,添加適當(dāng)?shù)膮?shù),參考的基本命令如下。打包后,您可以使用平臺(tái)開(kāi)發(fā)工具或fyne“install”子命令進(jìn)行安裝。
fyne package -os android -appID my.domain.appname fyne install -os android
構(gòu)建的Android應(yīng)用程序可以在真實(shí)設(shè)備或Android模擬器中運(yùn)行。iOS的構(gòu)建略有不同。如果"-os"參數(shù)是"ios",則它僅針對(duì)真正的ios設(shè)備構(gòu)建。將“-os”指定為“iosimulator”允許應(yīng)用程序在iOS模擬器中運(yùn)行。
fyne package -os ios -appID my.domain.appname fyne package -os iossimulator -appID my.domain.appname
發(fā)布
使用fyne release命令,可以打包應(yīng)用程序進(jìn)行發(fā)布到應(yīng)用商店和市場(chǎng)。確保安裝了標(biāo)準(zhǔn)生成工具并遵循了平臺(tái)文檔設(shè)置帳戶和簽名。然后可以執(zhí)行如下當(dāng)-os為ios參數(shù)允許從macOS計(jì)算機(jī)構(gòu)建iOS應(yīng)用程序。
$ fyne release -os ios -certificate "Apple Distribution" -profile "My App Distribution" -appID "com.example.myapp"
上述命令將創(chuàng)建一個(gè)“.ipa”文件,然后可以將該文件上載到iOS應(yīng)用商店。
總結(jié)
Fyne 作為一個(gè) UI 工具包,依靠 Go 語(yǔ)言的優(yōu)秀性能,尤其是 goroutine 協(xié)程的異步特性,實(shí)現(xiàn)了高性能、易開(kāi)發(fā)的圖形界面應(yīng)用。Fyne 的使用和設(shè)計(jì)十分現(xiàn)代化,通過(guò)簡(jiǎn)單的命令行就能實(shí)現(xiàn)跨平臺(tái)的開(kāi)發(fā)和構(gòu)建,安裝方便,平臺(tái)兼容性好。
Fyne 并未基于現(xiàn)有的 UI 庫(kù)進(jìn)行開(kāi)發(fā),而是直接使用不同平臺(tái)的圖形驅(qū)動(dòng)實(shí)現(xiàn),完成了對(duì)跨平臺(tái) UI 的抽象,底層代碼值得研究。
以上就是Golang語(yǔ)言的跨平臺(tái)UI工具包fyne使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Go跨平臺(tái)UI工具包fyne的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Go語(yǔ)言通過(guò)chan進(jìn)行數(shù)據(jù)傳遞的方法詳解
這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言如何通過(guò)chan進(jìn)行數(shù)據(jù)傳遞的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-06-06在Go語(yǔ)言項(xiàng)目中使用Zap日志庫(kù)的操作過(guò)程
本文將先介紹Go語(yǔ)言原生的日志庫(kù)的使用,然后詳細(xì)介紹非常流行的Uber開(kāi)源的zap日志庫(kù),同時(shí)會(huì)介紹如何搭配·Lumberjack·實(shí)現(xiàn)日志的切割和歸檔,對(duì)Go使用Zap日志庫(kù)相關(guān)知識(shí)感興趣的朋友一起看看吧2024-03-03聊聊Golang的語(yǔ)言結(jié)構(gòu)和變量問(wèn)題
這篇文章主要介紹了Golang的語(yǔ)言結(jié)構(gòu)和變量問(wèn)題,在golang中定義變量的一般形式是使用 var 關(guān)鍵字,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11Go語(yǔ)言結(jié)構(gòu)體Go range的學(xué)習(xí)教程
這篇文章主要為大家介紹了Go語(yǔ)言結(jié)構(gòu)體Go range的學(xué)習(xí)教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07