AIをエージェントとして活用し、Flutter開発を学び、加速させるための実践的なレシピ集。
AIは「ペアプログラマー」から「エージェント」へと進化しました。Cursor, Claude Code, Antigravityなどのツールにより、初心者でもAIに開発を任せられる時代になりました。コードを一緒に書く時代から、タスクを任せて設計と判断に集中する時代へ。このCookbookは、その新しい開発スタイルを探求し、知見を共有する場所です。
プログラミング初心者から経験豊富な開発者まで、AIとの協働に興味があるすべての人を歓迎します。
このai-x-flutter/cookbookは、「AIと協力して、一体どうすれば質の高いアプリを効率的に開発できるのだろう?」という、私自身の素朴な問いから始まりました。
当初、私はChatGPTやGoogle AIをパートナーとして、数百回にわたる対話を重ねました。このCookbookの初期バージョンは、その長い対話の結晶です。
2025年後半、AI開発ツールは大きく進化しました。コードを一緒に書く時代から、タスクを任せて設計と判断に集中する時代へ。
この転換で見えてきたのは、コーディングエージェントに必要な能力は、難しい問題を解く能力ではないということです。
一番困るのは、ハルシネーションを起こして、それでコードを書き換えてしまうこと。そして、古い記憶を「正解」として押し付け、最新のAPIを無視してしまうこと。エージェントには、記憶に頼らず新しいドキュメントを読み解く能力と、「分からないことは分からない」と言える誠実さが求められます。
だからこそ、正確性と信頼性が重視されるClaudeがコーディングで選ばれています。現在、このCookbookはClaudeとの協働で更新を続けています。
AIとの協働でアプリを開発する中で、もう一つ重要な気づきがありました。それは、Riverpod等の高機能パッケージを避けることです。
高機能なパッケージほど、AIはハルシネーションを起こしやすくなります。複雑なAPI、頻繁なバージョン変更、抽象化されたパターン。これらがAIの「古い記憶」と衝突し、動かないコードや既存コードの破壊を引き起こします。
このCookbookが「小さな自己完結型Widget」を推奨するのは、この経験に基づいています。シンプルな構造は、人間にもAIにも優しい。依存関係が少ないほど、AIは正確に動作します。
私は「編集長」として問いを立て、方向性を示し、AIからの提案を吟味・修正してきました。AIは「優秀な共著者」として、膨大な知識から瞬時に回答とコードを生成し、時には私自身も気づかなかった視点を提供してくれました。
このCookbookは、単にAIとの開発手法を解説するだけでなく、その制作プロセス自体が「AIと人間がどのように協力して、新しい価値を創造できるか」という実験でもあります。
どうか、このレシピ集をあなたの学習に役立ててください。そして、あなたもAIとの対話を通じて得た新しい発見があれば、ぜひPull Requestを送ってください。それもまた、この対話の続きとなるのですから。
- AIとの対話術: Cursor, Claude Code, Antigravityから、意図通りのコードやアイデアを引き出すための具体的なプロンプト技術と開発ワークフロー。
- シンプルな設計: Flutterの標準機能を活かした「小さな自己完結型Widget」による、AIフレンドリーな状態管理。
- モダンな開発ワークフロー: CI/CD(GitHub Actions)など、現代的なアプリ開発に不可欠な技術を、AIの助けを借りて効率的に実装する手順。
- 実践的なトラブルシューティング: 誰もが遭遇するエラーの原因を理解し、AIと共に解決していくための具体的な手法。
このCookbookは、あなたが料理の腕を上げていくように、ステップバイステップで学べる構成になっています。
開発を始めるための全ての準備を整えます。
- #1-1: Flutter開発環境の準備
- #1-2: AI開発ツールの導入 - Cursor, Claude, Claude Code
- #1-3: 最初のFlutterアプリ作成とプロジェクト探検
- #1-4: iOS開発の準備とセットアップ
- #1-5: アプリのIDとアセットの準備
- #1-6: 自分のプロジェクトをGitHubで管理する
- #1-7: GitHub CLIでPCを認証する
アプリの「骨格」となる、Flutterの基本的な考え方を学びます。
- #2-0: はじめに - なぜ概念を学ぶのか
- #2-1: Flutterの心臓部「ウィジェット」とは何か?
- #2-2: 状態管理(State Management)とは何か?
- #2-3: 非同期プログラミング(Futureとasync/await)
- #2-4: 画面遷移の基本(Routing)
- #2-5:
BuildContextとは何か? - ウィジェットの「現在地」 - #2-6: ゲーム開発で学ぶFlutterの基本的な考え方
AIと共に、一つのアプリをゼロから完成させるまでの開発フローを体験します。
- #3-1: AIと決めるシンプルなプロジェクト構成
- #3-2: AIと対話しながらUIを構築する
- #3-3: AIと実装するロジックと状態管理
- #3-4: AIによるデータ永続化の実装
- #3-5: AIを擬似サーバーにして、API通信を実装する
- #3-6: AIによる最終コードレビューと品質向上
- #3-7: 手動でのリリースとストア公開
- #3-8: Androidビルドの自動化 with GitHub Actions
- #3-9: iOSビルドの自動化 with GitHub Actions
- #3-10: iOSビルドの自動化 with Xcode Cloud
Cursor + Claudeを使った実践的な開発パターンとベストプラクティス。
- #4-1: Cursorを使った効率的な開発ワークフロー
- #4-2: なぜRiverpodを避けるべきか - 個人開発 × AI時代の状態管理
- #4-3: 自己完結型Widgetパターン
- #4-4: Serviceクラスパターン - ビジネスロジックの分離
- #4-5: Cursor + Claudeでシンプルなアプリを作る(メモアプリ)
- #4-6: Google Antigravityを試す(注意点付き)
- #4-7: 実践 - Cursorで完全なTODOアプリを作る
- #4-8: 実践 - APIを使ったニュースアプリを作る
- #4-9: AIのトークン消費を抑える実践テクニック
Cursor + Claudeで作る、高度な機能を持つ実用的なアプリのケーススタディ集。
- #5-0: はじめに - PM的能力がある非開発者のための本格開発
- #5-1: AIチャットアプリを作る - Claude API / Gemini API連携
- #5-2: 画像認識カメラアプリを作る - ML Kit / TFLite活用
- #5-3: リアルタイム共有メモアプリを作る - Supabase Realtime
- #5-4: レスポンシブデザインの基礎 - あらゆる画面サイズに対応する
- #5-5: デスクトップアプリを作る - Windows / macOS / Linux対応
- #5-6: Webアプリを作る - ブラウザで動くFlutterアプリ
- #5-7: テキストサイズ変更への対応 - ダッシュボードとアクセシビリティ
オープンソースへの貢献、チーム開発、そしてBYOA開発(自分で課題を解決する新しい形)を学びます。
- #6-1: 他の人のリポジトリをFork & Cloneする
- #6-2: Pull Requestで本家に貢献する
- #6-3: マージコンフリクト(競合)を解決する
- #6-4: BYOA開発とは - 自分たちで課題を解決する新しい形
- #6-5: 【事例研究】育児・発達支援アプリをBYOAで開発する
- #6-6: 【事例研究】チャットだけで自分用のWebアプリを作る
- #6-7: コラボレーションでアプリを進化させる
- #6-8: MCP(Model Context Protocol)でClaudeを拡張する
- #6-9: 実践的なMCP活用でBYOAアプリを進化させる
開発中によく遭遇する問題とその解決策。困った時に開いてください。
- #7-1:
Could not read workspace metadataエラーを解決する - #7-2: Flutterビルドエラー上級編
- #7-3:
Null check operator used on a null valueエラーを理解する - #7-4: AIとの開発で起こる典型的なトラブルと対処法
AIと共に、Flutterアプリのためのバックエンド(BFF)をDartで構築します。
- #8-1: なぜDartでバックエンドを作るのか? (BFFの概念)
- #8-2: Dartバックエンドフレームワークの選定
- #8-3: AIと作るシンプルなREST API (Dart Frog編)
- #8-4: FlutterアプリとDartバックエンドでコードを共有する
- #8-5: AIと創るフルスタック認証 (Serverpod編)
- #8-6: AIと実装するリアルタイム通信 (WebSocket編)
- #8-7: AIとデプロイするDartバックエンド (Cloud Run編)
コーディングを始める前に、AIと共にアプリの「魂」を設計します。
- #9-0: はじめに - なぜ設計が重要か
- #9-1: AIと創るデザインシステム
- #9-2: AIと定義するユーザーペルソナとユーザーストーリー
- #9-3: AI x Flutter時代のキャリアパスを設計する
このCookbookは、コミュニティと共に成長していきます。 新しいレシピの提案、誤字脱字の修正、より良い説明のアイデアなど、どんな小さな貢献も大歓迎です。IssueやPull Requestをお気軽にお送りください!
このリポジトリは、コンテンツの性質に応じてライセンスを使い分けています。
docs/ディレクトリに含まれるすべてのドキュメント(文章、マニュアル)は、Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0) の下でライセンスされています。
このライセンスは、このCookbookの知識が、常にオープンな形でコミュニティに共有され、発展し続けることを保証するためのものです。このドキュメントを元に派生作品を作る場合は、同じライセンスで公開してください。
examples/ディレクトリに含まれるすべてのサンプルコードは、Creative Commons Zero v1.0 Universal (CC0 1.0) の下で、パブリックドメインに提供されています。
これは、あなたがCookbookで学んだコードを、いかなる制約もなく、著作権表示の義務すらなく、商用・非商用を問わず、あらゆるプロジェクトで完全に自由に、そして安心して再利用できるようにするためです。