Tauri開(kāi)發(fā)簡(jiǎn)介:(讀音:踹你)1.創(chuàng)建和運(yùn)行第一個(gè)app桌面app與web app之間的界限越來(lái)越模糊,以前可能說(shuō)基于web編寫(xiě)的app性能不好,但是現(xiàn)在我們來(lái)看,不管釘釘還是vscode,都是采用了Electron框架,以web模式開(kāi)發(fā)出來(lái)的。提到Electron相信許多程序員都不陌生,它是使用JavaScript,HTML和CSS構(gòu)建跨平臺(tái)的桌面應(yīng)用程序,可以打包為Mac、Windows、Linux系統(tǒng)下的應(yīng)用。你要說(shuō)釘釘?shù)氖褂媒o人感覺(jué)老是滿半拍,例如要點(diǎn)擊讀取信息的時(shí)候,會(huì)有很明顯的加載延遲(不但要讀取數(shù)據(jù),還要讀取和編譯html\js\css等資源),但是看vscode,就發(fā)現(xiàn)大部分情況下,已經(jīng)與傳統(tǒng)桌面的GUI開(kāi)發(fā)框架相差無(wú)幾了……Visual Studio Code(簡(jiǎn)稱(chēng)“VS Code” )是Microsoft在2015年4月30日Build開(kāi)發(fā)者大會(huì)上正式宣布一個(gè)運(yùn)行于 Mac OS X、Windows和 Linux 之上的,針對(duì)于編寫(xiě)現(xiàn)代Web和云應(yīng)用的跨平臺(tái)源代碼編輯器, 可在桌面上運(yùn)行,并且可用于Windows,macOS和Linux。 Electron雖然好用,但是卻有兩大致命的缺點(diǎn):性能不高,內(nèi)存消耗過(guò)大;包太大。特別是因發(fā)布的結(jié)果體積龐大這一點(diǎn)而飽受詬病,所以業(yè)界也一直在找一種輕便性能更好的框架來(lái)對(duì)他進(jìn)行補(bǔ)充或者替代,于是Tauri 應(yīng)運(yùn)而生,它與Electron相比,更加輕量、性能更好,提供了一種更現(xiàn)代、更安全且資源效率更高的方法來(lái)構(gòu)建跨平臺(tái)桌面應(yīng)用。所以正好趁著Tauri發(fā)布了2.0,今天給大家簡(jiǎn)單介紹這個(gè)(四不像)神器……首先我們先對(duì)Electron和Tauri二者進(jìn)行一下對(duì)比,就會(huì)發(fā)現(xiàn)一些指標(biāo)差距還是相當(dāng)?shù)拿黠@:可以看見(jiàn),除了編譯結(jié)果的大小、性能外,最大的區(qū)別就是兩個(gè),一個(gè)是Tauri支持字節(jié)碼傳遞(bytecode delivery),及將字節(jié)碼傳輸或交付給目標(biāo)環(huán)境的過(guò)程,這樣前后臺(tái)之間的數(shù)據(jù)交互就省去了很多麻煩,這點(diǎn)后面在說(shuō)。二就是Electron無(wú)法獲得 FLOSS(自由/開(kāi)源軟件) 許可的,這樣也給一些商用軟件或者想開(kāi)源的軟件帶來(lái)一些麻煩。當(dāng)然,進(jìn)行架構(gòu)選項(xiàng)是系統(tǒng)架構(gòu)師的基本功,說(shuō)了優(yōu)點(diǎn),自然也說(shuō)說(shuō)缺點(diǎn),Tauri也有自己的一些缺點(diǎn),如下:1.Tauri調(diào)用的是系統(tǒng)內(nèi)置的webview,WebView是WebKit框架中的核心視圖類(lèi),用于管理WebFrame和WebFrameView類(lèi)之間的交互。實(shí)際上你可以把這個(gè)東西看成是系統(tǒng)內(nèi)置的一個(gè)瀏覽器對(duì)象。反之,Electorn內(nèi)嵌了一個(gè)Chromium ,這樣可以最大化的避免不同系統(tǒng)帶來(lái)的問(wèn)題,如果遇上了內(nèi)核bug,也可以通過(guò)升級(jí)內(nèi)嵌的Chromium 來(lái)解決。首先WebView這個(gè)玩意兒比較新,雖然在新的windows、linux、macos、ios、android的新一代系統(tǒng)里面都自帶了,但是如果遇上了老系統(tǒng),例如windows 7 那么就涼涼了。 其次不同的系統(tǒng)的WebView在某些地方也有一些細(xì)微的差別,例如你開(kāi)發(fā)的系統(tǒng)在windows上沒(méi)問(wèn)題,放MACOS上,樣式就出錯(cuò),就是因?yàn)椴煌到y(tǒng)的WebView版本可能有些差別導(dǎo)致的。 第三,WebView自己也有可能遇上bug,如果真遇上了,就別想自己能換個(gè)版本啥的來(lái)進(jìn)行修正了。
2. Tauri后臺(tái)默認(rèn)使用Rust進(jìn)行開(kāi)發(fā),而不像Electorn后臺(tái)使用Node.js,可以使用JS/TS一門(mén)語(yǔ)言包打天下,會(huì)導(dǎo)致編寫(xiě)Tauri有更高的技術(shù)復(fù)雜度(招人難) 3.Tauri比較新,所以支持和社區(qū)都不如Electorn成熟,也沒(méi)有很成功的案例。 如果你覺(jué)得這三個(gè)缺點(diǎn)不會(huì)對(duì)你的項(xiàng)目產(chǎn)生啥影響,那就沒(méi)問(wèn)題了,可以直接上手了。下面我將用幾節(jié)的時(shí)間,來(lái)簡(jiǎn)介一下Tauri的開(kāi)發(fā)模式,因?yàn)槲r神我是一個(gè)前端盲,所以我這里全程使用Rust模式,前端僅用HTML白板頁(yè)面和最簡(jiǎn)單的js來(lái)進(jìn)行簡(jiǎn)單說(shuō)明,前端的專(zhuān)家同學(xué)們不要在意這些細(xì)節(jié)。安裝Rust(略)如果是windows直接去Rust官網(wǎng)上下載安裝包即可,如果是linux/macos,則敲一個(gè)命令就可以了,注意,好技術(shù)不如有個(gè)好網(wǎng)絡(luò),得有網(wǎng)絡(luò)的情況下搞定:rust的中文官網(wǎng)下載網(wǎng)址:https://www./zh-CN/learn/get-started 安裝Rust下面的Tauri工具鏈我這里已經(jīng)假定你已經(jīng)安裝好了Rust環(huán)境…… 通過(guò)cargo 管理工具來(lái)安裝Rust的Tauri工具鏈create-tauri-app ,在有網(wǎng)絡(luò)的情況下,輸入如下命令即可:cargo install create-tauri-app --locked
create-tauri-app 是一個(gè)Rust編寫(xiě)的用于創(chuàng)建Tauri工程結(jié)構(gòu)的工具,他可以幫你生成Tauri的工程代碼框架,是一個(gè)很好用的腳手架(當(dāng)然你也可以不用,手動(dòng)去建設(shè)這些東西)。創(chuàng)建Tauri工程進(jìn)入到你需要?jiǎng)?chuàng)建工程的目錄下面,輸入如下命令:cargo create-tauri-app
然后工具會(huì)問(wèn)你幾個(gè)問(wèn)題,你可以輸入需要的基本信息(當(dāng)然默認(rèn)也行):你的工程想叫啥名字? 你工程的唯一標(biāo)識(shí)符? 你選擇那種語(yǔ)言來(lái)進(jìn)行開(kāi)發(fā)? 你想選擇那種UI模板來(lái)進(jìn)行開(kāi)發(fā)?
我這里全部默認(rèn),然后得到了如下這樣一個(gè)工程目錄: 工程結(jié)構(gòu)src 目錄這個(gè)目錄下面是js/html/css所在的UI目錄,可以看成web工程的目錄結(jié)構(gòu)。src-tauri這個(gè)目錄是Rust的工程目錄,是cargo結(jié)構(gòu)的,如果在Rust下面做workspace的話,需要在根工程指向到這個(gè)目錄下面。tauri.conf.jsonTauri的配置文件,我們前面輸入的那些信息都在這里,當(dāng)然,你也可以修改這個(gè)文件:然后我們就可以直接運(yùn)行了: cd <工程目錄> cargo tauri dev
cargo會(huì)從cartes.io上拉所有需要的包,然后在本地編譯,稍微需要有一些時(shí)間,編譯完成之后會(huì)自動(dòng)打開(kāi)和啟動(dòng)app了:這個(gè)頁(yè)面實(shí)際上就是一個(gè)網(wǎng)頁(yè),我們點(diǎn)擊右鍵就可以看見(jiàn)html的源碼以及可以進(jìn)行前端調(diào)試:好了,今天到此為止,下一篇我們講一下Tauri的開(kāi)發(fā)模式。隨便點(diǎn)個(gè)贊表示一下唄
|