首先任何技术栈都有坑,核心问题是我们有没有办法和能力把坑填平。
当所有坑都填过,沉淀下来的就是属于你自己的最佳实践。每个开发者不论采用什么技术栈,最好都能沉淀出一套属于自己的最佳实践。从而将更多的精力放在打造产品本身的价值上,而非技术。
早期在跨平台这个事情上,我也做过很多探索,从最初 cordova ,react native ,Xamarin ,MUI ( uniapp 的前身)都有过尝试,也在 uniapp 这个上面产生过动摇,是否切换到 react native+taro 。
直到现在坚定的使用 uniapp 做产品,并将我自己积累出来的最佳实践形成开源作品 `uapp`。uapp 通过集成 uni-app, electron, tauri ,让开发者仅需维护一套代码,就能横扫所有平台。
uapp 弥补了 uniapp 在 app 离线打包上的各种坑,让开发效率也直接拉满。可以不需要开启 HBuiderX ,在命令行下就能做各种编译。比如生成离线打包的自定义基座,仅需命令 `uapp run build:dev` 即可。
还有,比如查看提交审核的包名,微信开放平台用到的签名等,`uapp info` 一条命令,直接给出。
甚至 app 或 小程序里用到的《用户注册协议》《隐私协议》,都可以 `uapp privacy` 一条指令生成(任何框架里都可以用这个命令,配合 vitepress 生成协议文档)。
社区里还有人给出了需要自动化集成的 jenkins 配置文件 (看 github 的 issue 里),linux 上需要配合我做的 linux 环境包,需要的这里安装:
<
https://artisansoft.feishu.cn/docx/NZRHdetSzoi8VEx7KcYcuivpnqd>
我有款产品是视频剪辑工具,音视频处理是对 native 能力依赖度很大的,不是简单的有 UI 就行了,这个产品我已经通过自己的解决方案,抹平了 桌面端 Electron (windows/macosx/linux),app 端( android ,ios )上的差异,并且积累了丰富的跨平台经验,完全可以让 Web 开发者仅需维护一套代码,就能横扫所有平台。
本人不对各种跨平台方案的好坏做评价,适合你自己的就是最好的,各种跨平台方案的原理和优劣,uniapp 官网文章也说的挺详细了:
<
https://doc.dcloud.net.cn/uni-app-x/select.html>
如果你在使用 uniapp 开发,在跨平台开发有困惑需要协助的话,可以从 github 上添加我微信,也欢迎能给 uapp 一个 star 支持下 🙏 ,开源本身都是用爱发电,没有收益的。