Skip to content

Null Safety Guide

Sandy edited this page Jan 5, 2022 · 9 revisions

Hello ,各位 Flutter 开发者,Bruno 自 12 月 10 日上线后,迁移空安全(null-safe)是大家非常关注的一个问题。由于 Bruno 组件多,体量大,空安全的适配适配可能需要很多时间。所以我们发起空安全迁移项目,我们任然会全力进行空安全的适配,但是也期望更多的人能加入到我们,成为项目的一员。

在你决定参与迁移空安全前,请先阅读 空安全 相关文档,并且掌握 常见问题 的解法,然后参照 迁移步骤 开始迁移。

由于是多人协作,我们采用非健全模式逐步迁移,还请确定没有将其它未迁移的部分打开。

重要事情说三遍,请注意 请注意 请注意~~~~

  • 优先迁移lib ,待 lib 全部迁移完成后再迁移 example

  • 迁移分支:null-safe (请确定在对应分支进行迁移)

  • Flutter SDK:2.2.2

bruno 依赖库均已迁移最新版本(null-safe),因此我们只需进行以下步骤

Step1:

 dart migrate

Step2:

如果你的 package 可以进行迁移,工具会输出类似以下的内容:

View the migration suggestions by visiting:

  http://127.0.0.1:60278/Users/you/project/mypkg.console-simple?authToken=Xfz0jvpyeMI%3D

Step3:

使用 Chrome 浏览器访问 URL,你可以看到一个交互式的界面,引导你进行迁移

Step4:

请将你要迁移的组件进行迁移,其余文件取消勾选

eg: 如果你想对BrnVerticalIconButton组件进行迁移 ,那么你只勾选其所在dart文件(brn_vertical_icon_button.dart)和其组合的其余内部组件 brn_icon_button.dart,其余的勾选去掉

进行迁移结果改进,你可以直接在编辑器中改进(工具默认的迁移改动是向后兼容的),确定改动后点击 APPLY MIGRATE,即可生效。

当然你也可以点击 APPLY MIGRATE 后,在工程中进行迁移结果改进

Step5:

测试或运行混合版本的程序

  • dartflutter 命令里,加入 --no-sound-null-safety 标记禁用。例如:

     dart --no-sound-null-safety run
     flutter run --no-sound-null-safety
    
  • 或者,设定程序入口的语言版本 —— 包含 main() 函数的文件 —— 设定为 2.9。在 Flutter 应用中,一般是 lib/main.dart。在命令行应用中,一般是 bin/<package 名称>.dart。同时你也可以设定 test 下的文件,因为它们也包含程序入口。例如

// @dart=2.9
import 'src/my_app.dart';

main() {
  //...
}

代码迁移完成后,也请务必确保编辑运行正常后提交 Pull request
为了更好的同步迁移进度避免提交重复,我们创建了 Project
为了保证review质量,我们建议按类别迁移,请确保一次提交仅包含一个类别 如果你想要加入我们,可以在 这里 申请想要迁移的类别,我们会第一时间相应,感谢关注和参与

Clone this wiki locally