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

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

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


在掘力计划系列活动第20场前端工程师 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 的心脏,在保证页面美观易开发的同时还能保证高性能和小体积。

Pake 的特性

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

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

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

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

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

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. 发现痛点。
  2. 产品思路。
  3. 原型。
  4. 快速开发。
  5. 产品 MVP。
  6. 推广运营。

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

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

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

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

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

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

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

关于掘力计划

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

相关推荐
许野平2 小时前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
君蓦3 小时前
Flutter 本地存储与数据库的使用和优化
flutter
September_ning7 小时前
React.lazy() 懒加载
前端·react.js·前端框架
晴天飛 雪7 小时前
React 守卫路由
前端框架·reactjs
web行路人7 小时前
React中类组件和函数组件的理解和区别
前端·javascript·react.js·前端框架
一ge科研小菜鸡10 小时前
React前端框架:现代网页开发的基石(附带构建简单任务管理应用案例代码)
前端框架
熊的猫10 小时前
JS 中的类型 & 类型判断 & 类型转换
前端·javascript·vue.js·chrome·react.js·前端框架·node.js
‍。。。12 小时前
使用Rust实现http/https正向代理
http·https·rust
Source.Liu12 小时前
【用Rust写CAD】第二章 第四节 函数
开发语言·rust