全Flutterガイド
カテゴリ別に整理されたFlutter開発ガイド
🚀 入門
🎯 Dart言語
Dart紹介
Googleが作ったクライアント最適化プログラミング言語
Dartはすべてのプラットフォームで高速かつ安定したアプリ開発のためにGoogleが設計したオブジェクト指向言語です。すべてがオブジェクトで、強力な型システムとNull Safety、JIT+AOTコンパイルをサポートします。
Dart基本文法
変数宣言、文字列、演算子、Null Safety基礎
Dartプログラムはmain()から始まります。var/final/const/late/dynamic変数宣言、文字列補間、Null Safety(?/!/??)、カスケード(..)演算子等のコア文法を整理します。
Dart型システム
静的型、型推論、ジェネリクス、typedef
Dartは静的型言語でコンパイル時に型検査を行います。型推論、is/asキャスト、型プロモーション、ジェネリクス、typedefを扱います。
Dartクラス&OOP
コンストラクタ5種、継承、インターフェース、Mixin、ファクトリパターン
Dartは完全なオブジェクト指向言語です。5種コンストラクタ、extends/implements/withによる継承・インターフェース・Mixin、ファクトリパターンで柔軟なクラス設計ができます。
Dartコレクション
List、Set、Map + スプレッド、コレクションfor/if
Dartの3大コレクション — List(順序あり重複可)、Set(重複不可、集合演算)、Map(キー値ペア)。スプレッド、コレクションfor/if、メソッドチェーンで強力なデータ処理が可能。
Dart非同期プログラミング
Future、async/await、Stream、FutureBuilder
ネットワーク要求、ファイルI/O等の時間がかかる作業でUIが止まらないよう処理。Future(単一結果)とStream(連続イベント)、async/awaitで非同期を同期風に記述。
Dart例外処理
try-catch-finally、onタイプ別処理、rethrow
DartはException(復旧可能)とError(復旧不可)を区別します。try-catch-finally、onタイプ別処理、rethrow、非同期例外処理を整理します。
Dart Extension
既存クラスにメソッド/プロパティを追加
Extensionは原本ソース修正や継承なしに既存クラスに新しいメソッド・プロパティ・演算子を追加します。Stringにcapitalize、intにisPrime、Listにdistinctを追加可能。
Dart Records&パターンマッチング
Dart 3.0 — 多値返却、分割代入、switchパターン
Dart 3.0で導入されたRecordsは、クラスなしで複数の値をグループ化する不変型です。パターンマッチングと組み合わせればswitch/if-caseで型と条件を同時検査できます。
🎨 ウィジェット&UI
ウィジェットツリーを理解する
Flutter UIの根本 — 全てはウィジェット
Flutterではボタン、テキスト、パディング、配置すべてがウィジェットです。Widget → Element → RenderObject、3つのツリーがUIを構成する原理を理解しましょう
StatefulWidget vs StatelessWidget
状態の有無によるウィジェット選択基準
変わらないUIはStatelessWidget、ユーザー操作で変わるUIはStatefulWidget — 正しい選択がパフォーマンスと構造を決定します
Flutterレイアウトシステム
Row、Column、Stack、FlexでUI配置
Constraints go down, Sizes go up, Parent sets position — Flutterレイアウトの3大規則を理解すれば、どんなUIも自在に配置できます
🔄 状態管理
🗺️ ナビゲーション&ルーティング
📦 実践&デプロイ
REST API連携
http/dioでサーバーとデータ通信
httpまたはdioパッケージでREST APIを呼び出し、JSONシリアライズ/デシリアライズでDartオブジェクトとマッピングする実践ガイド
アプリストアデプロイ
iOS App Store + Google PlayにFlutterアプリを公開
アプリ署名、ビルド設定、ストア登録、審査対応まで — FlutterアプリをiOS App StoreとGoogle Playに公開する全プロセス
プラットフォームチャネル
FlutterからネイティブコードSwift/Kotlin呼び出し
カメラ、Bluetooth、NFCなどネイティブ機能が必要な時、MethodChannelを通じてSwift(iOS)/Kotlin(Android)コードと通信する方法