はじめに
前回はFlutterの基本ウィジェットについて学びました。

今回はFlutterの開発言語であるDartを学びます。
Flutterの開発言語であるDartは、シンプルでモダンな構文を持ち、学習がしやすい言語です。Flutterを使いこなすためには、まずこのDartの基本文法を理解することが重要です。今回は、Dartの基本的なデータ型、制御構文、関数、クラス、リスト、マップの使い方、さらには非同期処理の基礎であるasyncとawaitについて、初心者にもわかりやすく解説していきます。
Dartの基本データ型
Dartには、基本的なデータ型がいくつかあります。それぞれのデータ型をしっかり理解しておくことで、効率的なプログラムを作成することができます。
主なデータ型
- int: 整数を扱います。
- double: 小数を扱います。
- String: 文字列を扱います。
- bool: 真偽値(
true
またはfalse
)を扱います。 - List: 複数のデータを順序付けて扱うリスト型です。
- Map: キーと値のペアでデータを管理します。
void main() {
int myInt = 42;
double myDouble = 3.14;
String myString = "Hello, Dart!";
bool isFlutterAwesome = true;
print(myInt); // 42
print(myDouble); // 3.14
print(myString); // Hello, Dart!
print(isFlutterAwesome); // true
}
制御構文
プログラムは、条件によって動作を変えたり、繰り返し処理を行ったりするための制御構文を持っています。Dartでも、他のプログラミング言語と同様に、制御構文が用意されています。
条件分岐(if / else)
条件に基づいて処理を分岐させるための構文です。
void main() {
int score = 85;
if (score >= 90) {
print("Excellent!");
} else if (score >= 70) {
print("Good Job!");
} else {
print("Try harder next time.");
}
}
繰り返し処理(forループ)
Dartでは、for
文を使って一定の回数繰り返す処理を行えます。
void main() {
for (int i = 0; i < 5; i++) {
print("This is loop iteration $i");
}
}
繰り返し処理(whileループ)
条件を満たす限り、繰り返し処理を行います。
void main() {
int i = 0;
while (i < 3) {
print("i is $i");
i++;
}
}
関数
Dartでは、関数を使ってコードを再利用可能にします。関数を使うことで、プログラムの整理や可読性の向上を図ることができます。
関数の定義と呼び出し
greet
関数は、name
という引数を受け取って、挨拶メッセージを表示します。- Dartの関数は、値を返さない場合には
void
を使用します。
void greet(String name) {
print("Hello, $name!");
}
void main() {
greet("Flutter Beginner");
}
戻り値のある関数
add
関数は2つの整数を足し合わせ、その結果を返します。
int add(int a, int b) {
return a + b;
}
void main() {
int result = add(5, 3);
print("Result: $result"); // Result: 8
}
クラス
Dartはオブジェクト指向言語であり、クラスを使ってデータとその振る舞いをまとめることができます。クラスは、オブジェクトの設計図のようなもので、複雑なデータや機能を整理するのに役立ちます。
クラスの定義とオブジェクトの作成
class Person {
String name;
int age;
// コンストラクタ
Person(this.name, this.age);
// メソッド
void introduce() {
print("Hi, my name is $name and I am $age years old.");
}
}
void main() {
// Personクラスのインスタンスを作成
Person person = Person("Alice", 25);
person.introduce(); // Hi, my name is Alice and I am 25 years old.
}
クラスのポイント
- クラスはデータとその操作をまとめたものです。
- Dartではコンストラクタを使って、オブジェクトを初期化します。
リストとマップ
Dartには、データをまとめて扱うためのコレクションとしてリストとマップが用意されています。
リスト(List)
リストは、順序付けられた要素の集合です。複数のデータを格納し、インデックスを使ってアクセスします。
void main() {
List<String> fruits = ["Apple", "Banana", "Orange"];
print(fruits[0]); // Apple
fruits.add("Grapes");
print(fruits); // [Apple, Banana, Orange, Grapes]
}
マップ(Map)
マップは、キーと値のペアを使ってデータを格納します。
void main() {
Map<String, int> scores = {
"Alice": 85,
"Bob": 92,
"Charlie": 78,
};
print(scores["Bob"]); // 92
}
非同期処理(async と await)
非同期処理を扱うには、asyncとawaitを使います。これにより、時間のかかる処理(例:ネットワークリクエスト)を待たずにプログラムを進行させ、結果を待つことができます。
非同期関数の定義
Future<void> fetchData() async {
print("Fetching data...");
await Future.delayed(Duration(seconds: 2));
print("Data fetched!");
}
void main() async {
await fetchData();
print("Process completed.");
}
async/awaitのポイント
async
を使うことで、非同期関数を定義できます。await
は、非同期処理の完了を待機し、処理が終わったら次のコードを実行します。Future
は、非同期処理の結果を表すオブジェクトです。
まとめ
今回の記事では、Dartの基本文法について学びました。Flutterでのアプリ開発には、Dartの理解が不可欠です。以下の項目をしっかり理解しておくと、今後のFlutter開発がスムーズに進められます。
この記事のポイント
- データ型:
int
、double
、String
、bool
など、基本的な型を理解。 - 制御構文:
if
やfor
などを使ってプログラムの流れを制御。 - 関数: 再利用可能なコードを作成し、効率的なプログラミングを実現。
- クラス: オブジェクト指向プログラミングを理解し、複雑なデータを整理。
- リストとマップ: データをまとめて管理する方法を学習。
- 非同期処理:
async
とawait
を使って、スムーズに非同期処理を実行。
次回は、Flutterでの状態管理を学びます。
第4回はこちら

コメント