1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【体験談】Antigravity だけで、薬草 iOS アプリを半日で作った話

Posted at

こんにちは。
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 のスクリーンショット

地図タブ:薬草園マップ

日本各地の薬草園をピン表示する画面です。
IMG_0657.PNG

図鑑タブ:ローカル検索 + 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/通常) などを状況に応じて使い分けてくれる
  • 開発者は「やりたいこと」を自然言語で指定し、レビューと微調整に集中できる

という点です。
Screenshot 2025-11-23 at 13.40.19.png

今回の環境

項目 内容
マシン 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 の裏側で開発支援に使われていた」という位置づけになります。

開発にかかった時間とコスト感

実際にやってみた感覚値です。

  1. Antigravity のセットアップとチュートリアル確認 …… 1〜2時間
  2. HerbalExplorer のコア機能(識別・図鑑・地図)の実装 …… 3〜4時間
  3. 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 アプリ」まで作れる

ということでした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?