掘力计划第 20 期:Tw93 Pake —— 利用 Rust 轻松构建跨端轻量级应用

avatar
❤首席客服君 @掘金

Pake —— 利用 Rust 轻松构建跨端轻量级应用

回放链接:live.juejin.cn/4354/jpower…

本场沙龙系列文章:

Topic1:掘力计划第 20 期:崔红保-跨端框架性能优化实践 

Topic2:掘力计划第 20 期:Flutter 动态方案 Fair 原理与实践

Topic4:掘力计划第 20 期:Flutter 混合开发的混乱之治


在掘力计划系列活动第20场前端工程师 Tw93为我们分享了跨端开发与跨端技术实践。

Tw93是一名爱折腾的前端开发者,除了前端之外他对后端和客户端技术皆有涉猎,并且是 Pake / 妙言 / 潮流周刊 / XRender / Weex Ui 的作者。

本期汤威带来的是跨端技术相关内容,其实跨端技术基本上是编程经久不衰的话题了,以服务端编程语言 Java 为例,当初的口号就是一次开发,到处运行。

在客户端方面,Flutter 最近几年的声势也非常大,有 Google 做背书,几乎所有大厂包括掘金都有在基于 Flutter 进行业务开发。

在桌面端方面,Adobe、Intel、GitHub、还有一些开源组织都有一些自己的开源产品,比如:Adobe AIR、NW.js 、Electron,其中 Electron 更是到处可见,比如大家常用的 VsCode 就是基于 Electron 开发、还有随着 Chatgpt 大火而带来的各种 Chatgpt 桌面端工具几乎都是 Electron 套壳。

然而,Electron 由于其内部集成了 Chromium 内核导致在此基础上开发的作品都是内存大户,所以 Electron 耗内存这点也经常为人诟病。

最近几年,随着 Rust 的流行,Rust 开源社区推出了 Tauri 这款跨平台产品新星,它使用前端的皮肤 + Rust 的心脏,在保证页面美观易开发的同时还能保证高性能和小体积。

  1. Pake 的特性

今天汤威给我们带来的就是基于 Rust-Tauri 的开源作品:Pake,既然 Tauri 听起来已经非常不错了,为什么汤威还要花费精力开发 Pake 呢?

对于汤威来说,Pake 的产品目标很明确,就是简化 Tauri 的使用,对于一个新手小白或者对于一个没有接触过 Rust 开发者来说,想要快速的使用 Tauri 打包或者开发出一个产品雏形还是比较困难的,毕竟 Rust 有着人尽皆知的陡峭学习曲线。

所以汤威推出了 Pake,我们先来看看它的优势:

首先,Pake 完美继承了 Tauri 的所有优点,而且在此基础上做了使用简化,无论你是新手小白还是普通开发者都能快速上手使用:

由于大大简化了使用成本,所以 Pake 很适合做快速出活的创业工具或者我们自己用的小工具:

  1. Pake 相比 Tauri 做了哪些人性化改进?

当然,Pake 作为一个汤威自己设计的一个开源作品,肯定还是在 Tauri 的基础上加入一系列自己的改进的,接下来我们来看看 Pake 相比 Tauri 做了哪些人性化改进?

  1. 应用窗口能力:封装了一套窗口能力,可供使用者配置直接使用,例如窗口记忆、窗口移动、沉浸式标题栏。
  2. 常用能力承接:链接跳转、认证授权、前进后退、文件导出、拖拽上传等一系列好用的功能都已经被 Pake 继承,无需使用者额外开发。
  3. 自定义样式:通过 JS 的方式进行逻辑注入可以对应用进行样式改写、去广告等 DIY。
  4. 工程建设:支持 npm、Github Actions 轻松构建 Pake 应用。

更多详细的功能,可以访问 Pake 的 Github 详细了解,在这里就不再赘叙了。

可以看到,汤威在 Tauri 的基础上还是做了不少易用的功能,此项目目前在 Github 也已经有 17K star 了,正在快速迭代中,相信不久之后就可以看到更多实用的功能被添加进去。

单纯体验的掘金也可以在 Pake 主页下载已经封装好的桌面型应用,目前已经包含了微信阅读、推特、Chatgpt、Youtube 等常用安装包下载:

  1. 技术产品开源化思考

从一个兴趣技术工具到技术产品开源,汤威也在这过程中积累了宝贵的思考经验,对他来说,技术产品化就是技术思路或方案转变成可被销售的产品,代码只是其中的一部分。

从汤威的角度来看,一个产品生命周期大概要经历以下几个阶段:

  1. 发现痛点。
  2. 产品思路。
  3. 原型。
  4. 快速开发。
  5. 产品 MVP。
  6. 推广运营。

而一个产品真正想要成功,汤威认为需要解决以下几个问题:

  1. 做得东⻄是否真的有用?是不是真的可以解决一个很痛的问题? 是不是可以给使用者带来一些便利的价值? 大家使用过程中是否很愿意推荐给自己的朋友?
  2. 是否称得上是一个产品?产品本身能否一句话就讲清楚是做啥的,是一个好用的产品化能力,而非一个 Demo 效果,产品应该是简单易用美观的,不做什么比做什么更重要。
  3. 怎么推广与运营产品?酒香也怕巷子深,如何将自己的产品推广给大家是个学问,持续和用户产生联系,不局限快速修复问题以及用户共建,比如汤威就会将一个大版本拆解成几个具有特点的小版本来发布,将每一次升级更新当做一次新的产品宣传的好渠道。

不止于产品,Pake 也是一个开源化项目,汤威作为一个技术人,做开源对他来说是一件很有趣的事情:

汤威的这番话,也让我想到跑步日漫——强风吹拂中的第一句台词:“你喜欢跑步吗?”

我相信很多技术人都曾有过灵光一闪:诶,这个东西是不是可以简化,我是不是可以做一个工具出来去解决这个问题?

然而大部分的想法都没有落地,因为除了好的 idea 之外还需要强大的执行力,汤威做开源也是兼职而非全职,都是通过每天下班的时间或者周末的自由时间来进行开源开发,在这个过程中汤威也通过开源结实了来自全世界各地的技术人,他们一起发力将 Pake 变得更好。

只有真正的热爱,才能从自己的工作中感觉到有趣,才能在无数的日夜为之默默付出,从这个角度来说,汤威是一位真正的技术人。

关于掘力计划

掘力计划由稀土掘金技术社区发起,致力于打造一个高品质的技术分享和交流的系列品牌。聚集国内外顶尖的技术专家、开发者和实践者,通过线下沙龙、闭门会、公开课等多种形式分享最前沿的技术动态。