◉ANTIGRAVITY LABEN
▣ アプリ開発

アプリ開発

Antigravity を使ったアプリ開発のカテゴリです。Unity・Xcode・Android Studio との連携から、Next.js や Expo でのアプリ構築、ストア公開や収益化の実践まで、開発の現場で役立つ記事を集めています。

2026-07-02中級

審査リジェクトの朝に慌てないために — App Store の指摘をエージェントで分類し、再提出までの手順を固定する

App Store 審査リジェクトの文面を Antigravity に渡して分類し、ガイドライン別プレイブックと Info.plist リントで再提出まで最短で戻す運用設計。実測の所要時間短縮も紹介します。

2026-07-02中級

エージェントにテストを任せる前に決めておく — fixture とシードデータの持ち方

テストの修正を任せたら fixture の期待値を書き換えて緑にされた——その経験から、エージェントにテストを任せる前の決めごとを整理しました。fixture の所有権を外す、シードを決定的に生成する、実データを4段階で切り出す設計を実測とともに紹介します。

2026-07-01中級

音を出すアプリのリリース前チェックを、音声描画とエージェントで仕組み化する

6/26 の更新で Antigravity が音声ファイルを描画できるようになりました。癒し系アプリで音を扱ってきた経験から、音量・クリップ・長さ・無音の事前チェックをエージェントの検証ループに組み込む設計を、実際のスクリプトとともに紹介します。

2026-06-30上級

Antigravity が書いたテストが全部グリーンなのに同じバグが再発するとき — 空回りするアサーションを計測する運用メモ

AI に書かせたテストがすべて通り、カバレッジも高いのに本番で同じ不具合が戻ってくる。原因はモック過多とトートロジー的なアサーションです。ミューテーションテストを正解とし、テストが実際に何を守っているかを実測して運用で立て直すメモです。

2026-06-30上級

Antigravity に任せた App Open 広告が、課金画面やリワード動画から戻るたびに出てしまう

Antigravity のエージェントに App Open 広告を実装させると、自前のリワード動画や Google Play の課金シートから戻った瞬間にも広告が出ます。AdMob のポリシー違反にも触れるこの挙動を、前面復帰の理由を記録するフォアグラウンド調停役で抑える設計を、動く Kotlin と検証手順つきで解説します。

2026-06-30上級

Xcode 27 のエージェント機能と Antigravity を併用する — iOS 開発の作業境界を設計する

Xcode 27 がエージェント型コーディングを取り込んだことで、iOS 開発はツールが二つ重なる状態になりました。source of truth を一つに保ち、仕様・実装・検証の3層で作業を分けるための実践的な設計をまとめます。

2026-06-28上級

メディエーションを増やしたら iOS の計測が静かに痩せた — SKAdNetwork ID のズレを4アプリで揃える

メディエーションに新しいパートナーを足したのに iOS の収益が伸びず、SKAdNetwork ID の登録漏れが原因だった実体験。Info.plist の SKAdNetworkItems を4アプリで突き合わせ、Antigravity エージェントに照合させて人間が採否を決める運用を紹介します。

2026-06-28上級

ストリーミング表示がローカルでは動くのに本番だと一括表示に戻るとき — 中間プロキシのバッファリングと沈黙する停止を計測する運用メモ

Antigravity 経由の Gemini ストリーミングを SSE で配信すると、ローカルでは1文字ずつ出るのに本番では数秒固まってから一括で出ます。中間プロキシのバッファリング・アイドル切断・再接続による二重生成を、計測してから潰す運用メモです。

2026-06-27上級

AI Studio が選んだ Gradle と AGP のバージョンが、既存アプリのビルドを静かに壊す前に

AI Studio が生成した Kotlin/Compose 画面を既存の Android アプリへ取り込むと、AGP・Kotlin・依存ライブラリのバージョンがずれてビルドが静かに壊れます。version catalog で単一の真実を固定し、取り込み口で生成側の宣言を検査するゲートの設計を、実測とコードでまとめました。

2026-06-27上級

ローカルでは通る iOS ビルドが CI の TestFlight アップロードで署名拒否されるとき — match の証明書が静かにズレる原因と運用メモ

fastlane match を CI に載せると、ビルドは成功するのに TestFlight アップロードだけが署名エラーで落ちることがあります。証明書とプロファイルのズレを再現可能に診断し、readonly 運用と事前検証ゲートで止める手順を実機の挙動に沿って整理しました。

