説明すること
Flutterでの開発における、パッケージバージョンの明記方法の読み方・書き方
明記方法
Flutterでは使用する外部パッケージの情報をpubspec.yamlファイルにて管理する。 この時にバージョンを記載する場合があり、一般的な記法とキャレット記法の 2種類の明記方法でバージョン管理ができる。
例として1.2.3
と2.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
と同じ意味になる。
より詳しい説明としては、「一番左にあるバージョン番号は変えない範囲で許容する」。
ただしキャレット記法は若干わかりづらく、必要がない限りは一般的な記法を用いた方が
保守性も高いと思う。