🦔

既存プロジェクトを Flutter2.0 向けにアップデート対応してみた

2021/03/11に公開

さて、Flutter2.0 がリリースされましたね。

Flutter 2.0.0 release notes - Flutter

そこで既存の Flutter のプロジェクトにて、Flutter2.0 向けにアップデート対応をしましたので、備忘録として手順をまとめておきます。

手順

Flutter および各パッケージのバージョンアップ

ターミナル等でプロジェクトのルートに移動し、下記の 3 つのコマンドを実行します。

cd [プロジェクトのパス]
flutter pub upgrade
flutter pub outdated
flutter pub upgrade --major-versions

これにより、Flutter のアップデートおよびプロジェクト内で使用しているパッケージのバージョンも更新されます(pubspec.yamlが自動的に書き変わります)。
ですが、私の環境ではflutter pub upgradeコマンドを実行した際、下記のようなエラーが出ました。

flutter pub upgrade
Resolving dependencies...
Because god_voice_flutter depends on flutter_localizations any from sdk which depends on intl 0.17.0, intl 0.17.0 is required.
So, because god_voice_flutter depends on intl ^0.16.1, version solving failed.
pub finished with exit code 1

この場合、エラー文通りにintlのバージョンを修正し、flutter pub getコマンドを実行すれば大丈夫です。

pubspec.yaml
dependencies:
  intl: ^0.17.0

Web でビルドするための設定を行う

ターミナル等でプロジェクトのルートに移動し、下記の 2 つのコマンドを実行します。

cd [プロジェクトのパス]
flutter config --enable-web
flutter create --org [アプリのパッケージ名] .

1 つ目のコマンドで Web 版への対応を有効にし、2 つ目のコマンドでプロジェクトを再構築します。
これにより、main.dartおよび、web フォルダとその配下にファイル群が生成されます。

アプリを実行する際、デバイスとして Chrome(web)が選べるようになるはずです。

まとめ

既存プロジェクトを Flutter2.0 向けにアップデート対応してみました。
対応自体は基本的にコマンドを実行していくだけなので、さほど難しくはなかったです。
ただ、既存プロジェクトですとだいぶ影響が大きい(使用しているパッケージが Web に対応していないなど)ため、初期段階で早めに対応すると良さそうです。

参考 URL

Discussion