コンテンツにスキップ

AI Session Notes - 2026-02-14

Google Antigravity IDE の概要

学んだこと

  • Google Antigravity はVS Codeをフォークしたエージェント特化のIDE(「Agent-First IDE」)
  • テキスト編集よりもエージェント管理が中心の設計思想
  • バックエンドはGemini 3だが、Claude Sonnet 4.5やGPT-OSSもモデルとして選択可能
  • 現在パブリックプレビュー中で、個人のGmailアカウントがあれば無料で利用できる
  • Homebrewからインストール可能(brew install --cask antigravity)。CLIコマンドは agy
  • ダウンロード元は edgedl.me.gvt1.com(Googleのエッジ配信サーバー)で、Chrome等と同じGoogle公式インフラから配布されている

Antigravity独自の機能

  • Agent Manager — 複数のAIエージェントを同時に走らせて並列作業を管理できるGUI
  • Artifacts — エージェントがタスクリスト・実装計画・スクリーンショット等の成果物を生成し、ドキュメントのようにコメントを残せる
  • Plan-first — コードを書く前に詳細な実行計画を可視化する

AIコーディングツールのポジション比較

学んだこと

  • Gemini CLI ≒ Claude Code — どちらもターミナルで1エージェントと対話するCLIツール。体験はほぼ同じ
  • Antigravity ≠ Gemini CLI — AntigravityはGemini CLIの上位互換ではなく、複数エージェントのGUI管理という別レイヤーのツール
  • Claude Codeでもバックグラウンドエージェント・Task tool・claude -pで複数タスクの並列実行は可能。機能的な差はAntigravityの可視化(GUI)にある
  • Neovim + Claude Code の組み合わせで不満がなければ、Antigravityに乗り換える動機は薄い。Antigravityは「Geminiエコシステムに寄せたい人」「GUIでエージェント管理したい人」向け

VS Code系IDEでのVimモード管理

