ANTIGRAVITY LABEN
記事一覧/Tips & 活用術
Tips & 活用術/2026-05-13中級

AntigravityがDeprecated APIを提案してきたときの4ステップ対処法

AntigravityのAIが古いDeprecated APIを提案してきたときの診断・修正・予防の4ステップを、iOS/Android個人開発の実体験をもとに解説します。

antigravity435deprecatedtips36ios35android27トラブルシューティング26

2014年から個人でiOS/Androidアプリを開発してきた中で、AIコーディングツールが普及してから「生成されたコードがビルドエラーになる」というケースが増えました。

原因を調べると、大半が Deprecated API の提案 でした。

AdMobの収益化コードをAntigravityに生成させたとき、すでに廃止された古いクラスがさらっと提案されたことがあります。当時は気づかずに実装してしまい、審査前のビルドで初めてエラーが出ました。そのデバッグに費やした時間が、この記事を書くきっかけになっています。

Antigravityは膨大なコードベースを学習していますが、そのトレーニングデータには古いバージョンのコードも含まれています。最新のSDKや言語仕様に追いついていない提案をしてくることは、今でも起こります。この対処法を4ステップで整理しました。

なぜDeprecated APIが提案されるのか

Antigravityが古いAPIを提案する主な理由は3つあります。

学習データのラグ

AIモデルの学習データには時間的な遅れがあります。SwiftやKotlinのSDKは年数回のペースで更新されますが、モデルがそれを完全に反映するには一定の期間が必要です。特にiOS SDKはWWDCのたびに大きな変更が入るため、直後の数ヶ月間は注意が必要です。

プロジェクトコンテキストの欠如

Antigravityが現在のプロジェクトで使用しているSDKバージョンを把握していない場合、汎用的なコードを提案します。Package.swiftPodfilebuild.gradleを読み込ませていないと、「このプロジェクトはどのバージョンを対象にしているか」が伝わりません。

古いサンプルコードの参照

Stack Overflowや古いブログ記事を参考にしたコードが、そのままモデルに取り込まれているケースもあります。承認数が多い古い回答でも、当然deprecated扱いになっていることがあります。

Step 1 — エラーログで「deprecated」を特定する

まずビルドログを確認します。Xcodeであれば「Issues Navigator」にdeprecation warningが一覧表示されます。Android Studioであれば、Gradle出力の中に This API has been deprecated というメッセージが出ます。

// ❌ Antigravityが提案してきた古いコード(例)
// GADInterstitial は iOS 14.0 で廃止済み
let interstitial = GADInterstitial(adUnitID: "ca-app-pub-xxxx")
interstitial.load(GADRequest())
 
// ✅ 現在の正しい実装(GADInterstitialAdを使う)
GADInterstitialAd.load(
  withAdUnitID: "ca-app-pub-xxxx",
  request: GADRequest()
) { ad, error in
  if let error = error {
    print("広告の読み込みに失敗しました: \(error)")
    return
  }
  self.interstitialAd = ad
}

エラーメッセージに含まれる廃止されたクラス名・メソッド名をメモしておきます。これがStep 2でAntigravityに質問するときに使います。

Step 2 — AntigravityのチャットでDeprecation情報を確認する

Antigravityのチャット欄に、次のような形式で質問します。

以下のエラーが出ています:
'GADInterstitial' was deprecated in iOS 14.0

iOS 17以降で動作する最新の代替実装を、Swift Concurrencyを使って書いてください。
このプロジェクトのMinimum Deploymentは iOS 16 です。

ポイントは「廃止されたAPIの名前」「使用中のOSバージョン」「現在のターゲットバージョン」を明示することです。この3点が揃っていれば、Antigravityは公式ドキュメントに近い最新の実装を返してくれます。

特定のバージョン以降に追加されたAPIが必要な場合は、@available(iOS 16, *) などのavailabilityチェックも含めた形で依頼すると、安全なコードが得られます。

