🐒

Flutter SDKのバージョンをアプリ内に表示させる方法

2023/01/19に公開

はじめに

Flutterのウィジェットのカタログアプリを開発する際に、
アプリが使用しているFlutterのバージョンが見えたほうがいいだろう
ということで、表示する方法を考えてみました。
今回開発したアプリはこの記事の下の方で紹介しました。

やりたいこと

以下のスクショの赤枠のようにアプリで使用しているFlutterのSDKバージョンを表示させたい。
バージョンを直接ハードコードするのではなく、Flutterのバージョンを変更してもソースコードを変更することなく取得できるようにしたい。

altテキスト

結論

とりあえず、プロジェクト内の.dart_tool/versionのファイルを参照してバージョンを取得できた。

.dart_tool/version
3.3.10

バージョンを取得するコードは以下のような感じ

flutter-version.dart
flutterVersion = await DefaultAssetBundle.of(context)
            .loadString('.dart_tool/version');
pubspec.yaml
assets:
    - .dart_tool/version

このやり方で大丈夫かどうか、試しにFlutterのチャンネルをstable(3.3.10)からbeta(3.7.0-1.4-pre)に変更してみた。
その場合にもソースコードに変更を加えることなく↓の画像のようにバージョンを取得できることを確認できた。

今回は.dart_tool/versionを参照しましたが、fvmを使用している場合は
.fvm/fvm_config.jsonから取得できるのではないでしょうか。

今回開発したアプリ

FlutterのiOSスタイルのウィジェット(Cupertino Widget)のカタログアプリです。
Cupertino Widgetがどんな感じか自分のスマホでUIを触ることが出来ます。
UIと一緒にそのコードも確認することもできます。

Android:

https://play.google.com/store/apps/details?id=com.musashi.cupertino_catalog

iOS:

https://apps.apple.com/us/app/cupertino-catalog/id1665329294

参考

.dart_toolフォルダについて
https://dart.dev/guides/libraries/private-files#the-rules

Discussion