#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本