2026-06-27上級

Dropbox 同期のフォルダで Antigravity エージェントに Xcode を任せると、ビルドが時々壊れる理由

クラウド同期フォルダに置いた Xcode プロジェクトを Antigravity のエージェントに触らせると、ビルドが日替わりで成功したり失敗したりします。同期デーモンとビルドの競合という原因と、xattr による除外・衝突コピー検査までを実装視点でまとめます。

2026-06-26上級

生成も配信も任せても、署名鍵だけは渡さない — AI 主導の配布パイプラインで鍵の管理と引き継ぎを設計する

AI Studio や Antigravity が生成から内部テスト配信までを肩代わりする時代でも、アプリの署名鍵だけは別格です。鍵を失えば、そのアプリは二度と更新できません。個人開発で複数アプリを長く運用してきた立場から、アップロード鍵とアプリ署名鍵の分離、鍵の保管、そして万一の引き継ぎまでを設計としてまとめました。

2026-06-26上級

埋め込みエミュレータでは緑なのに、実機で初めて崩れる — AI 生成 Compose アプリに実機差を塞ぐ検証ゲートを置く

AI Studio はテキストから Kotlin/Compose アプリを生成し、埋め込みエミュレータで動かし、USB で実機へ送るところまで一画面でつなぎました。けれどエミュレータで通った画面が、手元の実機で初めて崩れることがあります。個人開発で複数アプリを抱える立場から、生成物に実機差を塞ぐ検証ゲートを据える設計をまとめました。

2026-06-25上級

「広告を見たら壁紙を解放」をエージェントがクライアント側だけで付与していた — リワード報酬をSSVで検証し直した記録

リワード広告を見たら壁紙を解放する機能を Antigravity のエージェントに頼んだら、解放フラグをクライアント側だけで書き込む実装が返ってきました。なぜそれでは足りないのか、AdMob のサーバーサイド検証(SSV)で報酬付与を検証し直し、二重付与まで止めた設計を記録します。

2026-06-25上級

Xcode Cloud の無料25時間が月末に静かに尽きるとき — コンピュート時間を計測して守る運用メモ

Xcode Cloud の無料コンピュート枠が月末に枯渇し、ビルドがキューで待たされる前に。消費の内訳を App Store Connect API で実測し、不要ビルドの早期停止・テスト分割でCI時間を運用で守る実践メモです。

2026-06-25中級

AI Studio で作ったアプリを自分の端末に入れたら署名が合わないと弾かれた話

AI Studio で生成した Kotlin/Compose アプリを USB で実機へ転送したら INSTALL_FAILED_UPDATE_INCOMPATIBLE で弾かれる——。Google Play 公開済みアプリと同じパッケージ名のデバッグ署名ビルドを上書きできない理由と、本番アプリを消さずに試す手順をまとめます。

2026-06-25上級

日付が変わった瞬間に、昨日の壁紙がもう一度出た — 時刻処理をエージェント任せにしないための日付境界設計

毎日入れ替わる壁紙が、日付の変わり目に昨日と同じものを出したり、海外移動中の利用者だけ二回切り替わったりしていた問題を、端末時計・タイムゾーン・夏時間の三つに分けて設計し直した記録です。エージェントが書いた素朴な時刻コードのどこが本番で崩れるか、安定した日付キーの作り方、巻き戻し時計への防御、注入可能な時計でのテストまでを個人開発の視点でまとめました。

2026-06-25上級

お気に入りを一つ押すたびに、見えている壁紙が全部描き直されていた — Compose の再コンポーズを実測で止めた記録

壁紙アプリのグリッドで、お気に入りを一つ切り替えるたびに可視サムネイル全件が再コンポーズされていた問題を、Composition Tracing で実測してから直した記録です。不安定な引数の特定、データモデルの安定化、ラムダと派生状態の扱い、修正前後の再コンポーズ回数の比較までを個人開発の視点でまとめました。

2026-06-24上級

三つの経路がそれぞれ番号を振っていた — versionCode を単一の真実から決めて配信を止めない設計

AI Studio がワンプロンプトでアプリを生成し Play の内部テストへそのまま上げられるようになった結果、人手・CI・エージェントの三経路が別々に versionCode を採番して衝突するようになりました。番号を単一の真実から決め、アップロード前に照合するガードまでを実装つきで整理します。

