すべての記事
AI Studio で作ったアプリを自分の端末に入れたら署名が合わないと弾かれた話
AI Studio で生成した Kotlin/Compose アプリを USB で実機へ転送したら INSTALL_FAILED_UPDATE_INCOMPATIBLE で弾かれる——。Google Play 公開済みアプリと同じパッケージ名のデバッグ署名ビルドを上書きできない理由と、本番アプリを消さずに試す手順をまとめます。
日付が変わった瞬間に、昨日の壁紙がもう一度出た — 時刻処理をエージェント任せにしないための日付境界設計
毎日入れ替わる壁紙が、日付の変わり目に昨日と同じものを出したり、海外移動中の利用者だけ二回切り替わったりしていた問題を、端末時計・タイムゾーン・夏時間の三つに分けて設計し直した記録です。エージェントが書いた素朴な時刻コードのどこが本番で崩れるか、安定した日付キーの作り方、巻き戻し時計への防御、注入可能な時計でのテストまでを個人開発の視点でまとめました。
お気に入りを一つ押すたびに、見えている壁紙が全部描き直されていた — Compose の再コンポーズを実測で止めた記録
壁紙アプリのグリッドで、お気に入りを一つ切り替えるたびに可視サムネイル全件が再コンポーズされていた問題を、Composition Tracing で実測してから直した記録です。不安定な引数の特定、データモデルの安定化、ラムダと派生状態の扱い、修正前後の再コンポーズ回数の比較までを個人開発の視点でまとめました。
三つの経路がそれぞれ番号を振っていた — versionCode を単一の真実から決めて配信を止めない設計
AI Studio がワンプロンプトでアプリを生成し Play の内部テストへそのまま上げられるようになった結果、人手・CI・エージェントの三経路が別々に versionCode を採番して衝突するようになりました。番号を単一の真実から決め、アップロード前に照合するガードまでを実装つきで整理します。
生成から実機、内部テスト配信まで一手でつながった日に、私が手放さなかったもの — AI Studio の一気通貫を個人開発の配信フローに据える
AI Studio がテキストから Kotlin/Compose アプリを生成し、エミュレータ・実機・Play 内部テストまで一画面でつなぐようになりました。便利さの裏で「配信の瞬間」をどこまで機械に預け、どこを自分の手で握るか。個人開発で複数アプリを抱える立場からの線引きと、その境界を支える実装をまとめました。
IDE を開かずに、配信前の検証を機械へ預ける — Android CLI を無人パイプラインの検証ゲートに据える設計
Android CLI v1.0 を、IDE を前提にしない無人パイプラインの検証ゲートとして組み込む設計です。三層の検査・終了コードの契約・密度と言語のマトリクスまで、個人開発の身の丈で運用するための考え方をまとめました。
毎日変わるはずの壁紙ウィジェットが止まった — WidgetKit のリロード予算を実測して設計を組み直した記録
毎日壁紙が切り替わるはずのウィジェットが数日で更新を止めました。WidgetKit のタイムラインとリロード予算、拡張のメモリ上限を実測し、1日分のエントリをまとめて積む設計へ組み直した過程をまとめます。
レビュー導線を出したのに何も表示されない — Play In-App Review の数量制限と「表示保証なし」前提の設計
Play In-App Review API は launchReviewFlow が成功しても、ダイアログが表示されたとは限りません。数量制限・表示保証なし・テストでの無音化という3つの罠を解きほぐし、満足の瞬間に出して衝突を避ける発火設計を、Antigravity に実装させる手順とあわせて記録します。
StoreKit 2 で「課金したのに使えない」と言われたとき — サブスク権利状態のズレを直す運用メモ
StoreKit 2 のサブスクリプションは実装より運用でつまずきます。currentEntitlements と subscription.status のズレ、Transaction.updates の取りこぼし、未 finish トランザクション、復元と返金の扱いを、本番で効いた整流ロジックとともに記録します。
シェア画像の日本語だけが □ になる — Antigravity に next/og の CJK フォント供給を直させた実装メモ
next/og の ImageResponse で日本語タイトルだけが豆腐(□)になる。原因の Satori と woff2 の関係を解きほぐし、Google Fonts の text= サブセットをエッジで軽量に引き当てる実装を、Antigravity に直させる手順とあわせて記録します。
インストール直後だけ起動が一拍遅い — Baseline Profile で Android のコールドスタートを実測で詰めた手順
更新直後やインストール直後だけ Android アプリの起動が一拍もたつく原因を JIT と Cloud Profile の観点で切り分け、Baseline Profile でコールドスタートを実測で詰めた手順を、Macrobenchmark の構築から段階公開での監視まで個人開発の視点でまとめました。
リリースビルドだけで落ちる — R8 フルモードが Gson のマッピングを壊したときの調べ方と直し方
デバッグでは動くのにリリースだけでクラッシュする。R8 フルモードが Gson のリフレクションを壊す典型と、mapping.txt を使った原因特定、keep ルールの最小化までを実装視点でまとめます。