Flutter fvmとは?

Flutterのバージョン管理システム

スマホの進化が早すぎてこれがないと詰むレベルでした。
ソースの管理はGitで事済みますが、スマホは進化が早すぎるのでエンジン部も進化していきます。

イメージ的にはPythonのvenvと思います。
ごちゃごちゃ書いてもイメージしにくいと思うので私の事象を少し・・・。

Laravel, .net, Flutterでの連携システム

  • 全ての次期改修の開発、テストが済みました。
  • まずサーバーを更新するので、現状の.net(デスクトップアプリ)、スマホアプリはサーバー更新後も動くのかテストをしないと・・・。
  • スマホアプリの旧バージョンは3ヶ月前に最終コンパイル(着手は1年前)、新バージョンへはなるべく依存しているものをバージョンアップする。
  • Kotlin, Flutter SDKが更新される、それに伴い依存するライブラリも更新する。
  • 公開済の旧スマホアプリは本番Laravelへ通信を行う為使いたくない。
    開発用Laravelへ変更しコンパイルし直してインストールをしようする。
    旧ソースでは新ソースに合わせた「Kotlin, Flutter SDK, ライブラリ」のセットが使えない。
  • Flutte環境自体を各リリース時に合わせる必要があるので、その為のツールがfvm(Flutter Version Management)

使い方

# イントール
dart pub global activate fvm

# プロジェクトルートフォルダへ移動

# 使いたいバージョンを指定
fvm use 3.22.2

# 実行
fvm flutter run

注意事項

Macは難なく動きましたが、Win10はかなりゴネました。

  • まず安定して起動しない。
    背景が抜けたり、Http通信が無反応だったり・・・。
  • 実行後の選択肢で
    「d Detach (terminate “flutter run” but leave application running).」
    で切断して動かすとうまくいきました。

特記事項

  • FlutterSDKのバージョンはプロジェクト内には記述されていないので予めreadme等に記述しておく。
    Kotlinのバージョンは記述されています。
    以下でFlutterSDKのバージョン一覧を確認できます。
    https://docs.flutter.dev/install/archive
  • DartはFlutterSDKにバンドルなので気にしなくて良いようです。

いやはや、Laravelや.netはサポートが長く、ライブラリの依存も強くないのでそれほど気にしなくて良いのですがスマホは早すぎますね・・・。
そういや.netのnugetもゴネたら止まりませんね。