🐷
Flutterで開発初期に導入しておきたいこと
はじめに
個人的に導入必須な機能を備忘録を兼ねて記載しています。
これらは対応が遅れる程、導入するコストがかかってしまうものなので初期導入をおすすめします。
Null Safetyの導入
- Flutter 1系からの移行手順
-
flutter upgrade
を実行し、Flutterを2系に更新する。 -
pubspec.yaml
のenvironment
を修正。
pubspec.yaml
environment:
- sdk: '>=2.7.0 <3.0.0'
+ sdk: '>=2.12.0 <3.0.0'
-
flutter pub outdated --mode=null-safety
を実行し、使用しているPackageをNull safety対応のバージョンに更新します。
上記画像のResolvable
のバージョンに更新します。
×マークが付いているものはNull safetyに対応していないので対応を待つか代替えできるパッケージを使用しましょう。
-
flutter pub get
を実行するとNull safetyに対応していないファイルに警告が出ると思うので、そのファイルを修正してください。
※ Null safetyに移行するためのmigration toolがありますが、Nullチェックに多用していたassert
などは手動で削除する必要があるので個人的には手動で修正する方が早いと思っています。
静的解析の導入
Flutter 2.3.0でflutter_lints
が標準で使用できるようになるようなので
flutter_lints
を使用します。
- 導入手順
-
pubspec.yaml
にflutter_lints
を追加。
pubspec.yaml
dev_dependencies:
flutter_lints: ^1.0.4
- ルート直下に
analysis_options.yaml
を追加。
analysis_options.yaml
include: package:flutter_lints/flutter.yaml
linter:
rules:
# 追加したいルールを追記
多言語対応(l10n)の導入
- 導入手順
-
pubspec.yaml
ファイルにintlパッケージを追加します。
pubspec.yaml
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
intl: ^0.17.0
- genarateフラグをtrueにします。
pubspec.yaml
flutter:
generate: true
- ルート直下に
l10n.yaml
を追加。
l10n.yaml
arb-dir: lib/l10n
template-arb-file: app_ja.arb
output-localization-file: app_localizations.dart
-
lib
配下にl10n
ディレクトリを追加して、対応するリソースファイルを作成します。
app_ja.arb
{
"helloWorld": "ハローワールド!"
}
- ここで
flutter pub get
を実行すると.dart_tool/flutter_gen/gen_l10n
配下にapp_localizations.dart
が自動生成されます。
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
-
main.dart
のMaterialApp
でlocalizationsDelegates
、supportedLocales
を追加します。
main.dart
return MaterialApp(
title: 'Flutter Demo',
localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
- これでリソースファイルに定義した文言を使用することができるようになります。
Text(AppLocalizations.of(context)!.helloWorld);
※ 日本語対応のみの場合も文言のリソース管理として使用するのをおすすめします。
参考資料
Discussion