2026-06-24上級

生成から実機、内部テスト配信まで一手でつながった日に、私が手放さなかったもの — AI Studio の一気通貫を個人開発の配信フローに据える

AI Studio がテキストから Kotlin/Compose アプリを生成し、エミュレータ・実機・Play 内部テストまで一画面でつなぐようになりました。便利さの裏で「配信の瞬間」をどこまで機械に預け、どこを自分の手で握るか。個人開発で複数アプリを抱える立場からの線引きと、その境界を支える実装をまとめました。

2026-06-24上級

IDE を開かずに、配信前の検証を機械へ預ける — Android CLI を無人パイプラインの検証ゲートに据える設計

Android CLI v1.0 を、IDE を前提にしない無人パイプラインの検証ゲートとして組み込む設計です。三層の検査・終了コードの契約・密度と言語のマトリクスまで、個人開発の身の丈で運用するための考え方をまとめました。

2026-06-23上級

毎日変わるはずの壁紙ウィジェットが止まった — WidgetKit のリロード予算を実測して設計を組み直した記録

毎日壁紙が切り替わるはずのウィジェットが数日で更新を止めました。WidgetKit のタイムラインとリロード予算、拡張のメモリ上限を実測し、1日分のエントリをまとめて積む設計へ組み直した過程をまとめます。

2026-06-23上級

レビュー導線を出したのに何も表示されない — Play In-App Review の数量制限と「表示保証なし」前提の設計

Play In-App Review API は launchReviewFlow が成功しても、ダイアログが表示されたとは限りません。数量制限・表示保証なし・テストでの無音化という3つの罠を解きほぐし、満足の瞬間に出して衝突を避ける発火設計を、Antigravity に実装させる手順とあわせて記録します。

2026-06-23上級

StoreKit 2 で「課金したのに使えない」と言われたとき — サブスク権利状態のズレを直す運用メモ

StoreKit 2 のサブスクリプションは実装より運用でつまずきます。currentEntitlements と subscription.status のズレ、Transaction.updates の取りこぼし、未 finish トランザクション、復元と返金の扱いを、本番で効いた整流ロジックとともに記録します。

2026-06-23上級

シェア画像の日本語だけが □ になる — Antigravity に next/og の CJK フォント供給を直させた実装メモ

next/og の ImageResponse で日本語タイトルだけが豆腐(□)になる。原因の Satori と woff2 の関係を解きほぐし、Google Fonts の text= サブセットをエッジで軽量に引き当てる実装を、Antigravity に直させる手順とあわせて記録します。

2026-06-23上級

インストール直後だけ起動が一拍遅い — Baseline Profile で Android のコールドスタートを実測で詰めた手順

更新直後やインストール直後だけ Android アプリの起動が一拍もたつく原因を JIT と Cloud Profile の観点で切り分け、Baseline Profile でコールドスタートを実測で詰めた手順を、Macrobenchmark の構築から段階公開での監視まで個人開発の視点でまとめました。

2026-06-22上級

リリースビルドだけで落ちる — R8 フルモードが Gson のマッピングを壊したときの調べ方と直し方

デバッグでは動くのにリリースだけでクラッシュする。R8 フルモードが Gson のリフレクションを壊す典型と、mapping.txt を使った原因特定、keep ルールの最小化までを実装視点でまとめます。

2026-06-22中級

アプリ内の言語切り替えを、端末の言語設定と切り離して実装する — Android Per-App Language の実装メモ

Android のアプリ内言語切り替えを AppCompatDelegate.setApplicationLocales と locales_config で実装する手順と、API 33 未満の互換・プロセス再生成・AdMob まわりの落とし穴を実装視点でまとめた記録です。

2026-06-22上級

壁紙ビューアのスライドショーとページ送りスクラバーを iOS から Android へ逆移植する — SnapHelper との双方向同期でつまずいた点

iOS 版の全画面壁紙ビューアにあったスライドショーと下部スクラバーを Android へ逆移植した実装記録。RecyclerView と SnapHelper で現在ページを確定させ、スクラバーと双方向同期し、自動送りとユーザー操作の競合を状態機械で解いた手順を Kotlin の動くコードで共有します。

2026-06-21上級

戻るボタンで広告が出る/出ないが安定しない — 入れ子のifを独立ガードのリストに作り替えた記録

