Flutter

Flutter 3.19 と Dart 3 のインストールとウィジェット開発ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Flutter 3.19 と Dart 3 のインストール・セットアップ

Flutter 3.19 と Dart 3 は、最新のモバイル・デスクトップ開発に必要な機能がすべてパッケージ化されています。この章では 公式サイトから SDK を取得 → 環境変数を設定 → flutter doctor で依存ツールを自動インストール の流れを、OS 別に分かりやすく解説します。初心者でも途中でつまずきにくいよう、各ステップの注意点と実行例を併記しています。

公式サイトからの取得

Flutter と Dart は同一リポジトリに含まれているため、公式インストールページ(flutter.dev/install)から OS に合わせた zip/tar.gz をダウンロードします。
- Windowsflutter_windows_3.19.x-stable.zip
- macOSflutter_macos_3.19.x-stable.tar.xz
- Linuxflutter_linux_3.19.x-stable.tar.xz

SDK の解凍と PATH 設定

  1. 任意のディレクトリに展開(例: C:\src\flutter / $HOME/flutter)。
  2. 展開したフォルダ内の bin ディレクトリをシステム環境変数 PATH に追加します。

ポイント:ターミナルで flutter --version が正しく表示されれば設定完了です。

flutter doctor の実行と依存ツールの自動インストール

flutter doctor は以下をチェックし、足りないものはインストール手順へのリンクを提示します。
| 項目 | 主な不足ツール | インストール例 |
|------|----------------|----------------|
| Android toolchain | Android SDK, Command‑line tools, Java JDK | sdkmanager --install "platform-tools" "platforms;android-34" |
| Xcode (macOS) | Xcode 本体、Command Line Tools、iOS シミュレータ | App Store から Xcode をインストール → xcode-select --install |
| Chrome | Web 開発用の Chrome ブラウザ | 公式サイトからダウンロード |

重要flutter doctor が緑色で完了するまで、指示されたツールを必ず導入してください。これが欠けていると flutter run が失敗します。

macOS 向け iOS シミュレータのセットアップ

iOS アプリは macOS のみ でシミュレータが利用可能です。以下の手順で確認・起動できます。

Windows / Linux では iOS シミュレータは提供されません。その代わり、Flutter の Web/Android エミュレータ を使用してください。

Windows / Linux 向け Android エミュレータのセットアップ

  1. Android Studio をインストールし、SDK Manager から「Android SDK」「Android Virtual Device (AVD)」を選択。
  2. AVD Manager で「Pixel 6 API 34」など好きなデバイスを作成し、Launch ボタンで起動。

Dart 3 の新機能と互換性注意点

変更点 内容 移行時の留意点
パターンマッチング (switch 拡張) case var (x, y) でタプル分解が可能 古い if/else ロジックは削除不要だが、IDE が最新バージョンか確認
レコード型 & 名前付きレコード (int id, String name)({int id, String name}) JSON シリアライズ時に手動変換が必要
強化された null safety 非 nullable 型への暗黙的キャストがコンパイルエラーに 既存コードの ! 演算子を減らすリファクタリングが推奨
dart run のデフォルトビルドモード変更 デバッグ実行時は --no-pause-isolates-on-exit が自動付与 テストスクリプトで期待通りに終了しないケースがあるので確認

Dart 3 は Flutter 3.19 の最小サポートバージョン です。既存プロジェクトをアップグレードする際は、pub upgrade --major-versions を実行し、dart analyzeflutter test で全体の整合性を確認してください。


IDE の推奨設定(VS Code / Android Studio)

IDE が提供するコード補完・デバッグ機能は開発速度に直結します。この章では、Flutter & Dart 拡張のインストール → デバイス/エミュレータ認識確認 → Hot Reload/Restart の正しいキー設定 までを順番に解説します。

VS Code の初期設定

  1. 拡張機能
  2. Flutter(公式)
  3. Dart(自動でインストールされます)

  4. デバッグ構成の確認
    Run > Add Configuration... で生成された .vscode/launch.json が以下のようになっているかチェックします。

  1. Hot Reload / Hot Restart のデフォルトキー
操作 デフォルトキーバインド
Hot Reload r (ターミナル上)または Ctrl+Shift+F5(デバッグビューのボタン)
Hot Restart R (ターミナル上)または Shift+F5(デバッグビュー)

キーがカスタマイズされている場合は、Keyboard Shortcuts (Ctrl+K Ctrl+S) で「Flutter: Hot Reload」・「Flutter: Hot Restart」を検索し、目的の組み合わせに変更してください。

Android Studio の初期設定

  1. プラグイン
  2. Flutter → 自動的に Dart が有効化されます。

  3. AVD / iOS シミュレータのリンク確認
    Tools > Flutter > Open Android Emulator、もしくは Run > Select Device でデバイスが一覧表示されることを確認します。

  4. Hot Reload / Hot Restart のデフォルトキー

操作 デフォルトキーバインド
Hot Reload Ctrl+\\(Windows/Linux)または ⌘+\(macOS)
Hot Restart Shift+F10(Windows/Linux)または ⇧+⌘+R(macOS)

