第19章:AIで開発を加速する 🛸💻🤖✨(Antigravity / Gemini CLI / Firebase AIも総動員!)
この章は「AIに“作業を任せる”→人間が“判断する”」の型を作る回です🙂✨ 1回ここを体験すると、以後の章ぜんぶが速くなります🚀💨
1) この章でできるようになること 🎯✨
- UI部品(ボタン・カード・テーブル周り)を AIに量産させる 🧱🧩
- 既存コードの リファクタ案 → 差分レビュー → 適用 を “流れ作業” にする 🧼🔁
- テストの叩き台(最低限)を作って、壊してない自信を得る 🧪✅
- Firebase AI(AI Logic)に入れる プロンプトや入出力仕様を整える 🧠📦
2) まず「AIに任せる範囲」を決めるコツ 🧭🤝
AIって万能そうに見えるけど、得意・不得意がハッキリしてます😇
AIに任せると爆速になるやつ ⚡
- 雛形づくり(UIコンポーネント、hook、型、テストの骨組み)🧱
- “こういう時どう書く?” の提案(状態管理、分割、命名)🧠
- エラーの原因候補の列挙&切り分け手順 🧯
- ドキュメントの要点まとめ(公式仕様の読み取り)📚
人間が絶対に握るやつ(ここ重要)🧨
- 仕様の最終判断(何をどう見せるか)👀
- セキュリティ(権限・認可・秘密情報)🔐
- 差分レビュー(どのファイルに何を足したか)🧾
- “運用しやすさ”(将来メンテできるか)🛠️
3) 今回使う3つの“加速エンジン” 🚀🧰

A. Google Antigravity:ミッションで「まとめて作らせる」🎮🤖

Antigravityは、エージェントを管理する Mission Control を持っていて、計画→実装→検証までをまとめて進めやすい設計です。ブラウザで調べ物しながら作業もできます。(Google Codelabs) (Windows向けも用意されています。(Google Codelabs)) ※ Google 製のエージェント系開発環境です。
B. Gemini CLI:ターミナルで「差分作業&自動化」⌨️🧠

Gemini CLIは、ターミナルから使える オープンソースAIエージェントで、ReActループ(考える→実行→検証)で作業します。MCPサーバーにも対応しています。(Google Cloud Documentation) Cloud Shellでは追加セットアップ無しでも使える案内があります。(Google Cloud Documentation)
C. Firebase Studio:環境をNixで固定して「再現性で勝つ」🧊📦
Firebase Studioは、Nixでワークスペース環境を定義できて、同じ環境をみんなで再現しやすいのが強みです。(Firebase)
4) ハンズオン:AIで“UI部品量産 → リファクタ → テスト”を通す 🏃♂️💨
ここからは、あなたの管理画面アプリを想定して進めます📊✨ (例:Users一覧ページ、詳細フォーム、画像アップロード、AI整形ボタン…など)
Step 0:AI作業の前に「安全ベルト」を締める 🧷✅
最低これだけやると、AI作業が怖くなくなります🙂
git statusがクリーンか確認(未コミットが多いと事故りやすい)🧹npm test/npm run buildが通る状態にしておく 🔧✅- 1回のAI依頼は “小さく”(1コンポーネント、1リファクタ、1テスト)📦
Step 1:Antigravityに「UI部品を3つまとめて」作らせる 🧱🤖✨

目的:コピペ地獄をなくす🔥 おすすめの量産セットはこれ👇
EmptyState(0件表示)🫙LoadingOverlay(読み込み中)⏳ConfirmDialog(削除など危険操作)⚠️
✅ Antigravity “ミッション文”テンプレ(そのまま貼ってOK)📝
目的:
管理画面アプリに共通UI部品を追加したい。EmptyState / LoadingOverlay / ConfirmDialog を実装して。
制約:
- TypeScript + React の既存構成に合わせる
- Tailwind v4系のクラスで見た目を整える
- propsは型安全に(any禁止)
- アクセシビリティ(ボタンのラベル、dialogのフォーカス)も意識
成果物:
- components/common/EmptyState.tsx
- components/common/LoadingOverlay.tsx
- components/common/ConfirmDialog.tsx
- 使い方例を pages/users/UserListPage.tsx に1箇所だけ入れて
- 既存のUIルール(角丸/余白/色)を壊さない
最後に:
- どんな差分を入れたか要約して
- 動作確認手順(画面で何を見ればOKか)を書いて
Antigravityは “指示→エージェントが動く” 体験が中心なので、成果物と差分要約を必ず出させるのがコツです🧠✨(Google Codelabs)
Step 2:Gemini CLIで「リファクタ案→差分確認→適用」まで回す 🔁🧼🧠

