Dart 環境のセットアップとツールチェーン — SDK のインストールから
良いコードを書くための第一歩は、良い環境を構築することです。
1. 学べること
- Dart SDK のインストール(Windows / macOS / Linux)と PATH の設定
- VS Code と Dart 拡張機能、デバッガーの設定
- 4 つのコアなコマンド:
dart run/dart compile/dart format/dart analyze pubspec.yamlとdart createテンプレートの紹介- Alice の最初の Hello World プログラム
2. 初心者のリアルな物語
(1) 課題:環境構築で心が折れる
Alice は Python 開発者で、Dart を学び始めたばかりだった。オンラインで見つけた 5 つのチュートリアルは、それぞれ異なるインストール方法を推奨していた。Homebrew を使うもの、Chocolatey を使うもの、手動ダウンロードを使うものも。2 時間格闘しても、dart --version は「コマンドが見つかりません」と表示するばかりだった。コードを 1 行も書く前にあきらめかけている。
(2) 正しい解決法
Dart SDK のインストールは実は 3 ステップだけ:ダウンロード → PATH 設定 → 検証。VS Code の Dart 拡張機能を使えば、インストールから最初のプログラム実行までたった 10 分でできる。
# ステップ 1: インストールを確認
dart --version
# ステップ 2: 最初のプロジェクトを作成
dart create hello_dart
# ステップ 3: 実行する
cd hello_dart && dart run
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
(3) 効果
- ゼロから実行までを 10 分で実現、環境構築での行き詰まりはもうない
- VS Code がシンタックスハイライト、インテリジェントなコード補完、ワンクリックデバッグを提供
dart analyzeがコードを書く際に潜在的な問題の発見を支援
3. Dart SDK のインストール
(1) プラットフォーム別インストール方法
flowchart TD A[SDK ダウンロード] --> B[PATH 設定] B --> C[VS Code + 拡張機能] C --> D[dart create] D --> E[dart run] E --> F[Hello World]
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
| プラットフォーム | 推奨方法 | コマンド |
|---|---|---|
| Windows | Chocolatey | choco install dart-sdk |
| macOS | Homebrew | brew install dart |
| Linux(Debian) | APT | 下記コマンド参照 |
| Linux(汎用) | 手動ダウンロード | 展開 + PATH 設定 |
▶ サンプル:Windows インストール
# Chocolatey でインストール(管理者として実行)
choco install dart-sdk
# インストールを確認
dart --version
# 期待される出力: Dart SDK version: 3.x.x
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
▶ サンプル:macOS インストール
# Homebrew でインストール
brew tap dart-lang/dart
brew install dart
# インストールを確認
dart --version
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
▶ サンプル:Linux(Debian/Ubuntu)インストール
# Dart APT リポジトリを追加
sudo apt-get update
sudo apt-get install apt-transport-https
sudo sh -c 'wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
sudo sh -c 'wget -qO- https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
# Dart SDK をインストール
sudo apt-get update
sudo apt-get install dart
# インストールを確認
dart --version
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
(2) PATH 設定の確認
インストール後は必ず dart コマンドが利用可能か確認する:
# dart が PATH に含まれているか確認
which dart # macOS/Linux
where dart # Windows
# 見つからない場合は PATH に手動で追加
# macOS/Linux: ~/.bashrc または ~/.zshrc に追加
export PATH="$PATH:/usr/lib/dart/bin"
# Windows: Dart SDK の bin ディレクトリをシステム PATH に追加
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
| 確認項目 | コマンド | 期待される結果 |
|---|---|---|
| SDK バージョン | dart --version |
Dart SDK version: 3.x.x |
| パス確認 | which dart |
/usr/lib/dart/bin/dart |
| pub コマンド | pub --version |
Pub 3.x.x |
4. VS Code の設定
(1) 拡張機能のインストール
| 拡張機能 | 目的 | 必須 |
|---|---|---|
| Dart | シンタックスハイライト、補完、デバッグ | はい |
| Flutter(オプション) | Flutter 開発サポート | 必要に応じて |
| Dart Import(オプション) | import 自動ソート | 推奨 |
▶ サンプル:VS Code デバッグ設定
プロジェクトルートに .vscode/launch.json を作成する:
{
"version": "0.2.0",
"configurations": [
{
"name": "Dart: Run",
"type": "dart",
"request": "launch",
"program": "bin/main.dart"
}
]
}
(2) よく使う VS Code ショートカット
| ショートカット | 機能 |
|---|---|
| F5 | デバッグ開始 |
| Ctrl+F5 | デバッグなしで実行 |
| Ctrl+Shift+P → "Dart: Run" | コマンドパレットから実行 |
| Ctrl+. | クイックフィックス |
| Ctrl+Space | インテリジェント補完 |
5. 4 つのコアなコマンド
(1) dart run
JIT モードで Dart ファイルまたはプロジェクトを直接実行し、ホットリロードをサポートする。
# 単一ファイルを実行
dart run bin/main.dart
# プロジェクトを実行(pubspec.yaml を使用)
dart run
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
(2) dart compile
Dart コードを異なるターゲット成果物にコンパイルする。
| サブコマンド | 成果物 | 目的 |
|---|---|---|
dart compile exe |
スタンドアロン実行ファイル | CLI ツール配布 |
dart compile js |
JavaScript ファイル | Web デプロイ |
dart compile aot-snapshot |
AOT スナップショット | 高速ランタイム |
▶ サンプル:実行ファイルへのコンパイル
# スタンドアロン実行ファイルへコンパイル
dart compile exe bin/main.dart -o datapipeline
# 実行ファイルを実行
./datapipeline
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
(3) dart format
公式 Dart スタイルガイドに従ってコードを自動フォーマットする。
# 現在のディレクトリの全 Dart ファイルをフォーマット
dart format .
# 特定のファイルをフォーマット
dart format lib/main.dart
# ファイルを変更せずにフォーマットを確認
dart format --set-exit-if-changed .
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
(4) dart analyze
コードの静的解析を実行し、潜在的な問題を発見する。
# 現在のプロジェクトを解析
dart analyze
# fatal-infos を含めて解析
dart analyze --fatal-infos
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
| コマンド | 目的 | 開発段階 |
|---|---|---|
dart run |
コード実行 | 開発 |
dart compile |
成果物コンパイル | リリース |
dart format |
コードフォーマット | コミット前 |
dart analyze |
静的解析 | 常時 |
6. pubspec.yaml とプロジェクトテンプレート
(1) dart create でプロジェクトを作成
▶ サンプル:プロジェクト作成
# コンソールアプリケーションを作成
dart create -t console-simple my_pipeline
# プロジェクト構成
# my_pipeline/
# ├── bin/
# │ └── my_pipeline.dart # エントリーポイント
# ├── lib/
# │ └── my_pipeline.dart # ライブラリのコード
# ├── test/
# │ └── my_pipeline_test.dart
# ├── pubspec.yaml # 依存関係
# └── analysis_options.yaml # Lint ルール
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
(2) pubspec.yaml の構造解説
▶ サンプル:pubspec.yaml 設定
name: datapipeline
description: A CLI tool for e-commerce data analytics
version: 1.0.0
environment:
sdk: ^3.0.0
dependencies:
args: ^2.4.2
http: ^1.2.0
csv: ^6.0.0
dev_dependencies:
test: ^1.24.0
build_runner: ^2.4.0
| フィールド | 意味 | 例 |
|---|---|---|
name |
パッケージ名 | datapipeline |
environment |
SDK バージョン制約 | sdk: ^3.0.0 |
dependencies |
ランタイム依存関係 | http: ^1.2.0 |
dev_dependencies |
開発時依存関係 | test: ^1.24.0 |
7. Alice の最初の Hello World
▶ サンプル:Hello World
// Alice の最初の Dart プログラム
void main() {
print('Hello, Dart!');
print('Welcome to DataPipeline project.');
}
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
出力:
Hello, Dart!
Welcome to DataPipeline project.
▶ サンプル:コマンドライン引数付き Hello World
// コマンドライン引数付き Hello World
void main(List<String> arguments) {
final name = arguments.isNotEmpty ? arguments[0] : 'World';
print('Hello, $name!');
if (arguments.length > 1) {
print('Additional args: ${arguments.sublist(1)}');
}
}
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
出力(
dart run bin/main.dart Alice --verboseを実行した場合):
Hello, Alice!
Additional args: [--verbose]
▶ サンプル:args パッケージを使った引数解析
// args パッケージを使ったプロフェッショナルな CLI 引数解析
import 'package:args/args.dart';
void main(List<String> arguments) {
final parser = ArgParser()
..addOption('name', abbr: 'n', defaultsTo: 'World', help: 'Your name')
..addFlag('verbose', abbr: 'v', defaultsTo: false, help: 'Show verbose output');
final results = parser.parse(arguments);
final name = results['name'] as String;
final verbose = results['verbose'] as bool;
print('Hello, $name!');
if (verbose) {
print('Running in verbose mode');
}
}
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
8. 完全なサンプル:DataPipeline プロジェクトの初期化
// ============================================
// DataPipeline CLI - 初期セットアップ
// プロフェッショナルな CLI ツールのスケルトン
// ============================================
import 'package:args/args.dart';
const String version = '1.0.0';
void main(List<String> arguments) {
final parser = ArgParser()
..addFlag('version', abbr: 'v', negatable: false, help: 'Show version')
..addFlag('help', abbr: 'h', negatable: false, help: 'Show help')
..addOption('input', abbr: 'i', help: 'Input data source path')
..addOption('output', abbr: 'o', defaultsTo: 'report.json', help: 'Output file path')
..addOption('format', allowed: ['json', 'csv', 'html'], defaultsTo: 'json', help: 'Output format')
..addFlag('verbose', help: 'Enable verbose logging');
try {
final results = parser.parse(arguments);
if (results['help'] as bool) {
print('DataPipeline - E-commerce analytics CLI tool');
print(parser.usage);
return;
}
if (results['version'] as bool) {
print('DataPipeline v$version');
return;
}
final input = results['input'] as String?;
final output = results['output'] as String;
final format = results['format'] as String;
final verbose = results['verbose'] as bool;
if (input == null) {
print('Error: --input is required');
print(parser.usage);
return;
}
print('=== DataPipeline v$version ===');
if (verbose) {
print('Input: $input');
print('Output: $output');
print('Format: $format');
}
print('Processing data from: $input');
print('Report saved to: $output ($format format)');
} on FormatException catch (e) {
print('Error: ${e.message}');
print(parser.usage);
}
}
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。
出力(
dart run bin/main.dart -i orders.csv -o report.json --verboseを実行した場合):
=== DataPipeline v1.0.0 ===
Input: orders.csv
Output: report.json
Format: json
Processing data from: orders.csv
Report saved to: report.json (json format)
❓ よくある質問
Q: インストール後に
dartコマンドが見つからない場合は? A: PATH 環境変数に Dart SDK のbinディレクトリが含まれているか確認してください。Windows ではwhere dart、macOS/Linux ではwhich dartで場所を確認できます。
Q: Flutter SDK のインストールも必要ですか? A: Dart 言語自体を学ぶだけなら必要ありません。スタンドアロンの Dart SDK だけで十分です。Flutter を学び始めたときに別途インストールすれば OK です(Flutter SDK には Dart SDK も含まれます)。
Q:
dart runとdart compile exeの違いは何ですか? A:dart runは JIT コンパイルで実行するため開発に適しています。dart compile exeは SDK なしでも動作するスタンドアロン実行ファイルにコンパイルするため配布に適しています。
Q: VS Code の Dart と Flutter の両方の拡張機能が必要ですか? A: Dart 拡張機能は必須です。Flutter 拡張機能は Flutter アプリ開発でのみ必要で、純粋な Dart プロジェクトには不要です。
Q: pubspec.yaml の
^記号の意味は? A:^はメジャーバージョン内の互換性を示します。例えば^1.2.0は>=1.2.0 <2.0.0を意味し、マイナーバージョンとパッチバージョンのアップグレードを許容します。
Q:
dart analyzeで info レベルの警告がたくさん出ます。全て修正すべきですか? A: info レベルは提案であり実行には影響しません。警告とエラーは修正を推奨します。info はチームの規約に依存します。
📖 まとめ
- Dart SDK は Windows、macOS、Linux すべてに対応する。パッケージマネージャーの使用を推奨。
- VS Code + Dart 拡張機能が最良の開発環境で、コード補完、デバッグ、フォーマットが統合されている。
- 4 つのコアなコマンド:
dart run(実行)、dart compile(コンパイル)、dart format(フォーマット)、dart analyze(解析)。 pubspec.yamlはプロジェクトの設定センターで、依存関係とメタデータを管理する。dart createでプロジェクトテンプレートを素早く生成でき、CLI 引数解析にはargsパッケージを使う。
📝 練習問題
- 基礎(難易度 ⭐):Dart SDK をインストールし、
dart --versionでバージョンが 3.0.0 以上であることを確認してください。その後、dart create hello_dartでプロジェクトを作成・実行しましょう。 - 中級(難易度 ⭐⭐):VS Code の
launch.jsonを設定し、F5 キーで Dart プログラムを実行できるようにしてください。ブレークポイントを設定してデバッグを試してみましょう。 - 挑戦(難易度 ⭐⭐⭐):
argsパッケージを使って--count Nパラメータに対応する CLI ツールを作成し、「Hello, DataPipeline!」を N 回出力し、dart compile exeで実行ファイルにコンパイルしてください。