Dart 環境のセットアップとツールチェーン — SDK のインストールから

良いコードを書くための第一歩は、良い環境を構築することです。

1. 学べること


2. 初心者のリアルな物語

(1) 課題:環境構築で心が折れる

Alice は Python 開発者で、Dart を学び始めたばかりだった。オンラインで見つけた 5 つのチュートリアルは、それぞれ異なるインストール方法を推奨していた。Homebrew を使うもの、Chocolatey を使うもの、手動ダウンロードを使うものも。2 時間格闘しても、dart --version は「コマンドが見つかりません」と表示するばかりだった。コードを 1 行も書く前にあきらめかけている。

(2) 正しい解決法

Dart SDK のインストールは実は 3 ステップだけ:ダウンロード → PATH 設定 → 検証。VS Code の Dart 拡張機能を使えば、インストールから最初のプログラム実行までたった 10 分でできる。

BASH
# ステップ 1: インストールを確認
dart --version

# ステップ 2: 最初のプロジェクトを作成
dart create hello_dart

# ステップ 3: 実行する
cd hello_dart && dart run
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

(3) 効果


3. Dart SDK のインストール

(1) プラットフォーム別インストール方法

100%
flowchart TD
  A[SDK ダウンロード] --> B[PATH 設定]
  B --> C[VS Code + 拡張機能]
  C --> D[dart create]
  D --> E[dart run]
  E --> F[Hello World]
TEXT
> 出力: ローカルの 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 インストール

BASH
# Chocolatey でインストール(管理者として実行)
choco install dart-sdk

# インストールを確認
dart --version
# 期待される出力: Dart SDK version: 3.x.x
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

▶ サンプル:macOS インストール

BASH
# Homebrew でインストール
brew tap dart-lang/dart
brew install dart

# インストールを確認
dart --version
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

▶ サンプル:Linux(Debian/Ubuntu)インストール

BASH
# 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
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

(2) PATH 設定の確認

インストール後は必ず dart コマンドが利用可能か確認する:

BASH
# 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 に追加
TEXT
> 出力: ローカルの 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 を作成する:

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 ファイルまたはプロジェクトを直接実行し、ホットリロードをサポートする。

BASH
# 単一ファイルを実行
dart run bin/main.dart

# プロジェクトを実行(pubspec.yaml を使用)
dart run
TEXT
> 出力: ローカルの 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 スナップショット 高速ランタイム

▶ サンプル:実行ファイルへのコンパイル

BASH
# スタンドアロン実行ファイルへコンパイル
dart compile exe bin/main.dart -o datapipeline

# 実行ファイルを実行
./datapipeline
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

(3) dart format

公式 Dart スタイルガイドに従ってコードを自動フォーマットする。

BASH
# 現在のディレクトリの全 Dart ファイルをフォーマット
dart format .

# 特定のファイルをフォーマット
dart format lib/main.dart

# ファイルを変更せずにフォーマットを確認
dart format --set-exit-if-changed .
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

(4) dart analyze

コードの静的解析を実行し、潜在的な問題を発見する。

BASH
# 現在のプロジェクトを解析
dart analyze

# fatal-infos を含めて解析
dart analyze --fatal-infos
TEXT
> 出力: ローカルの 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 でプロジェクトを作成

▶ サンプル:プロジェクト作成

BASH
# コンソールアプリケーションを作成
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 ルール
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

(2) pubspec.yaml の構造解説

▶ サンプル:pubspec.yaml 設定

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

DART
// Alice の最初の Dart プログラム
void main() {
  print('Hello, Dart!');
  print('Welcome to DataPipeline project.');
}
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

出力:

TEXT
Hello, Dart!
Welcome to DataPipeline project.

▶ サンプル:コマンドライン引数付き Hello World

DART
// コマンドライン引数付き 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)}');
  }
}
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

出力(dart run bin/main.dart Alice --verbose を実行した場合):

TEXT
Hello, Alice!
Additional args: [--verbose]

▶ サンプル:args パッケージを使った引数解析

DART
// 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');
  }
}
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

8. 完全なサンプル:DataPipeline プロジェクトの初期化

DART
// ============================================
// 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);
  }
}
TEXT
> 出力: ローカルの DartPad または `dart run` で実行してください。この Dart コースの全例は Dart 3.x / Flutter 3.x ベースです。SDK バージョンにより結果が多少異なる場合があります。

出力(dart run bin/main.dart -i orders.csv -o report.json --verbose を実行した場合):

TEXT
=== 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 rundart 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 はチームの規約に依存します。


📖 まとめ


📝 練習問題

  1. 基礎(難易度 ⭐):Dart SDK をインストールし、dart --version でバージョンが 3.0.0 以上であることを確認してください。その後、dart create hello_dart でプロジェクトを作成・実行しましょう。
  2. 中級(難易度 ⭐⭐):VS Code の launch.json を設定し、F5 キーで Dart プログラムを実行できるようにしてください。ブレークポイントを設定してデバッグを試してみましょう。
  3. 挑戦(難易度 ⭐⭐⭐)args パッケージを使って --count N パラメータに対応する CLI ツールを作成し、「Hello, DataPipeline!」を N 回出力し、dart compile exe で実行ファイルにコンパイルしてください。

← 前のレッスン | 次のレッスン →

Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%