Flutterには画像や文字列などのリソースを安全にアクセス出来るようにするためのファイルを自動生成する機能はなく、 pubspec.yaml の assets に指定したリソースを文字列で指定しないといけません。これらの手間とタイポなどのリスクをなるべくなくせるように作られたパッケージがFlutterGenです。
主に以下の3つです
dev_dependencies:
flutter_test:
sdk: flutter
flutter_gen_runner: ^4.2.1
build_runner: ^2.1.11
flutter pub get
を忘れずに。
assetsファイル内にディレクトリや画像またはフォントファイルがある。かつ、以下のようにpubspec.yamlにアクセスするファイルのパスが指定してあることが前提です。
assets:
- images/smile_picture.png
- images/smile_icon.svg
fonts:
- family: notoSansJP
fonts:
- asset: fonts/notoSansJP.ttf
FlutterGenを使うために、build_runnerを使ってファイルを自動生成します。
$ flutter pub run build_runner build --delete-conflicting-outputs
lib/gen/assets.gen.dart
ファイルが自動生成されるはずです。
そのファイルには、assetsディレクトリ内においてある画像やフォントファイルなどのパス情報が書いてあります。
補完も表示されるのでとっても使いやすいです。
普通に書く
Image.asset(
'assets/images/smile_picture.png',
width: 150.0,
),
FlutterGenを使用して書く
// Image classとして使用する. Image classが持つパラメーターを使用できます
Assets.images.smilePicture.image(
width: 150.0,
),
// Stringとして使用する
Image.asset(
Assets.images.smilePicture.path,
width: 150.0,
),
普通に書く
final svg = SvgPicture.asset('assets/images/smile_icon.svg');
FlutterGenを使用して書く
final svg = SvgPicture.asset(Assets.images.smileIcon);
普通に書く
fontFamily: "notoSansJP"
FlutterGenを使用して書く
//FlutterGenを使用
fontFamily: FontFamily.notoSansJP
思った以上に便利で感動しました。画像やフォントをたくさん使うプロジェクトには絶対に入れるべきだと思います。
可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More