Dartのデータ型は、Flutterアプリでフォーム入力、APIレスポンス、画面表示を安全に扱う土台です。JavaScript経験者ほど、Dartの静的型とnull安全に慣れることが重要です。
この記事の結論
最初はint、double、String、bool、List、Map、null許容の「?」を覚えれば十分です。型を書ける場所では書き、単純な代入ではvarやfinalによる型推論も使えます。
基本のデータ型
- int:整数
- double:小数
- num:intとdoubleの共通型
- String:文字列
- bool:trueまたはfalse
- List:順序付きの複数データ
- Map:キーと値の組み合わせ
数値と文字列の例
final int count = 3;
final double price = 1200.5;
final String title = "Flutter入門";
final bool isPublished = true;
print("$title: $count件 / $price円");
ListとMapの例
APIレスポンスや一覧画面ではListとMapをよく使います。型を明示すると、何のリストか分かりやすくなります。
final List<String> tags = ["flutter", "dart"];
final Map<String, dynamic> user = {
"name": "Sato",
"age": 28,
};
print(tags.first);
print(user["name"]);
nullを許可する型
Dartでは、通常のStringにはnullを入れられません。nullを許可したい場合はString?のように?を付けます。
String title = "Flutter";
String? subtitle;
print(title);
print(subtitle ?? "説明はまだありません");
varとfinalの使い分け
varは型推論、finalは再代入できない変数です。Flutterでは、後から変えない値はfinalにすると安全です。
var count = 1;
count = 2;
final appName = "My App";
// appName = "Other"; // 再代入できない
Flutterで使うときの考え方
Flutterでは、Textに表示する文字列、フォームの入力値、APIから受け取るJSON、画面状態のフラグなど、ほぼすべてが型と関係します。型を曖昧にすると後でWidgetの中でエラー原因を追いづらくなります。
よくあるつまずき
- 数値と文字列をそのまま足そうとする
- nullを入れたい型に?を付け忘れる
- Map<String, dynamic>をどこでも使い続けて型安全を失う
- finalとconstの違いを最初から深追いしすぎる
次に読む記事
- Dartの文字列|Stringの作り方・埋め込み・改行・数値変換を解説 — DartのStringを初心者向けに解説します。文字列の作り方、変数埋め込み、複数行文字列、数値変換、FlutterのText表示で使う基本を整理します。
- Dartのif文|条件分岐の書き方とFlutterでの使いどころ — Dartのif文を初心者向けに解説します。if、else if、else、比較演算子、null判定、Flutterで表示を切り替える考え方を整理します。
- Dart async awaitの使い方|Futureを順番に待つ基本を初心者向けに解説 — Dartのasync/awaitを初心者向けに解説します。Futureとthenの関係、awaitで待つ書き方、try-catch、Future.wait、Flutterでローディング表示につなげる考え方を整理します。
- Flutter初心者の学習順|環境構築からアプリ公開までのロードマップ — Flutter初心者向けに、学習順を環境構築、Dart基礎、UI、状態管理、API、Firebase、公開まで段階別に整理します。
まとめ
Dartのデータ型は、Flutterの画面とデータを安全につなぐ基本です。まずは基本型、List、Map、null safety、finalを小さなコードで確認しましょう。