ずっと家でアプリ作っていたい

業務効率化小ネタなど

【Flutter】pubspec.yamlにおけるバージョンの明記方法

flutter

説明すること

Flutterでの開発における、パッケージバージョンの明記方法の読み方・書き方

明記方法

Flutterでは使用する外部パッケージの情報をpubspec.yamlファイルにて管理する。 この時にバージョンを記載する場合があり、一般的な記法とキャレット記法の 2種類の明記方法でバージョン管理ができる。

例として1.2.32.0.0 のバージョンを基準に記載する。 また[package名]にはパッケージが入る。 自身が用いるパッケージとそのバージョンに適宜読み替えること。

一般的な記法

[package名]: any

特にバージョン指定をしない場合に用いる。空白と同じ意味になる。 非推奨の記法とされている。

[package名]: 1.2.3

バージョンを厳密に指定する場合に使用する。 記載されたバージョンのみが使用される。 この場合は1.2.3が必ず使用される。

必ず必要な場合以外は、基本的に避けるべき。 他のパッケージの依存性を解消できなくなる場合があるため。

[package名]>=1.2.3

1.2.3以上のバージョンを使用する。使用することが多い

[package名]>1.2.3

1.2.3より大きいバージョンを使用する。1.2.3は使用しない。

[package名]<=1.2.3

1.2.3以下のバージョンを使用する。あまり使う場面はない。

[package名]<1.2.3

1.2.3より小さいバージョンを使用する。基本的にはこれを使用する

例えば1.2.3で大きな修正が加えられた場合、他のパッケージとの依存性に問題がある可能性があるため。

[package名]>= 1.2.3 < 2.0.0

1.2.3以上、2.0.0未満のバージョンが使用される。 こちらは後述のキャレット記法で簡潔に書ける。

キャレット記法

キャレット記法とはAsciiで表示できない文字を、表示できる文字で代替して表記する記法。 キャレットとは「 ^ 」のこと。

[package名]^ 1.2.3

これは先述した[package名]>= 1.2.3 < 2.0.0と同じ意味になる。 より詳しい説明としては、「一番左にあるバージョン番号は変えない範囲で許容する」。 ただしキャレット記法は若干わかりづらく、必要がない限りは一般的な記法を用いた方が 保守性も高いと思う。