一番シンプルなパターン
まず、main.dart にメインのコードを書いて、
sub.dartにインポートしたいクラスを書いておくという状況を想定。
Flutterのプロジェクトのディレクトリ構成は以下。
今回、sub.dartはmain.dartと同じディレクトリに配置。
Project Files
…
lib
main.dart
sub.dart
以下のようにインポートする。
class ABC{
//...変数など...
ABC(){
//...コンストラクタ...
}
}
import 'sub.dart';
ABC abc = ABC();
ディレクトリが入り組んでいるパターン1
次に、main.dart にメインのコードを書いて、同じディレクトリにcomponentsという新たなディレクトリを作る場合を考えます。
componentsディレクトリに配置したsub.dartにインポートしたいクラスを書いておくという状況を想定。
Flutterのプロジェクトのディレクトリ構成は以下。
Project Files
<project name(//任意で自分で決めたもの)>
…
lib
main.dart
components
sub.dart
以下のようにインポートする。
class ABC{
//...変数など...
ABC(){
//...コンストラクタ...
}
}
import 'sub.dart';
import 'package:<project name(//任意で自分で決めたもの)>/components/sub.dart';
ABC abc = ABC();
ディレクトリが入り組んでいるパターン2
次に、main.dart にメインのコードを書いて、同じディレクトリにcomponentsとscreenいう新たなディレクトリを作る場合を考えます。これはFlutterプロジェクトではよくあるパターンで、screenには画面の表示テンプレートっぽい物を中心にファイルを集めます。compornentsには便利な関数やクラスを集めて使って引き継ぎやすくする工夫です。
今回は、
componentsディレクトリに配置したsub.dartに書いたクラスを、screenディレクトリに配置したsome_screen.dartにインポートしたいという状況を想定。
Flutterのプロジェクトのディレクトリ構成は以下。
今回、sub.dartはmain.dartと同じディレクトリに配置。
Project Files
<project name(//任意で自分で決めたもの)>
…
lib
main.dart
components
sub.dart
screen
some_screen.dart
以下のようにインポートする。
class ABC{
//...変数など...
ABC(){
//...コンストラクタ...
}
}
import 'package:<project name(//任意で自分で決めたもの)>/components/sub.dart';
ABC abc = ABC();
相対パスも指定可能
なお、sub.dartにmain.dartの何かをインポートしたい場合は、相対パスも可能です。
import '../main.dart';
//main.dartの何かを使う
class ABC{
//...変数など...
ABC(){
//...コンストラクタ...
}
}