掘力計劃第 20 期: Pake —— 利用 Rust 輕松構(gòu)建跨端輕量級應(yīng)用
Pake —— 利用 Rust 輕松構(gòu)建跨端輕量級應(yīng)用
在掘力計劃系列活動第20場前端工程師 Tw93(真名湯威)為我們分享了跨端開發(fā)與跨端技術(shù)實踐。
湯威是一名主職前端、愛折騰的前端開發(fā)者,除了前端之外他對后端和客戶端技術(shù)皆有涉獵,并且是 Pake / 妙言 / 潮流周刊 / XRender / Weex Ui 的作者。
本期湯威帶來的是跨端技術(shù)相關(guān)內(nèi)容,其實跨端技術(shù)基本上是編程經(jīng)久不衰的話題了,以服務(wù)端編程語言 Java 為例,當(dāng)初的口號就是一次開發(fā),到處運行。

在客戶端方面,F(xiàn)lutter 最近幾年的聲勢也非常大,有 Google 做背書,幾乎所有大廠包括掘金都有在基于 Flutter 進行業(yè)務(wù)開發(fā)。
在桌面端方面,Adobe、Intel、GitHub、還有一些開源組織都有一些自己的開源產(chǎn)品,比如:Adobe AIR、NW.js 、Electron,其中 Electron 更是到處可見,比如大家常用的 VsCode 就是基于 Electron 開發(fā)、還有隨著 Chatgpt 大火而帶來的各種 Chatgpt 桌面端工具幾乎都是 Electron 套殼。
然而,Electron 由于其內(nèi)部集成了 Chromium 內(nèi)核導(dǎo)致在此基礎(chǔ)上開發(fā)的作品都是內(nèi)存大戶,所以 Electron 耗內(nèi)存這點也經(jīng)常為人詬病。
最近幾年,隨著 Rust 的流行,Rust 開源社區(qū)推出了 Tauri ?這款跨平臺產(chǎn)品新星,它使用前端的皮膚 + Rust 的心臟,在保證頁面美觀易開發(fā)的同時還能保證高性能和小體積。
Pake 的特性
今天湯威給我們帶來的就是基于 Rust-Tauri 的開源作品:Pake,既然 Tauri 聽起來已經(jīng)非常不錯了,為什么湯威還要花費精力開發(fā) Pake 呢?

對于湯威來說,Pake 的產(chǎn)品目標(biāo)很明確,就是簡化 Tauri 的使用,對于一個新手小白或者對于一個沒有接觸過 Rust 開發(fā)者來說,想要快速的使用 Tauri 打包或者開發(fā)出一個產(chǎn)品雛形還是比較困難的,畢竟 Rust 有著人盡皆知的陡峭學(xué)習(xí)曲線。
所以湯威推出了 Pake,我們先來看看它的優(yōu)勢:

首先,Pake 完美繼承了 Tauri 的所有優(yōu)點,而且在此基礎(chǔ)上做了使用簡化,無論你是新手小白還是普通開發(fā)者都能快速上手使用:

由于大大簡化了使用成本,所以 Pake 很適合做快速出活的創(chuàng)業(yè)工具或者我們自己用的小工具:

