#17 Dartで学ぶモジュールとパッケージの基本
Dartのファイル整理は、シンプルなimportの仕組みで行います。この記事では、Dartにおけるファイル分割の基本と、Flutterプロジェクトでの実践的な使い方を解説します。
ファイルを分けて読み込む
// utils.dart
void greet(String name) {
print("こんにちは、$name さん");
}
// main.dart
import 'utils.dart';
void main() {
greet("太郎");
}
特定の機能だけを読み込む・除外する
ファイル全体ではなく、特定の関数だけを使いたい場合はshow、逆に特定の関数だけ除外したい場合はhideが使えます。
import 'utils.dart' show greet;
import 'utils.dart' hide farewell;
外部パッケージを読み込む
以前の記事で触れた外部パッケージ(pub.devで公開されているもの)は、package:という特別な形式で読み込みます。
import 'package:http/http.dart' as http;
asを使った名前の衝突回避
複数のファイルで同じ名前の関数がある場合、asを使って別名を付けることで、名前の衝突を避けられます。
import 'utils.dart' as myUtils;
myUtils.greet("太郎");
フォルダをまたいだimport
Flutterプロジェクトではlib/フォルダの下にサブフォルダを作って整理することが多く、その場合はフォルダの階層を含めたパスでimportします。
import 'package:my_app/models/user.dart';
ライブラリファイルというまとめ方
複数のファイルをまとめて1つの機能として公開したい場合、それらをまとめて再エクスポートする専用のファイルを作る方法もよく使われます。
// my_library.dart
export 'src/greet.dart';
export 'src/farewell.dart';
利用する側はmy_library.dartを1つだけimportすれば、内部で分割されたファイルの機能をまとめて使えます。
Dartならではの注意点
Dartのimport文は、自分のファイル(相対パス)と外部パッケージ(package:形式)で書き方が異なります。Flutterプロジェクトでは特に外部パッケージを扱う機会が多いため、この2つの書き方の違いに早めに慣れておくとよいでしょう。プロジェクトが大きくなるほど、show・hideで必要な機能だけを読み込むと、意図しない名前の衝突を減らせます。
まとめ
Dartのファイル整理はimportが基本で、外部パッケージにはpackage:形式を使います。asによる名前の衝突回避や、show・hideによる絞り込みも覚えておきましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
Dartをもっと学びたい方には「ゼロから学ぶFlutterアプリ開発」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