こんにちは。
IBM Project Bob(SWE)が盛り上がっているところで、申請者が多すぎで、なかなかAPI Keyがもらえないため、Google の新しい開発プラットフォーム Antigravity (以前Googleが買収したWindsurfをベースした)を使って、
- Mac M1 上で
- ほぼゼロから
- 薬草探索 iOS アプリ 「HerbalExplorer」 を
- 実質「半日」くらいで動くところまで持っていった
ときの手順と、LLM の使い分けをまとめます。
結論からいうと、
- 環境もモデルも基本は「全部無料」(※クォータの制限はあり)
- Antigravity のエージェントがかなり自律的にコードを書いてくれる
- iOS アプリのコードは、Antigravity 側で Gemini 3 系 + Claude Sonnet 4.5 をいい感じに使い分けてくれる
- アプリ内部の AI(画像認識・テキスト回答)は、設定で選んだ Gemini モデル 1つ を共通で利用
という、「AI とペアプロどころか、ほぼ AI 主導で開発が進んでいく」体験でした。
完成した HerbalExplorer のスクリーンショット
地図タブ:薬草園マップ
図鑑タブ:ローカル検索 + AI 検索
- ローカルモード:端末内データベースから検索
- AI検索モード:Gemini に自然文で聞いて結果を表示
植物識別結果画面
写真から植物を識別し、名前・学名・利用部位・効能などを表示します。
設定画面
- 使用する Gemini モデルの選択
- アプリ表示言語(日本語・英語・中国語など)の切り替え
ホーム画面のアイコン
Antigravity とは何か
公式サイト:https://antigravity.google/
Google Antigravity は、Google が発表したエージェント主導の新しい開発環境 / 開発プラットフォームです。
簡単にいうと、AIエージェント(AI Driven)が自律的にコードを書き、テストし、ブラウザ操作まで行える IDEのようです。
特徴的なのは、
- プロジェクト構成・コード生成・テスト・デバッグをエージェントがまとめて面倒を見てくれる
- 内部で Gemini 3.0 Pro High / Low や Claude Sonnet 4.5 (Thinking/通常) などを状況に応じて使い分けてくれる
- 開発者は「やりたいこと」を自然言語で指定し、レビューと微調整に集中できる
今回の環境
| 項目 | 内容 |
|---|---|
| マシン | MacBook Air M1 |
| OS | macOS(Sonoma) |
| 開発プラットフォーム | Antigravity |
| アプリ | iOS / SwiftUI ベースの HerbalExplorer |
| ランタイムで使う LLM | 設定で選択する Gemini モデル 1つ(テキスト・画像認識を共通で処理) |
ここでポイントになるのが、
「開発時に使う LLM」と「アプリ内機能で使う LLM」が別物 という点です。
-
コーディング時:
- Antigravity 側が、内部で Gemini 3.0 Pro High/Low や Claude Sonnet 4.5 Thinking などを使い分けてコードを生成・修正
-
アプリの機能としての AI(植物識別・テキストQA):
- 設定画面で選んだ Gemini の 1 モデル(例:Gemini Flash Latest / Gemini 3.0 Pro High)を、テキスト・画像とも共通で利用
なので、エンドユーザーから見えるのは「Gemini モデルの選択肢」だけ、
Claude はあくまで「Antigravity の裏側で開発支援に使われていた」という位置づけになります。
開発にかかった時間とコスト感
実際にやってみた感覚値です。
- Antigravity のセットアップとチュートリアル確認 …… 1〜2時間
- HerbalExplorer のコア機能(識別・図鑑・地図)の実装 …… 3〜4時間
- UI 調整・多言語対応・設定画面まわり …… 1〜2時間
合計すると、「集中して半日強」くらいでここまで到達しました。
費用面では、
- Antigravity 利用料:0円
- Gemini API:無料枠の範囲内
- iOS 開発アカウント:個人開発の範囲
と、ほぼコストをかけずにここまでできています(モデルのクォータ制限はあり)。
どの LLM がどう良かったか
今回の開発で印象に残った点を、元のメモ a〜e に沿って整理しておきます。
a. 半日くらいで形になるスピード感
Antigravity に対して、
「薬草を撮影して識別したい」
「図鑑タブと地図タブがほしい」
「多言語対応をしたい」
と、日本語で要件を渡していくだけで、
プロジェクト構成から SwiftUI の画面、API クライアント、モデル定義まで一気に出してくれます。
人間側は「微妙な仕様の調整」と「実機ビルド時のエラー潰し」が主な仕事、という感覚でした。
b. すべて無料でここまでできる
Antigravity 自体も、Gemini の API も、現時点では無料で利用できました。
「ちょっとした趣味アプリ」「技術検証」「PoC」を作るには十分すぎる環境です。
c. Gemini 3.0 Pro High はアップデート後かなり安定
最初期は、
- たまにコードが途中で途切れる
- 実行してみると細かいコンパイルエラーが残っている
といった不安定さもありましたが、
Antigravity 側のアップデート以降は、かなり安定して動くようになりました。
特に、画像認識を伴うサンプルコードや SwiftUI のレイアウト生成は、
Gemini 系モデルが得意な領域だと感じました。
d. iOS コードの「一発コンパイル成功率」は Claude Sonnet 4.5 Thinking が高い印象
Antigravity 内部で、
- iOS 固有の API
- SwiftUI と UIKit の橋渡し
- 微妙なバージョン差異への対応
といったところを聞いたとき、
Claude Sonnet 4.5 Thinking が生成したコードは、
「そのまま貼ればだいたい一発でコンパイルが通る」というケースが多かった印象です。
一方で、UI の文言やナチュラルな説明文生成は、
Gemini 系が得意な場面も多く、
Antigravity 側で両者をうまく使い分けてくれている感じがありました。
e. たまに「ダメ出し」されるが、そのおかげで設計がよくなる
無理筋な指示を出すと、AI 側から
「その構成だと依存関係が循環するので非推奨です」
「責務が曖昧なので、サービスクラスを分けた方がよいです」
といったフィードバックが返ってきます。
単にエラーを直してくれるだけでなく、
- どこが根本原因なのか
- どう設計すると長期的に楽か
まで含めて説明してくれるので、
普通にペアプロ相手として見てもかなり優秀だと感じました。
開発フロー(ざっくりログ)
1. プロジェクト作成
最初に Antigravity に投げた要件はだいたいこんな感じでした。
iOS アプリ「HerbalExplorer」を作りたい。
機能:
- 植物写真の識別(画像 + テキスト)
- 図鑑タブ(ローカル検索 + AI 検索)
- 地図タブ(薬草園マップ)
- 多言語対応(日本語/英語/中国語)
SwiftUI ベースでお願いしたい。
これだけで、プロジェクト骨格と画面遷移、
View / ViewModel / Model / Service 層の雛形が一気に生成されました。
2. 植物識別機能
次に、画像認識まわり。
カメラ or 写真ライブラリから画像を選択して、
選択した Gemini モデルに投げて、
植物名・学名・利用部位・効能・毒性などを日本語で返してほしい。
という指示をすると、
- 画像ピッカー
- Gemini へのリクエスト処理
- 結果のパース
- 結果表示用の SwiftUI ビュー
まで、ひととおり揃った形で出てきます。
アプリ内では、設定画面で選んだ Gemini モデルが
テキスト・画像認識の両方を処理するようになっています。
3. 図鑑タブ
図鑑タブは、ローカルデータと AI検索の二段構えです。
-
ローカルモード:
- 内蔵の薬草リスト(日本の薬草園を意識した内容)を名前や効能でフィルタ
-
AI検索モード:
- Gemini に「○○に効く薬草」「この植物は食べても安全か?」など自然文で質問
- 回答をカード形式で表示
UI の大枠は Antigravity 任せで、
表示文言と配色を人間側で微調整する、という分担になりました。
4. 地図タブ
地図タブは MapKit を使っています。
- ユーザーの現在地を表示
- 複数の薬草園の座標をピン表示
- ピンをタップすると詳細シートを表示
という要件だけで、
Annotation やシート表示付きの SwiftUI マップが生成されました。
5. 多言語対応と設定画面
最後に、アプリ全体を多言語対応しました。
- アプリの表示言語を日本語/英語/中国語から切り替えたい
- 設定画面から変更できるようにしたい
という要件を出すと、
- Localizable.strings の雛形
- Language 設定の管理クラス
- 設定画面の UI
を自動生成してくれます。
まとめ
今回の HerbalExplorer プロジェクトを通して感じたのは、
-
Antigravity のようなエージェント主導 IDE があると、
「0→1 のプロジェクト立ち上げ」がものすごく速くなる -
開発フェーズとアプリランタイムで LLM を役割分担させると、とても整った構成になる
- 開発中:Antigravity 内部で Gemini 3 + Claude Sonnet 4.5 がコード生成と修正を担当
- アプリ機能:ユーザーが選んだ Gemini モデル 1つが、テキスト・画像認識を共通で処理
-
実験レベルなら、Mac M1 + 無料枠の LLM だけで「そこそこちゃんとした iOS アプリ」まで作れる
ということでした。







