掘力計(jì)劃第 20 期: Pake —— 利用 Rust 輕松構(gòu)建跨端輕量級應(yīng)用
湯威是一名主職前端、愛折騰的前端開發(fā)者,除了前端之外他對后端和客戶端技術(shù)皆有涉獵,并且是 Pake / 妙言 / 潮流周刊 / XRender / Weex Ui 的作者。
本期湯威帶來的是跨端技術(shù)相關(guān)內(nèi)容,其實(shí)跨端技術(shù)基本上是編程經(jīng)久不衰的話題了,以服務(wù)端編程語言 Java 為例,當(dāng)初的口號就是一次開發(fā),到處運(yùn)行。
在客戶端方面,F(xiàn)lutter 最近幾年的聲勢也非常大,有 Google 做背書,幾乎所有大廠包括掘金都有在基于 Flutter 進(jìn)行業(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)存這點(diǎn)也經(jīng)常為人詬病。
最近幾年,隨著 Rust 的流行,Rust 開源社區(qū)推出了 Tauri 這款跨平臺產(chǎn)品新星,它使用前端的皮膚 + Rust 的心臟,在保證頁面美觀易開發(fā)的同時(shí)還能保證高性能和小體積。
1. Pake 的特性
今天湯威給我們帶來的就是基于 Rust-Tauri 的開源作品:Pake,既然 Tauri 聽起來已經(jīng)非常不錯(cuò)了,為什么湯威還要花費(fèi)精力開發(fā) Pake 呢?
對于湯威來說,Pake 的產(chǎn)品目標(biāo)很明確,就是簡化 Tauri 的使用,對于一個(gè)新手小白或者對于一個(gè)沒有接觸過 Rust 開發(fā)者來說,想要快速的使用 Tauri 打包或者開發(fā)出一個(gè)產(chǎn)品雛形還是比較困難的,畢竟 Rust 有著人盡皆知的陡峭學(xué)習(xí)曲線。
所以湯威推出了 Pake,我們先來看看它的優(yōu)勢:
首先,Pake 完美繼承了 Tauri 的所有優(yōu)點(diǎn),而且在此基礎(chǔ)上做了使用簡化,無論你是新手小白還是普通開發(fā)者都能快速上手使用:
由于大大簡化了使用成本,所以 Pake 很適合做快速出活的創(chuàng)業(yè)工具或者我們自己用的小工具:
2. Pake 相比 Tauri 做了哪些人性化改進(jìn)?
當(dāng)然,Pake 作為一個(gè)湯威自己設(shè)計(jì)的一個(gè)開源作品,肯定還是在 Tauri 的基礎(chǔ)上加入一系列自己的改進(jìn)的,接下來我們來看看 Pake 相比 Tauri 做了哪些人性化改進(jìn)?
- 應(yīng)用窗口能力:封裝了一套窗口能力,可供使用者配置直接使用,例如窗口記憶、窗口移動、沉浸式標(biāo)題欄。
- 常用能力承接:鏈接跳轉(zhuǎn)、認(rèn)證授權(quán)、前進(jìn)后退、文件導(dǎo)出、拖拽上傳等一系列好用的功能都已經(jīng)被 Pake 繼承,無需使用者額外開發(fā)。
- 自定義樣式:通過 JS 的方式進(jìn)行邏輯注入可以對應(yīng)用進(jìn)行樣式改寫、去廣告等 DIY。
- 工程建設(shè):支持 npm、Github Actions 輕松構(gòu)建 Pake 應(yīng)用。
更多詳細(xì)的功能,可以訪問 Pake 的 Github 詳細(xì)了解,在這里就不再贅敘了。
可以看到,湯威在 Tauri 的基礎(chǔ)上還是做了不少易用的功能,此項(xiàng)目目前在 Github 也已經(jīng)有 17K star 了,正在快速迭代中,相信不久之后就可以看到更多實(shí)用的功能被添加進(jìn)去。
單純體驗(yàn)的掘金也可以在Pake 主頁下載已經(jīng)封裝好的桌面型應(yīng)用,目前已經(jīng)包含了微信閱讀、推特、Chatgpt、Youtube 等常用安裝包下載:
3. 技術(shù)產(chǎn)品開源化思考
從一個(gè)興趣技術(shù)工具到技術(shù)產(chǎn)品開源,湯威也在這過程中積累了寶貴的思考經(jīng)驗(yàn),對他來說,技術(shù)產(chǎn)品化就是技術(shù)思路或方案轉(zhuǎn)變成可被銷售的產(chǎn)品,代碼只是其中的一部分。
從湯威的角度來看,一個(gè)產(chǎn)品生命周期大概要經(jīng)歷以下幾個(gè)階段:
- 發(fā)現(xiàn)痛點(diǎn)。
- 產(chǎn)品思路。
- 原型。
- 快速開發(fā)。
- 產(chǎn)品 MVP。
- 推廣運(yùn)營。
而一個(gè)產(chǎn)品真正想要成功,湯威認(rèn)為需要解決以下幾個(gè)問題:
- 做得東?是否真的有用?是不是真的可以解決一個(gè)很痛的問題?是不是可以給使用者帶來一些便利的價(jià)值?大家使用過程中是否很愿意推薦給自己的朋友?
- 是否稱得上是一個(gè)產(chǎn)品?產(chǎn)品本身能否一句話就講清楚是做啥的,是一個(gè)好用的產(chǎn)品化能力,而非一個(gè) Demo 效果,產(chǎn)品應(yīng)該是簡單易用美觀的,不做什么比做什么更重要。
- 怎么推廣與運(yùn)營產(chǎn)品?酒香也怕巷子深,如何將自己的產(chǎn)品推廣給大家是個(gè)學(xué)問,持續(xù)和用戶產(chǎn)生聯(lián)系,不局限快速修復(fù)問題以及用戶共建,比如湯威就會將一個(gè)大版本拆解成幾個(gè)具有特點(diǎn)的小版本來發(fā)布,將每一次升級更新當(dāng)做一次新的產(chǎn)品宣傳的好渠道。
不止于產(chǎn)品,Pake 也是一個(gè)開源化項(xiàng)目,湯威作為一個(gè)技術(shù)人,做開源對他來說是一件很有趣的事情:
湯威的這番話,也讓我想到跑步日漫——強(qiáng)風(fēng)吹拂中的第一句臺詞:“你喜歡跑步嗎?”
我相信很多技術(shù)人都曾有過靈光一閃:誒,這個(gè)東西是不是可以簡化,我是不是可以做一個(gè)工具出來去解決這個(gè)問題?
然而大部分的想法都沒有落地,因?yàn)槌撕玫?idea 之外還需要強(qiáng)大的執(zhí)行力,湯威做開源也是兼職而非全職,都是通過每天下班的時(shí)間或者周末的自由時(shí)間來進(jìn)行開源開發(fā),在這個(gè)過程中湯威也通過開源結(jié)實(shí)了來自全世界各地的技術(shù)人,他們一起發(fā)力將 Pake 變得更好。
只有真正的熱愛,才能從自己的工作中感覺到有趣,才能在無數(shù)的日夜為之默默付出,從這個(gè)角度來說,湯威是一位真正的技術(shù)人。