Flutter Lint rules
津路です。こんにちは。
今回は、Flutterのコーディングにおいて、さまざま規約を自動的に守る手助けとなる、Lintを取り上げようと思います。
ルール一覧は、Lintルール一覧です。
3種類に分けられています。
- errors: 違反ルール
- style: Dart Style Guideに関するルール
- pub: pubspec.yamlに記述するpackageに関するルール
全体で100以上が登録されているので、必要な項目だけを指定するのが普通です。
analysis_options.yamlに記載しない場合のデフォルト一覧は、Lintルールデフォルトです。
以下、Flutter初心者学習では外すことを勧められているルールを取り上げます。
- prefer_const_constructors
- prefer_final_fields
- use_key_in_widget_constructors
- prefer_const_literals_to_create_immutables
- prefer_const_constructors_in_immutables
- avoid_print
コンストラクタを呼び出す際、constを使えば正規化されたインスタンスを生成できる場合は、使ってください。
値不変であるprivate変数にはfinalをつけましょう。
Widgetコンストラクタではkeyを使いましよう。
不変なクラスをインスタンス化する際、パラメータとして使用するリスト、マップ、セットには、constをつけましょう。
不変なクラスの場合、コンストラクタにはconstをつけましょう
リリース版では、コードにprintを使用しないでください。代わりに、debugPrintを使うか、kDebugModeフラグを使用してください。
デフォルト一覧は、package:flutter_lints/flutter.yamlに記載されています。
上記の他に、以下が定義されています。
- avoid_unnecessary_containers
- no_logic_in_create_state
パラメータがないのに、widgetをcontainerで囲うのは避けましょう。
例:
1 2 3 4 5 6 7 8 9 10 11 12 | Widget buildRow() { return Container( child: Row( children: <Widget>[ const MyLogo(), const Expanded( child: Text('...'), ), ], ) ); } |
CreateState内にロジックを書かないでください。
他にもありますが、本日はここまでとします。