学んだこと

  • VS Codeフォーク系IDE(Antigravity等)には初回セットアップでVimモードを選ぶオプションがあるが、これはキーバインドのエミュレーションで、既存のnvim設定(init.lua等)は使えない
  • 既存のnvim設定を活かしたい場合は vscode-neovim 拡張を使う。実際にNeovimをバックエンドとして動かすため、設定がそのまま反映される
  • Vimモードを無効化するには Cmd + Shift + P → 「Toggle Vim Mode」、または設定JSONで vim.enable: false、または拡張機能パネルからDisable
  • Vimモードがターミナル表示のショートカット(Ctrl + `)を奪うことがある。代替として Cmd + J でターミナルパネルをトグルできる

VS Code拡張の信頼性の判断基準

学んだこと

  • VS Code Marketplaceはマルウェアスキャンを通過した拡張のみ公開される
  • Verified Publisher(青チェックマーク)は、ドメイン認証済み・6ヶ月以上良好な実績を持つ発行者に付与される。個人開発のOSS拡張にはついていないことも多い
  • 信頼性の判断材料:ダウンロード数(多いほどコミュニティの目が入っている)、レーティングGitHubでソース公開されているか最終更新日
  • Verified Publisherがなくてもダウンロード数が多くソースが公開されている拡張は、実用上問題ないケースがほとんど

自分専用ブログにDBは必要か

学んだこと

  • 一般的なブログサービスにRDBが必要な理由は、複数ユーザーの管理・記事とユーザーの紐付け・コメントやいいね等のユーザー間リレーションがあるため
  • 自分しか使わないブログであれば、これらの要件がすべて不要なのでDBすら不要
  • 最適解はMarkdownファイル + 静的サイトジェネレーター(Hugo, Astro, Jekyll等)
  • 記事の実体はMarkdownファイルで、Gitで管理し、エディタで直接書ける

Cloudflare Pagesのビルドパイプライン

学んだこと

  • Cloudflare Pagesはただの静的ファイル置き場ではなく、ビルドパイプラインを持っている
  • GitHubリポジトリへのpushを検知 → 設定されたビルドコマンド(例: hugo)を実行 → 生成されたHTMLを自動デプロイ、という流れが自動で行われる
  • 設定するのは「ビルドコマンド」と「出力ディレクトリ」の2つだけ
  • 自分のPCではMarkdownを書いてpushするだけで、ビルドはCloudflare側で行われる

Cloudflare Pagesのファイルサイズ制限と動画の扱い

学んだこと

  • Cloudflare Pagesの1ファイルの上限は25MB。ファイル数は無料で20,000、有料で100,000
  • 動画ファイルは25MBをすぐ超えるため、Cloudflare Pagesでの配信には向かない
  • Gitリポジトリにバイナリ(動画)を入れるとリポジトリが肥大化し、pushも遅くなる
  • 動画を扱いたい場合は外部サービスに逃がす:YouTube(限定公開)が最も手軽でコストゼロ。Cloudflare R2(10GB/月まで無料)やCloudflare Stream(有料)も選択肢
  • ユーザーにメディアアップロードを許可する仕組みは、容量・帯域コストが予測不能になるため趣味レベルのアプリでは避けたほうが良い

静的サイトのURL設計

学んだこと

  • 静的サイトジェネレーターではファイルパスがそのままURLになるため、URLは一度公開したら変えないのが鉄則
  • URLが変わると外部リンクの404化、検索インデックスの無効化、SNSでの共有リンク切れが発生する
  • front matterで slug を明示指定すれば、ファイル名を変えてもURLを固定できる
  • スラッグは英語のケバブケース(my-first-post)が無難。日本語URLはエンコードされて長くなる
  • 固定すべきはURLだけ。タグ・タイトル・カテゴリ等のメタデータは後からいくらでも変更可能

静的サイトのタグと検索機能

学んだこと

  • タグはfront matterで管理するためURLに影響せず、後から自由に追加・変更できる
  • 静的サイトジェネレーターはビルド時にタグ別一覧ページ(/tags/firebase/ 等)を自動生成する
  • フリーワード検索は静的サイトの標準機能にはない。事前生成されたHTMLを配信するだけなので、動的な検索処理ができない
  • 検索を追加したい場合はPagefindがおすすめ。ビルド時に検索インデックスを生成し、サーバー不要で動作する
  • 個人ブログ規模ならタグ一覧で十分。検索が必要になるのは記事数百本を超えたあたりから

静的サイト vs ブログサービスの使い分け

学んだこと

  • 静的サイトではできないことがある:コメント欄、お問い合わせフォーム、ブラウザだけでの記事執筆、予約投稿(標準では)
  • 画像が多い趣味ブログ(ゲーム・アニメ・映画の感想等)はブログサービスの方が向いている
  • 技術ブログでフィードバック(マサカリ)が欲しい場合、個人ブログよりZennやQiitaの方がコメント文化がある
  • ZennはGitHubリポジトリから記事管理でき、Markdownで書き溜める運用とフィードバック受信が両立できる
  • 用途に応じた使い分けが現実的:技術系→Zenn/Qiita、趣味系→note/はてなブログ、自分用→TILリポジトリ

Movable Type(MT)形式

学んだこと

  • Movable Type形式は、ブログサービス間のデータ移行で広く使われているテキストベースのデータ交換フォーマット
  • 元はMovable Typeというブログソフトのエクスポート形式だが、シンプルさから多くのサービス(はてなブログ、WordPress、Livedoor等)が対応している
  • Hugo → MT形式の変換は標準機能にはないが、front matterを読み替えるだけなので簡単なスクリプトで対応可能
  • 逆(MT形式 → Hugo)はHTML→Markdown変換が必要でやや面倒
  • Markdownで記事を書き溜めておけば、どのフォーマットにも変換しやすく移行の柔軟性が高い

Gmailエイリアスの仕組みと制限

学んだこと

  • Gmailはメールアドレスの +文字列.(ドット)を無視する仕様で、すべて同じ受信トレイに届く
  • user+dev@gmail.comuser@gmail.com と同じ
  • u.ser@gmail.comuser@gmail.com と同じ
  • + エイリアスはGmailのフィルタ条件に使いやすく、メール整理に便利
  • ただし + を含むメールアドレスを不正な形式として弾くサービスが多い(X、Zenn等)
  • . エイリアスの方がサービス側で弾かれにくいが、Gmailがドットを無視するためフィルタ条件に使いづらい
  • OAuth(Googleログイン)を使うサービスではエイリアスの概念がそもそも関係ない

Gmailの受信トレイ整理

学んだこと

  • Gmailにはカテゴリタブ機能があり、メイン・ソーシャル・プロモーション・新着・フォーラムの5つに自動振り分けされる
  • タブは5つ固定で、自分でカスタムタブを追加することはできない
  • より細かい振り分けが必要な場合はラベル + フィルタを使う
  • フィルタの管理は 設定 →「フィルタとブロック中のアドレス」タブから確認・削除できる
  • ラベルの管理は 設定 →「ラベル」タブから一括管理できるが、一括削除機能はない
  • 運用のコツ:まずカテゴリタブだけで回してみて、足りなければフィルタを最小限だけ追加する

Zenn CLIとGitHubリポジトリ連携

学んだこと

  • Zenn CLIは標準のnpmパッケージなのでpnpmでも利用可能npm installpnpm addnpxpnpm exec に読み替えるだけ
  • pnpm init にはnpmの --yes オプションがない。引数なしで実行すればデフォルトの package.json が対話なしで生成される
  • zenn init が生成するディレクトリ構成は articles/books/ の2つだけ。手動で mkdir しても同じ
  • 画像を使う場合は images/ ディレクトリをリポジトリ直下に追加する
  • 記事ファイル名がそのままURLのスラッグになるため、最初に決めたら変えないのが望ましい

Zenn CLIの機能範囲

  • CLIで作成できるのは記事(article)本(book)のみ
  • スクラップ(scrap)はCLI/GitHub連携では作成・管理できない。ブラウザのZenn上からのみ作成可能
  • ZennのログインはGoogleアカウントまたはメールアドレスのみ。GitHubログインは非対応(GitHub連携は記事管理の機能であってログイン手段ではない)

AWS vs GCPの個人利用比較

学んだこと

  • 個人の趣味開発ではGCP(Firebase)の方がAWSより始めやすい
  • Firebaseの無料枠(Sparkプラン)は恒久的な無料枠で、期限切れの心配がない。AWSの無料利用枠は多くが12ヶ月限定
  • Firebaseはフロントエンドから直接DBやAuthにアクセスできるため、サーバーレス関数を書かずに済むケースが多い。AWSは各サービスを自分で組み合わせる必要がある
  • GCPの課金体系はFirebaseコンソールから一元管理でき、予算アラートも簡単に設定可能
  • AWSは企業向けのサービスが充実しており、仕事で使うなら学ぶ価値が高い。個人開発の手軽さではGCP/Firebaseに軍配

Firebaseとモバイルアプリの相性

学んだこと

  • Firebaseは元々モバイルアプリ向けのBaaSとして設計されており、モバイルとの相性は非常に良い
  • モバイル向けの主要機能:Authentication(ソーシャルログイン)、Cloud Firestore(リアルタイムDB)、Cloud Storage(画像・動画の保存)、Cloud Messaging(FCM)(プッシュ通知)、Crashlytics(クラッシュレポート)、Analytics(利用分析)
  • iOS/Android両方に公式SDKが提供されており、FlutterやReact Nativeなどのクロスプラットフォームフレームワークにも対応
  • プッシュ通知(FCM)はFirebase特有の強みで、AWSで同等の機能を実現するにはSNS + Pinpointなど複数サービスの組み合わせが必要

Swift vs Flutterの違い

学んだこと

  • Swift — Apple公式の言語で、iOS/macOS専用のネイティブアプリを開発する。UIフレームワークはSwiftUI(またはUIKit)
  • Flutter — Google製のクロスプラットフォームフレームワークで、1つのコードベースからiOS・Android・Web・デスクトップアプリを生成できる。言語はDart
  • Swiftはネイティブなのでパフォーマンスが最高で、iOSの最新API(ARKit、HealthKit等)にいち早く対応できる
  • Flutterは1つのコードで複数プラットフォームに対応できるため、開発効率が高い。ただしOS固有の機能を使う場合はプラットフォーム別のコードが必要になることがある
  • 個人開発で「iOSだけでいい」ならSwift、「AndroidやWebにも出したい」ならFlutterが合理的
  • FlutterはFirebaseとの統合が公式にサポートされており(FlutterFire)、セットアップも簡単

イラスト投稿サイトにおけるFirestoreの適性と限界

学んだこと

  • FirestoreはドキュメントDBであり、画像ファイルそのものは保存できない。画像の実体はCloud Storage for Firebaseに保存し、FirestoreにはURLやメタデータ(タイトル、タグ、投稿者等)を持たせる
  • いいね・コメント等の機能もFirestoreで実現可能だが、フリーワード検索(タグ・タイトル横断検索)はFirestoreの苦手分野。完全一致やプレフィックス検索しかサポートしておらず、全文検索にはAlgolia等の外部サービスが必要
  • 「フォローしているユーザーの新着」「いいね数ランキング」のような複雑なリレーショナルクエリは、RDBならJOIN一発だがNoSQLでは設計が難しい
  • ギャラリー表示で1ページ20枚を表示すると20回の読み取りが発生し、閲覧者が増えると読み取り課金が急増するリスクがある
  • 規模による使い分け:自分だけ or 友人数人→Firebase、不特定多数に公開・検索あり→RDB + オブジェクトストレージの方が自然

静的サイトの多言語対応(i18n)

学んだこと

  • 静的サイトの多言語対応はホスティングサービス側ではなく、静的サイトジェネレーター側の機能で実現する
  • Hugo等には組み込みのi18nサポートがあり、content/en/content/ja/ のように言語別にコンテンツファイルを用意するとビルド時に /en/about//ja/about/ のようなURLで言語別HTMLが生成される
  • ビルド済みHTMLを配信するだけなので、ホスティング先はどこでも対応可能
  • ブラウザのAccept-Languageヘッダーによる自動リダイレクトはホスティングごとに差がある:Firebase Hostingはfirebase.jsoni18n設定で組み込みサポートあり、Cloudflare Pagesは自前実装(Workers等)が必要
  • 言語スイッチャーでユーザーが手動切り替えする形なら、ホスティングの違いは関係ない

Firebase Hosting vs Cloudflare Pagesの比較

学んだこと

  • デプロイ方法:Cloudflare PagesはGit push → 自動ビルド&デプロイ。Firebase Hostingはfirebase deployコマンドで手動(GitHub Actions等で自動化は可能だが自分で構築する必要がある)
  • ビルドパイプライン:Cloudflare Pagesは組み込み、Firebase Hostingにはない(ローカルや外部CIでビルドしてからアップロード)
  • 無料枠の差が大きい:Cloudflare Pagesは帯域無制限・サイト数無制限。Firebase Hostingは帯域360MB/日(≒10GB/月)・ストレージ10GB
  • CDN:Cloudflareは300都市以上のエッジネットワーク。Firebase HostingもGoogleのCDNで十分速いが拠点数は少ない
  • サーバーサイド処理:Cloudflare Workersはエッジ実行でコールドスタートほぼなし。Cloud Functionsはリージョン実行でコールドスタートあり
  • 使い分け:純粋な静的サイトならCloudflare Pagesの無料枠が圧倒的に有利。Firebaseの他サービス(Firestore、Auth等)と組み合わせる場合に「ついでにHostingもFirebase」が自然

App Store / Google Play Storeの公開コスト

学んだこと

  • Apple App Store — Apple Developer Programへの登録が必要で、年額$99(約15,000円)。毎年更新が必要
  • Google Play Store — Google Play Developer Consoleへの登録が必要で、$25の一回払いのみ。以降の年間費用はない
  • Appleの方が審査が厳しく、リジェクトされることもある。Googleは比較的緩い
  • アプリを公開せずTestFlightで配布する場合もApple Developer Programへの登録は必要
  • ストアに公開せずWebアプリとして配布する(PWA等)なら、これらの費用は不要

メタ情報

  • ツール: Claude Code
  • 関連技術: Google Antigravity, Gemini CLI, Gemini 3, Agent Manager, VS Code, vscode-neovim, Neovim, Homebrew, VS Code Marketplace, 拡張機能セキュリティ, Cloudflare Pages, Cloudflare Workers, ビルドパイプライン, 静的サイトジェネレーター, Hugo, Astro, Jekyll, Cloudflare R2, YouTube, Firebase Storage, Firebase Hosting, Cloud Functions, Pagefind, Zenn, Zenn CLI, pnpm, Movable Type, Gmailエイリアス, Gmailフィルタ, AWS, GCP, Firebase, Firestore, Cloud Storage, FCM, Crashlytics, Swift, SwiftUI, Flutter, Dart, FlutterFire, App Store, Google Play Store, Apple Developer Program, PWA, i18n, Algolia, NoSQL