こんにちは最近趣味でFlutterを書いている@glassmonkeyです。
Flutter歴3ヶ月ぐらいです。仕事でswiftちょっと書いています。
はじめに
Dart2.7になってExtentionが使えるようになりました。今回は導入するにあたって少しハマるポイントがあったのでほぼ個人用メモです。
Extentionとは
DartにおけるExtentionとは静的データ構造にメソッドを追加できます。
具体的にはこのように書けるようになります。
extension NumberParsing on String {
int parseInt() {
return int.parse(this);
}
// ···
}
"123".parseInt() // 123
スコープの問題やら多様すると管理がめんどうとか結構危険性は匂いますが、
外部処理をラッパーするなどには結構便利かなと思います。
導入してみよう
1. Flutterのバージョンをチェック
flutter --version
Flutter 1.12.13+hotfix.8 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 0b8abb4724 (4 weeks ago) • 2020-02-11 11:44:36 -0800
Engine • revision e1e6ced81d
Tools • Dart 2.7.0
下記のようにDartのバージョンが2.7以上になっていることを確認する。
未満の場合はflutterのバージョンアップをご検討ください。
Tools • Dart 2.7.0
2. pubspec.ymlを書き換える
sdkのバージョン指定を明示的に2.7以上に上げる。
environment:
sdk: ">=2.7.0 <3.0.0"
プロジェクトセットアップ時はこの指定だったが、これだと動かなかった。
あまりわかってないので、詳しい方教えてください。
environment:
sdk: ">=2.1.0 <3.0.0"
3 flutter cleanをする。
$ flutter clean
たぶんこれでビルドが通るはずです。
おわりに
今回extentionを導入するといった小さい対応のための記事でしたが、誰かの助けになれば嬉しく思います。
多分これに限った話じゃないですが、NNBDなどのdartの新機能導入するときにはSDKの指定が忘れそうなので戒めとして覚えておこうと個人的に思ってはいます。
たまにFlutter関係のことぼやいていたりするので、@glassmonkeyをフォローしてくれると嬉しいです。