すべての記事
アプリ内の言語切り替えを、端末の言語設定と切り離して実装する — Android Per-App Language の実装メモ
Android のアプリ内言語切り替えを AppCompatDelegate.setApplicationLocales と locales_config で実装する手順と、API 33 未満の互換・プロセス再生成・AdMob まわりの落とし穴を実装視点でまとめた記録です。
壁紙ビューアのスライドショーとページ送りスクラバーを iOS から Android へ逆移植する — SnapHelper との双方向同期でつまずいた点
iOS 版の全画面壁紙ビューアにあったスライドショーと下部スクラバーを Android へ逆移植した実装記録。RecyclerView と SnapHelper で現在ページを確定させ、スクラバーと双方向同期し、自動送りとユーザー操作の競合を状態機械で解いた手順を Kotlin の動くコードで共有します。
戻るボタンで広告が出る/出ないが安定しない — 入れ子のifを独立ガードのリストに作り替えた記録
戻るボタン押下時のインタースティシャル表示判定が、入れ子のif文で優先度が暗黙化して壊れていました。各条件を理由つきの独立ガードに分解し、決定表からテストを生成した設計をまとめます。
Play Store の密度分割で、特定の端末だけ内蔵壁紙が消えた — drawable と nodpi の境界設計
App Bundle の密度分割は、密度別に分けてはいけない画像まで分けてしまうと、特定の密度バケットの端末からだけリソースを取りこぼします。bundletool で再現し、drawable-nodpi への移動か密度分割の無効化で直すまでを、判断基準ごと残しました。
審査ガイドラインのPDFをエージェントに読ませて、アプリごとのリリース前チェックリストを作る
Antigravity v2.1.4 のPDF添付を使い、App Store と Play の審査ガイドラインをエージェントに文脈として読ませ、アプリの機能に紐づくリリース前チェックリストへ落とし込む手順をまとめました。
複数環境でエージェント設定が静かにずれていく — 設定ドリフトの検知と是正
2台のMacと自動運用環境でエージェントの設定が少しずつ食い違い、片方だけ失敗する——その「設定ドリフト」を、ハッシュ照合と是正手順で見える化する設計を、個人開発の現場からまとめます。
並列で走らせたエージェントの依存インストールが lockfile を壊すとき、インストールだけを直列化する
Antigravity の並列エージェントが同じ pnpm store と lockfile を同時に書き換えて壊す失敗を、コード生成は並列のまま、インストールだけをファイルロックで直列化して防いだ実践メモです。
Managed Agents API でバックグラウンドタスクを安全に走らせる設計
Antigravity 2.0 の Managed Agents API は、単一の API 呼び出しで隔離された Linux 環境にエージェントを起動し、推論・ツール実行・コード実行までを任せられます。便利な反面、放置すると暴走やコスト超過を招きます。バックグラウンド常駐タスクとして安全に運用する設計を考えます。
ATT を取る前に広告SDKを初期化していた — 初回起動だけ eCPM が下がる順序の罠
iOS の AdMob メディエーションを4本のアプリへ広げたとき、初回セッションだけ広告収益が落ちる現象に気づきました。原因は ATT 許諾と MobileAds 初期化の順序です。順序が効く理由と、Antigravity にその順序を監査させた実装記録をまとめました。
AI Studio のネイティブ Android 生成コードを本番アプリに入れる前の検め方
AI Studio のネイティブ Android vibe coding は驚くほど速く動く画面を出します。ただ、稼働中のアプリへ取り込む前には専用の検めが要ります。生成 Kotlin を本番に入れる前のレビュー設計をまとめます。
ダイアログが重なる前に止める — 課金・レビュー誘導・リワード広告を1か所のゲートで束ねる
ペイウォール・レビュー誘導・リワード広告が同じ瞬間に重なって出る不具合を、優先度つきの中央ゲートで根治した実装記録です。Antigravityのエージェントに散らばったshow()呼び出しの掃き出しを任せ、表示ポリシーは自分で握る線引きで進めました。
Gemini CLI 終了(6/18)に備える依存監査 — Antigravity CLI 移行で壊れる場所を先に潰す
6/18 の Gemini CLI 終了で本当に壊れるのは、ターミナルではなく CI・git フック・cron に埋もれた gemini 呼び出しです。参照箇所を機械的に洗い出し、ドライランで確認し、切り戻しまで設計する手順を実コードでまとめました。