Pake 相比 Tauri 做了哪些人性化改進?
當(dāng)然,Pake 作為一個湯威自己設(shè)計的一個開源作品,肯定還是在 Tauri 的基礎(chǔ)上加入一系列自己的改進的,接下來我們來看看 Pake 相比 Tauri 做了哪些人性化改進?
應(yīng)用窗口能力:封裝了一套窗口能力,可供使用者配置直接使用,例如窗口記憶、窗口移動、沉浸式標(biāo)題欄。
常用能力承接:鏈接跳轉(zhuǎn)、認(rèn)證授權(quán)、前進后退、文件導(dǎo)出、拖拽上傳等一系列好用的功能都已經(jīng)被 Pake 繼承,無需使用者額外開發(fā)。
自定義樣式:通過 JS 的方式進行邏輯注入可以對應(yīng)用進行樣式改寫、去廣告等 DIY。
工程建設(shè):支持 npm、Github Actions 輕松構(gòu)建 Pake 應(yīng)用。
更多詳細(xì)的功能,可以訪問 Pake 的 Github 詳細(xì)了解,在這里就不再贅敘了。
可以看到,湯威在 Tauri 的基礎(chǔ)上還是做了不少易用的功能,此項目目前在 Github 也已經(jīng)有 17K star 了,正在快速迭代中,相信不久之后就可以看到更多實用的功能被添加進去。
單純體驗的掘金也可以在 Pake 主頁下載已經(jīng)封裝好的桌面型應(yīng)用,目前已經(jīng)包含了微信閱讀、推特、Chatgpt、Youtube 等常用安裝包下載:

技術(shù)產(chǎn)品開源化思考
從一個興趣技術(shù)工具到技術(shù)產(chǎn)品開源,湯威也在這過程中積累了寶貴的思考經(jīng)驗,對他來說,技術(shù)產(chǎn)品化就是技術(shù)思路或方案轉(zhuǎn)變成可被銷售的產(chǎn)品,代碼只是其中的一部分。
從湯威的角度來看,一個產(chǎn)品生命周期大概要經(jīng)歷以下幾個階段:
發(fā)現(xiàn)痛點。
產(chǎn)品思路。
原型。
快速開發(fā)。
產(chǎn)品 MVP。
推廣運營。
而一個產(chǎn)品真正想要成功,湯威認(rèn)為需要解決以下幾個問題:
做得東?是否真的有用?是不是真的可以解決一個很痛的問題? 是不是可以給使用者帶來一些便利的價值? 大家使用過程中是否很愿意推薦給自己的朋友?
是否稱得上是一個產(chǎn)品?產(chǎn)品本身能否一句話就講清楚是做啥的,是一個好用的產(chǎn)品化能力,而非一個 Demo 效果,產(chǎn)品應(yīng)該是簡單易用美觀的,不做什么比做什么更重要。
怎么推廣與運營產(chǎn)品?酒香也怕巷子深,如何將自己的產(chǎn)品推廣給大家是個學(xué)問,持續(xù)和用戶產(chǎn)生聯(lián)系,不局限快速修復(fù)問題以及用戶共建,比如湯威就會將一個大版本拆解成幾個具有特點的小版本來發(fā)布,將每一次升級更新當(dāng)做一次新的產(chǎn)品宣傳的好渠道。
不止于產(chǎn)品,Pake 也是一個開源化項目,湯威作為一個技術(shù)人,做開源對他來說是一件很有趣的事情:

湯威的這番話,也讓我想到跑步日漫——強風(fēng)吹拂中的第一句臺詞:“你喜歡跑步嗎?”
我相信很多技術(shù)人都曾有過靈光一閃:誒,這個東西是不是可以簡化,我是不是可以做一個工具出來去解決這個問題?
然而大部分的想法都沒有落地,因為除了好的 idea 之外還需要強大的執(zhí)行力,湯威做開源也是兼職而非全職,都是通過每天下班的時間或者周末的自由時間來進行開源開發(fā),在這個過程中湯威也通過開源結(jié)實了來自全世界各地的技術(shù)人,他們一起發(fā)力將 Pake 變得更好。
只有真正的熱愛,才能從自己的工作中感覺到有趣,才能在無數(shù)的日夜為之默默付出,從這個角度來說,湯威是一位真正的技術(shù)人。
關(guān)于掘力計劃
掘力計劃由稀土掘金技術(shù)社區(qū)發(fā)起,致力于打造一個高品質(zhì)的技術(shù)分享和交流的系列品牌。聚集國內(nèi)外頂尖的技術(shù)專家、開發(fā)者和實踐者,通過線下沙龍、閉門會、公開課等多種形式分享最前沿的技術(shù)動態(tài)。