目的:第7章でやった loading / error / data の三兄弟を、ページごとにバラバラにしない😵💫➡️統一🙂✨
✅ 例:Firestore一覧取得をカスタムhookに寄せる
- いま:
UserListPage.tsxに取得処理がベタ書き - これから:
hooks/useUsers.tsに寄せる
Gemini CLIに投げる“依頼文”テンプレ 🧾
次の方針でリファクタして:
- UserListPage.tsx の Firestore取得処理を hooks/useUsers.ts に移動
- return は { data, loading, error, refresh } に統一
- loading/error/empty の表示は共通部品(LoadingOverlay / EmptyState)を使う
- 変更は最小限、UIの見た目は維持
- まず差分案を提示して、OKなら適用
最後に:npm test と npm run build の実行手順を書いて
Gemini CLIは、ターミナルやファイル操作などの “道具” を使いながら作業する設計(ReAct)で、MCPサーバーも扱えます。(Google Cloud Documentation) なので「差分を先に出して」がめちゃ効きます💡
🧠(一旦ここだけ覚えればOK)“AI差分運用”の鉄則3つ
- 提案→差分→適用 の順にする(いきなり全書き換え禁止)🛑
- 変更ファイル数を絞る(多いとレビュー破綻)📉
- 通ったらすぐ小さくコミット(戻れるのが正義)🧷
Step 3:テストの叩き台をAIに作らせて“壊してない自信”を手に入れる 🧪✅✨
テストって最初むずいんだけど、AIに “型” を作らせると楽になります🙂 おすすめはこの順👇
- 純関数(utils)→ テスト簡単🍬
- hook → 少し難しいけど効果大🧠
- UI → 慣れてからでOK👍
テスト依頼テンプレ(hook向け)🧪
hooks/useUsers.ts に対して、最低限の単体テストを追加したい。
- 正常系:dataが返るとき loading=false になる
- 異常系:例外時に error が入る
Firestore部分はモックでOK。
テストフレームワークは既存プロジェクトの方針に合わせて提案して。
Step 4:Firebase AI(AI Logic)で“プロンプトを仕様化”しておく 🧠📐🤖

第18章でAIボタンを作ってるので、この章ではさらに一歩進めて AI出力の形を固定します✨ Firebase AI Logicは、アプリからGemini/Imagenモデルにアクセスするための仕組みを提供しています。(Firebase)
ここでやると強いこと 💪
-
プロンプトを「日本語でふわっと」→「入力/出力のルールあり」にする📏
-
例:日報整形なら
- 入力:自由文
- 出力:
title / summary / bullets / actionItemsみたいな形に寄せる📦
“プロンプト仕様”テンプレ(例:日報整形)📝
あなたは文章編集アシスタントです。
入力:日本語の作業メモ(雑でOK)
出力:次のJSON形式で返してください
- title: 15〜30文字
- summary: 80〜140文字
- bullets: 箇条書き5個まで
- actionItems: 次やること3個まで
制約:誇張しない。数字や固有名詞は入力にあるものだけ使う。
これをやると、UI側が作りやすくなって「AI結果を確認して反映」が安定します🙂✅
5) “AIがクラウド側のコードを出してきた時”のバージョン注意 ⚙️📌

AIが「Functionsも直しといたよ!」ってノリで書いてくることがあるんですが…そこで事故ります😇💥 最低限ここだけ見ておくと安全です👇
- Cloud Functions for Firebase のNodeランタイムは Node.js 22 / 20、18はdeprecated の案内です。(Firebase)
- Node.jsのリリース状況として、v24がActive LTS、v25がCurrent になっています(2026-02-09更新)。(nodejs.org)
- .NETは .NET 10がLTS(2026-02-10時点で 10.0.3)。(Microsoft) ※ Microsoft
- Pythonは 3.14系が安定版として提供され、3.14.3や3.13.12が配布されています(2026-02-03付近)。(Python.org)
6) ミニ課題 🎯🔥(30〜45分)
次のどれか1つやればOKです😆✨
- Users一覧ページに、
EmptyState / LoadingOverlay / ConfirmDialogをちゃんと組み込む🧩 - Firestore取得を
useUsers()に寄せて、loading/error/dataを統一する🔁 - AI整形ボタンの出力を JSON形式に寄せるプロンプト仕様を作って、UIに反映する📦🤖
7) チェック✅(ここ通ったら勝ち🏆)
- 変更は小さく、差分が追える🧾✅
npm run buildが通る🔧✅- ローディング/エラー/0件が全部“無言”にならない😇✅
- AIの提案をそのまま採用せず、命名・責務・安全性を見直せた👀✅
- AI出力(文章整形など)が“確認して反映”になっている🧠✅
必要なら、この第19章のハンズオンを「あなたの今のフォルダ構成(components/pages/hooks/services)」に合わせて、具体的なファイル名で“作業指示書”形式にして出します📋✨
(例:pages/users/UserListPage.tsx を起点に、どこへ何を移すかまで全部書くやつ😆)