注意:Android Studio のツールバーにも「Flash」アイコンがあり、クリックで同等の操作が可能です。


ウィジェットの基本概念と Stateless / Stateful の使い分け

Flutter の UI は ウィジェットツリー と呼ばれる階層構造で描画されます。このセクションでは、ツリーの生成プロセスと状態管理の観点から StatelessWidgetStatefulWidget を選択すべきタイミングを示します。

ウィジェットツリーとビルドプロセス

ウィジェットは不変(immutable)オブジェクトで、build() が呼ばれるたびに 新しい子ウィジェットのインスタンス が生成されます。フレームワークは前回のツリーとの差分を計算し、最小限の描画指示だけを GPU に送ります。この差分更新が高速な UI 体験の根幹です。

StatelessWidget と StatefulWidget の選択基準

  • StatelessWidget
  • プロパティのみで表示が決まるシンプル UI(アイコン、固定テキストなど)に適しています。
  • 再描画は外部から渡された新しいインスタンスが作られたときだけ発生します。

  • StatefulWidget

  • ユーザー操作や非同期処理で内部状態が変化する場合に使用します。setState() が呼ばれると、該当 State オブジェクトの build() が再実行されます。

ベストプラクティス:状態は可能な限り UI の外部(Provider、Riverpod など)へ切り出し、ウィジェット自体は StatelessWidget に保つことでテスト容易性とパフォーマンスが向上します。


カスタムウィジェット作成のベストプラクティス

独自コンポーネントを実装する際に意識すべきポイントは const コンストラクタkey の受け渡し、そして Composition による再利用性 です。以下では可読性とパフォーマンスの両立を目指したコード例を示します。

const コンストラクタと key の正しい扱い

  • const が付くことで コンパイル時にウィジェットが確定 し、再描画コストが削減されます。
  • key はリストやアニメーションで要素位置が変わるときの識別子として必須です。

Composition による汎用レイアウト例

  • headerbody を外部から差し替えるだけで、通知カード・プロフィールカードなど多様な UI に流用できます。
  • Composition は「単一責任」原則を自然に満たす設計手法です。

setState の安全な使用と最小化テクニック

setState() は UI 更新の入り口ですが、過剰に呼び出すと描画コストが増大します。ここでは mounted チェック状態分割 によるパフォーマンス改善手法を紹介します。

mounted の確認と非同期処理

  • mountedfalse の場合は UI がツリーから外れているため、setState() を呼んでも例外が発生しません。

状態分割による setState の削減

  • ValueNotifier が変化したときだけ CounterButton が再描画され、他のウィジェットは影響を受けません。
  • 大規模アプリでは ProviderRiverpodChangeNotifier 系も同様に有効です。

カスタム描画:CustomPainter と RenderObjectWidget

高度な UI(グラフ、ゲーム UI、カスタムトランジション)を実装する場合は CustomPainter または RenderObjectWidget を活用します。以下では基本的な実装パターンとアクセシビリティ対応方法を示します。

CustomPainter の最小実装

  • shouldRepainttrue を返すときだけ再描画が走ります。プロパティが変わらない限り、Flutter は同じペインターを使い回します。

RenderObjectWidget の概要

  • performLayout でサイズを決定し、paint で実際の描画処理を記述します。大量アイテムのリストや独自レイアウトエンジンが必要なケースに有効です。

アクセシビリティとテーマ対応

  • Theme.of で全体デザインに合わせ、Semantics によってスクリーンリーダー向けの説明文を付与します。

テスト・パッケージ化・次のステップ

作成したウィジェットは unit test / golden test / integration test で品質を担保し、必要に応じて pub.dev に公開できます。

widgetTest と golden test の例

integration test のベーシックフロー

パッケージ公開までの手順

  1. pubspec.yamlenvironmentsdk: ">=3.0.0 <4.0.0" と記載し、Dart 3 を明示。
  2. dart pub publish --dry-run でエラーを事前チェック。
  3. GitHub リポジトリにコードをプッシュし、flutter pub publish(もしくは dart pub publish) で公開。

ヒント:README にインストール例と簡単なサンプルコード(上記の MyBadge など)を掲載すると利用者が増えやすくなります。


まとめ

この記事では、Flutter 3.19 と Dart 3 の正しいインストール手順 → IDE 設定 → 基本ウィジェット概念 → カスタムウィジェット実装 → パフォーマンス最適化 → テスト・公開 までを体系的に解説しました。
- flutter doctor 後は必ず提示された依存ツールをインストールし、iOS 開発は macOS のみで行うこと。
- Hot Reload/Restart のデフォルトキーは VS Code が r/R(ターミナル)/Android Studio が Shift+F10 など実際のショートカットを使用してください。
- Dart 3 の新機能に目を通し、既存コードの互換性チェックを忘れずに。

これらの手順を踏めば、最新環境で安定した Flutter アプリ開発がすぐに始められます。ぜひ実際にプロジェクトを作成し、独自ウィジェットやパッケージ化に挑戦してみてください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Flutter