北海(Kraken)v0.11.0 发布——支持 Flutter 2.8,新增 textarea 标签

8,573 阅读5分钟

前言

历经 3 个月的开发后,北海 Kraken 发布了全新的 v0.11.0 版本。如果你对 Kraken 还不是那么了解,那么你可以跳到文末阅读我们往期的文章来了解 Kraken 是什么以及它解决了哪些场景下的问题。

这个版本我们主要进行了几次大的重构,面向未来地给出更合理的架构设计。同时,还增加了 Benchmark 以及自动化的 CI 工具以衡量首屏性能以及支持了 Textarea。此外,Flutter 的版本也正式升级到了 2.8 。详细的更新日志可以参考CHANGELOG

下面为大家介绍该版本的一些重要更新。

更新内容

支持 textarea 标签

在本次更新中,Kraken 支持了 textarea 标签,用户可以通过该标签支持多行纯文本的编辑。如果业务场景需要编辑(提交)大量的纯文本信息时,这个标签可以满足需求。

textarea

增加自动化 Benchmark 统计及衡量首屏性能

首屏性能是衡量引擎性能的一个重要重要指标,首屏性能意味着白屏时间的长短,对用户体验有着非常大的影响。Kraken 通过将 QuickJS 作为默认的 JS 引擎,用户可以直接下发 ByteCode 格式的文件来优化应用程序的 JS 执行时间。

Kraken 基于 Benchmark 衡量首屏数据,该 Benchmark 是一个实际业务场景比较常见的商品列表页。统计从加载完成并开始执行入口文件到 window 上的 load 事件触发的时间,以此衡量实际用户从打开页面到可见的时间。

Kraken Performance Benchmark 会在当分支 merge 到 main 分支时自动采集以及上传 Kraken 与 Webview 之间的上述性能数据,多次采集后去除抖动并计算平均值。

具体的最新性能数据可以点击 Kraken 官网查看。

TSC 会议直播

我们期望通过 TSC 的机制来让社区的贡献者更多地参与共建,同时规划以及对设计的讨论能够更加透明,让每个关注 Kraken 的同学了解 Kraken 已经有什么能力,正在做什么功能以及未来要怎么样发展。基于此,我们在每两周例行的 TSC 会议上开始尝试直播,让大家能够了解到 Kraken 的一些讨论以及规划。

更详细的协作机制以及入群看直播的方式请移步 Github TSC 来了解更多。

重构事件机制

为了形成面向未来的架构设计,以及更好地解决目前已有手势交互及事件体系的复杂度,我们对事件机制进行了一次大的重构。重构后,开发者无论使用 Dart 还是 JavaScript 去监听事件做对应处理,体验上是完全一致的。未来,我们也会基于此在下个版本支持 HTMLView 以支持纯 Dart 的 Web 渲染,敬请期待。

规范发布规则

TSC 会议上我们明确了版本的迭代以及发布计划,后续我们将会采用更加规范化的发布规则,具体规则如下:

  • 增加例行 Patch 位版本发布时机:每周的周四, 采取搭火车的形式,将 main 分支上的内容发布 x.y.(z+1)。
  • 如遇紧急 Bugfix, maintainer 可以随时决定发布 x.y.z+(n+1) 的版本,如 0.10.2+1。此决策需至少 2 名 tsc 成员同意。
  • 增加每天的 nightly version (prerelease) 机器人自动化发布 例如 0.10.3-nightly.${commit-hash}。

Flutter 版本支持

0.11.0 版本,Kraken 继续升级所依赖的 Flutter 版本,目前我们已经将依赖的版本升至 2.8.1 。

此外,0.11.0 版本会继续支持 Flutter 2.5.3 的版本,直到 0.12.0 版本发布为止。

注:Kraken 0.11.0 只会发布支持 Flutter 2.8.1 版本的 release 包,支持 Flutter 2.5.3 版本的 release 包需要开发者在 Kraken 的 Github 上 checkout 对应分支 的源码下来自行编译。

Roadmap

此外,我们也明确了今年计划做的一些新的功能,把具体的一些目标确定了下来,详细细节可以查看Kraken Roadmap。我们的迭代计划可以直接从 Iteration-Plans 中查看。

其他更新

除了以上介绍的能力之外,我们也修复了大量的 bug,详细请见 CHANGELOG

关于北海 KRAKEN 更多的内容

社区协作机制

我们期望通过一种良好的社区协作机制,来与社区的众多开发者一起共建 Kraken 底层能力及生态。 Kraken 团队通过协作者的方式来参与 Kraken 功能迭代以及 issue 讨论等工作。同时,通过由一部分协作者组成的技术委员会(TSC) 来确定技术方向、发布以及定制标准等工作。

简单地说,只要向 Openkraken Group 提交一定质量和数量的代码即可成为协作者;对项目提交建设性的贡献后,TSC 成员有权提名协作者参与到 TSC 中。

Kraken 团队期望通过一种友好、共同参与的协作机制,让社区的开发者能够更好地参与到对项目的演进中去,让每个人的声音都能被听到,共同促进 Kraken 以及 Web 标准 的发展。

更详细的协作机制可以移步 Github TSC

往期文章推荐