Dart默认的linter配置有点弱, 有很多有问题代码也不报错或警告. 添加一个analyzer可以应用dart的最佳代码实践, 对一些不好的代码风格提出警告或者直接报错, 从而提高代码质量.

Cf. resocoder的介绍文章 (和视频)

Use an analyzer

Resocoder推荐lint, 里面提供了一些最佳的dart和flutter代码风格. 类似的选择还有pandentic和effective_dart.

使用方式就是, 先在pubsepc.yaml里添加依赖:

# pubspec.yaml
dependency_overrides:
  lint: ^1.3.0

然后在根目录新建一个analysis_options.yaml文件:

# analysis_options.yaml
include: package:lint/analysis_options.yaml

Exclude folders / disable rules

analyzer默认会扫描文件夹下所有的dart代码, 有时候一些自动生成的代码或者在build/文件夹下的代码并不需要被分析, 可以用exclude把它们排除在外.

另外有些默认的规则可能不适用于自己的代码, 比如我就比较喜欢加this, 认为这样更容易区分成员变量和普通变量 ...

background

flutter有很多channel: stable/beta/dev/master, 而目前有些功能只在某个channel上可用, 比如Linux support目前只在dev channel支持.

我日常用的是beta channel, 但是想写Linux程序时每次flutter channel dev的话 需要花费很多时间--因为要下载新channel的内容, switch回去的时候又要等半天(因为要从新下载).

今天看到Flutter Explained的视频: https://youtu.be/R6vKde1vIGQ 这正是解决这个问题的! 它可以cache不同版本的flutterSDK 然后每个repo可以设置不同的版本号, 而且VSCode也只需要简单配置.

enable fvm

一行命令即可开启fvm: $ pub global activate fvm

常用法:

  • fvm flutter: Proxies flutter commands 用于选择合适的flutter版本
    • 也就是说用fvm flutter来代替flutter命令 — 会自动pick当前repo所用的SDK
    • 比如 ...