すらぼうの開発ノート

モバイルアプリエンジニアのメモ

【Flutter】複数のimportをひとまとめにする方法

開発が進むとimportでパッケージを関連付ける機会が増え、管理が面倒になる場合がある。 その様な場合、export文を用いると管理を楽にすることができる

本エントリではexport文を用いたリファクタリングの方法を説明する。

exportとは

exportキーワードで指定したファイル他のファイルに受け渡すことができる。

exportの使い方

以下の例を用いて説明する。

main.dartというファイルにて以下の複数のパッケージをimportしているとする。

import 'package:flutter/component_1.dart';
import 'package:flutter/component_2.dart';
import 'package:flutter/component_3.dart';
import 'package:flutter/component_4.dart';
import 'package:flutter/component_5.dart';

この時全ての処理がmain.dartで完結すれば良いが、通常のアプリケーション開発においてはファイル分割をすることが多く、上記のような記述が必要になるファイルが増えることが予想される。

そこで以下の内容のcomponent.dartというファイルを用意する。

export 'package:flutter/component_1.dart';
export 'package:flutter/component_2.dart';
export 'package:flutter/component_3.dart';
export 'package:flutter/component_4.dart';
export 'package:flutter/component_5.dart';

またmain.dartの先ほどの記述箇所を次の様に変更する。

import 'package:flutter/component.dart';

これで当初の状態と同じように、component_1.dartからcomponent_5.dartまでのパッケージをimportしたことになる。

さらにimportしたいパッケージを増やす際にはcomponent.dartへ記述を増やせば良い。 またmain.dart以外でも同じように

import 'package:flutter/component.dart';

と記述すれば長々とimport文を記述する手間を省ける。

この様なテクニックは現場では多く目にする。 海外ではcomponent.dartの様にimport処理をまとめるファイルをBarrel fileと呼んだりする。