3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dart (Flutter)でextentionを使う方法

Last updated at Posted at 2020-03-10

こんにちは最近趣味で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をフォローしてくれると嬉しいです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?