戻るボタン直後にインタースティシャル広告が稀に重なる不具合を、入れ子の if から理由を返す独立ガードの並びへ作り替えて解決した記録です。評価順序の明示、決定表を起点にしたテスト生成、複数の壁紙アプリへ展開したときに効いた点までまとめました。

2026-06-21上級

Play Store の密度分割で、特定の端末だけ内蔵壁紙が消えた — drawable と nodpi の境界設計

App Bundle の密度分割は、密度別に分けてはいけない画像まで分けてしまうと、特定の密度バケットの端末からだけリソースを取りこぼします。bundletool で再現し、drawable-nodpi への移動か密度分割の無効化で直すまでを、判断基準ごと残しました。

2026-06-21中級

審査ガイドラインのPDFをエージェントに読ませて、アプリごとのリリース前チェックリストを作る

Antigravity v2.1.4 のPDF添付を使い、App Store と Play の審査ガイドラインをエージェントに文脈として読ませ、アプリの機能に紐づくリリース前チェックリストへ落とし込む手順をまとめました。

2026-06-20上級

複数環境でエージェント設定が静かにずれていく — 設定ドリフトの検知と是正

片方の環境でだけエージェントが失敗する原因は、数週間前の設定変更の反映漏れでした。設定の正本を決め、正規化してからハッシュで照合し、ドリフトを3段階で扱う検知と是正の仕組みを、複数 Mac と自動運用環境をまたぐ実運用に基づいて設計します。

2026-06-20上級

並列で走らせたエージェントの依存インストールが lockfile を壊すとき、インストールだけを直列化する

Antigravity の並列エージェントが同じ pnpm store と lockfile を同時に書き換えて壊す失敗を、コード生成は並列のまま、インストールだけをファイルロックで直列化して防いだ実践メモです。

2026-06-19上級

Managed Agents API でバックグラウンドタスクを安全に走らせる設計

Antigravity 2.0 の Managed Agents API は、単一の API 呼び出しで隔離された Linux 環境にエージェントを起動し、推論・ツール実行・コード実行までを任せられます。便利な反面、放置すると暴走やコスト超過を招きます。バックグラウンド常駐タスクとして安全に運用する設計を考えます。

2026-06-19上級

ATT を取る前に広告SDKを初期化していた — 初回起動だけ eCPM が下がる順序の罠

iOS の AdMob メディエーションを4本のアプリへ広げたとき、初回セッションだけ広告収益が落ちる現象に気づきました。原因は ATT 許諾と MobileAds 初期化の順序です。順序が効く理由と、Antigravity にその順序を監査させた実装記録をまとめました。

2026-06-18上級

AI Studio のネイティブ Android 生成コードを本番アプリに入れる前の検め方

AI Studio のネイティブ Android vibe coding は驚くほど速く動く画面を出します。ただ、稼働中のアプリへ取り込む前には専用の検めが要ります。生成 Kotlin を本番に入れる前のレビュー設計をまとめます。

2026-06-17上級

ダイアログが重なる前に止める — 課金・レビュー誘導・リワード広告を1か所のゲートで束ねる

ペイウォール・レビュー誘導・リワード広告が同じ瞬間に重なって出る不具合を、優先度つきの中央ゲートで根治した実装記録です。Antigravityのエージェントに散らばったshow()呼び出しの掃き出しを任せ、表示ポリシーは自分で握る線引きで進めました。

2026-06-15上級

Gemini CLI 終了(6/18)に備える依存監査 — Antigravity CLI 移行で壊れる場所を先に潰す

6/18 の Gemini CLI 終了で本当に壊れるのは、ターミナルではなく CI・git フック・cron に埋もれた gemini 呼び出しです。参照箇所を機械的に洗い出し、ドライランで確認し、切り戻しまで設計する手順を実コードでまとめました。

2026-06-15上級

新 iPhone が出るたびに三項演算子を増やすのをやめる — 解像度分岐をテーブル駆動に寄せた設計

iPhone Air・17 Pro など新解像度が増えるたびに、画面サイズ判定の三項演算子を29箇所も書き足していました。端末ではなくプロファイルで考えるテーブル駆動の設計に寄せ直し、次の端末追加を1行で終わらせるまでの具体的な手順を、壁紙アプリの実装コードとともにまとめます。

← すべての記事