Step 3 — INSTRUCTIONS.mdで「禁止API」をプロジェクトに記録する

個別対応だけでは同じ問題が繰り返されます。プロジェクトルートに INSTRUCTIONS.md(または .antigravity/instructions.md)を作成し、以下のようなルールを追記します。

# コーディングルール
 
## SDK バージョン指定
- iOS minimum target: 16.0
- Android minimum SDK: 26 (Android 8.0)
- Swift: 5.10 以上
 
## 禁止 API(Deprecated のため使用しないこと)
- `GADInterstitial``GADInterstitialAd` を使用
- `UIWebView``WKWebView` を使用
- `NSUserNotificationCenter``UNUserNotificationCenter` を使用
 
## 推奨パターン
- 非同期処理は async/await を優先(completion handler 非推奨)
- AdMob の初期化は `GADMobileAds.sharedInstance().start()` を使用

このファイルをコンテキストに読み込ませておくことで、同じカテゴリの廃止APIを提案されにくくなります。プロンプトの組み立て方についてはAntigravity プロンプトエンジニアリング入門も参考になります。

Step 4 — 定期的なDeprecationチェックをビルドタスクに組み込む

Xcodeでは -warnings-as-errors フラグを設定してdeprecation warningをエラーに昇格させられます。ただしいきなり全プロジェクトに適用すると大量のエラーが出るため、段階的な導入が現実的です。

# Xcodeプロジェクトでdeprecation warningを一覧化する(CI環境などで使用)
xcodebuild -scheme MyApp -configuration Debug build \
  2>&1 | grep "deprecated" | sort | uniq

Android Gradleの場合は build.gradle に以下を追記することで、lint警告として記録できます。

android {
    lintOptions {
        // deprecated API の使用を警告として記録
        warning 'Deprecation'
        // CI 環境でエラーとして扱う場合は以下をアンコメント
        // error 'Deprecation'
    }
}

Antigravityのタスク機能を使って、週次でビルドログのdeprecation警告をチェックする仕組みを入れておくと、問題が積み重なる前に気づけます。タスクの自動化についてはAntigravity の tasks.json と launch.json でワンキー開発環境を仕上げるで詳しく紹介しています。

予防が最も効果的

Antigravityが古いAPIを提案してきても、焦ってコードをそのまま使わないことが大切です。

10年以上個人開発を続けてきた感覚として、「問題が起きてから直す」より「起きにくくする仕組みを作る」方が明確に楽です。INSTRUCTIONS.mdへのNG API明記は、一度やっておくと同じ問題がほぼ再発しなくなります。

まず、プロジェクトの INSTRUCTIONS.md に現在使用禁止のAPIを1行追記するところから始めてみてください。

シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Tips & 活用術2026-06-20
自動実行の再現性を守る — Antigravity CLI のバージョンを固定して挙動のブレを抑える
Go 製の Antigravity CLI が全ユーザーへ提供開始となり、更新も速いペースで続いています。自動運用に組み込んだ CLI が裏で上がると、ある朝のジョブだけ挙動が変わることがあります。バイナリのバージョンを固定し、各ランのログに素性を残し、更新は一本から慣らす——という再現性の守り方を、4サイトを夜間に自動運用している実作業からまとめます。
Tips & 活用術2026-06-17
Antigravityの生成コードが『正しいのに、よそよそしい』と感じたら試したい3つの指示
Antigravityの生成物が『動くのに自分のコードベースに馴染まない』と感じたときに見直したい、設計意図の渡し方。指示の文脈不足を埋める3つのパターンと、それでも噛み合わなかったケースを実体験から整理しました。
Tips & 活用術2026-06-16
Go 製 Antigravity CLI の応答性を実測して、夜間バッチの組み方を見直す
Antigravity CLI は Go で実装し直され、起動や初回応答の体感が変わりました。起動・初回応答・本処理の3つの時間を切り分けて実測し、その数字をもとに夜間バッチを直列から並列へ組み直すまでの手順をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →