Petrel(雨燕) 新一代 Flutter Web 热更新框架.

Shorebird 联合 Appwrite 实现更新逻辑?

距离上一篇关于 Flutter 热更新的文章已经快要两年,项目从 1.0 到目前 2.0 开发完毕准备上线,这期间大概两年时间我竟然才想起来要写技术文章。不知道是自己已经对技术失去了探索兴趣还是真的年纪大了,就觉得没有必要了。

本来这一篇文章也是不想写的,觉得平时本来空闲都少,写这样的文章还伤脑筋,总有万般的想法阻止自己。况且目前的热更新在自己项目只是在几个页面实现成功,还存在性能问题,还可能存在后续的兼容性问题。

但是目前市面上关于成熟的热更新的技术少之又少,能用的也少之又少。对于我关于很多年的shorebird 我觉得收费贵,大家不知道觉得怎么样?还有 58 出身的Fair,我曾经认真的集成过两次,但是总是感觉集成起来十分费劲,弄不成功,并且对于我们目前的项目架构不兼容。

关于shorebird 因为我们项目打出来一个安装包之前就是 2G,通过shorebird 打一次包都需要很久,所以对于我们的项目不仅发布热更费劲还特别贵,所以后面我就放弃研究了。

就连现在还有很多网友咨询我怎么自定义下载的问题,已经两年过去了了,之前的方案已经不适应了,后续大家也不用咨询我了,我对于新版本的 shorebird 也不知道怎样的情况。

大家应该也看过我之前写的文章基于 AST 研究实现热更方案,方案很简单将发布的包通过AST 支持json 调用的动态库。之后将需要发布的新功能将代码编译成可以调用的json。

对于 AST 业内也有公司研究,但是也是封闭了不知道什么情况。目前网友研究的进展也是不可用,自己一个人,研究能力有限,也停止了研究。

Petrel(雨燕)的诞生

停止了对于Flutter Web 的热更的同时,一边开发者我们 app 1.0 系列版本的开发。后来看到有人提出利用Flutter Web 实现 Flutter 的热更新,但是也是说的不是很多。

虽然说者无心,但是看者有心。我在平时不忙的时候就开始研究,怎么设计一套 Flutter Web 热更新接入不是很难?发布又快?又免费?对于整个项目整改又小的方案?

我就基于页面级别热更新的新一代Petrel 热更新系统诞生了,最开始只是实现一套 Flutter Web 和Flutter app 通信的框架。后来开发 2.0 大版本的时候,因为需要好几个月才能发布 2.0 版本,喜欢折腾的我就开始在自己的项目开始研究了。

到最近前几天,我才认为这一套热更新框架已经接近使用了,就准备发一下文章给大家知会一声。让希望进行热更新的可以有一个选择,让正在正在研究Flutter Web 热更新的可以有一个参考。

热更新的流程

这一篇文章我准备先不介绍整套系统怎么搭建和实现的,我准备在后续的文章再去讲解。这个后续我预估不会很晚,应该很快就会写了。

下面是正常的流程打开话题界面选中话题,之后再次打开展示之前选中的视频。

目前虽然开通了启动下载,但是目前逻辑有一定的计算规则,所以需要目前通过调试强制下载。目前做了基于手机号的推送,所以目前只生效我手机号的账号手机。 我们打开测试功能强制忽略跳过功能,强制下载最新版本。

现在下载了最新了的热更了,我们再次打开选择话题界面看看效果。

此时我们看到页面打开已经有中心有一个菊花,这个就是我们加载WebView 我特意添加的,毕竟 WebView 比较慢。

现在我们更改代码推送一个新版本,比如修改搜索话题更改为搜热门话题。

我们执行metax publish flutter_web_cache

等待发布成功

我们再次的通过刚才测试方法下载最新热更,打开最新热更界面。

我们看到修改的搜索热门话题已经修复好了,这就是目前研究成功,下一篇我们讲解一下我们项目怎么做才能支持热更新。

相关推荐
LinXunFeng4 小时前
Flutter - 详情页初始锚点与优化
前端·flutter·开源
苦逼的搬砖工4 小时前
Flutter 文本输入:让用户与你的应用对话
flutter
苦逼的搬砖工4 小时前
Flutter Text 组件深度解析:从入门到精通
flutter
苦逼的搬砖工4 小时前
# 🎨 Flutter UI 组件深度指南
flutter
会煮咖啡的猫11 小时前
Cursor 0.46 Flutter 开发者首选
flutter
会煮咖啡的猫11 小时前
Flutter GetX 4.7.2 发布:被严重低估的强大框架
flutter
stringwu2 天前
Flutter 开发者必备:WebSocket 实用指南
flutter
小林的技术分享2 天前
关于排查 Flutter 3.27.0 版本Android端无法禁用Impeller引擎的过程记录
前端·flutter
coder_pig2 天前
🤡 公司Android老项目升级踩坑小记
android·flutter·gradle