すべての記事
アプリ内レビュー依頼を出しているのに評価が増えないとき — 表示率とタイミングを計測して立て直す運用メモ
Rork アプリで expo-store-review を組み込んだのに星の数が伸びない。OS がダイアログを黙って抑制するため、呼び出しても表示されているとは限りません。表示機会を計測してタイミングを設計し直す運用メモです。
どの生成でこの不具合が入ったのか — Rork アプリに生成来歴を刻む長期運用設計
AI ビルダーで同じ画面を何度も作り直していると、ある日現れた不具合がどの生成で入ったのか追えなくなります。ビルドスタンプ・生成台帳・テレメトリ埋め込みの3層で生成来歴を残し、リグレッションを世代単位で絞り込む設計をまとめました。
Rork Max の SwiftUI を @Observable へ移す — ObservableObject で広がっていた再描画を絞り込む
Rork Max が生成する SwiftUI アプリは ObservableObject と @Published をよく使いますが、状態が一つ変わるだけで購読しているビュー全体が再評価されます。Observation フレームワークの @Observable へ移すことで、プロパティ単位に再描画を絞り込む手順と、Instruments で実測したビュー実行回数の変化を、個人開発の作業ログとしてまとめました。
Rork Max のアプリ機能を Apple Intelligence に開く — App Intents Assistant Schemas の設計と、収まらない機能の逃がし方
Rork Max が生成した Swift アプリの操作を Apple Intelligence から呼べるようにする App Intents Assistant Schemas の設計を、固定スキーマへの当てはめ方・収まらない機能の逃がし方・実機での確認手順まで含めて実装ノートとしてまとめます。
クラウド同期フォルダでアプリ開発するとビルドが壊れる — 生成物を同期から外して根治した話
Dropbox や iCloud Drive に置いたプロジェクトで、ある朝ビルドが通らなくなりました。原因は同期がビルド生成物に割り込んで作る競合コピー。node_modules や Pods を同期対象から外して再発を止めるまでの手順を、個人開発の実体験としてまとめます。
Rork 製アプリの expo-sqlite で、テーブル構造を変えてもデータを消さない — PRAGMA user_version で作る順次マイグレーション
「no such column」で起動直後に落ちる。テーブル構造を変えた新バージョンを既存ユーザーに配ると起きる事故です。expo-sqlite の PRAGMA user_version を使い、カラム追加・テーブル再構築・外部キーを含むスキーマ変更をユーザーデータを守りながら順に適用する設計を、実装の全文と運用ルールとしてまとめました。
Rork Max のアプリで、選んだ写真が次回起動時に消えている — PHPicker の限定アクセスで URL を握り続けようとする罠
Rork Max が生成したネイティブ Swift アプリで、PHPickerViewController で選んだ写真が再起動後に読めなくなる——限定アクセスの時代に URL や PHAsset を握り続けようとするのが原因でした。選んだ瞬間に自前ストレージへ実体をコピーする設計をまとめます。
Rork Max のアプリでアプリを起動せずに Live Activity を出す — push-to-start トークンが無言で取れない時の設計
Rork Max が生成したネイティブ Swift アプリで、アプリを一度も開かずにサーバから Live Activity を開始したい。ところが push-to-start トークンが観測できず無言で失敗する——その原因と、トークンを確実に取り切る観測レイヤーの実装をまとめます。
Rork Max の健康アプリで、朝になると歩数が更新されない — HKObserverQuery が無言で止まる background delivery の設計
Rork Max が生成したネイティブ Swift の健康アプリで、アプリを閉じている間の歩数や心拍が反映されない——その多くは HKObserverQuery の background delivery が無言で止まっていることが原因でした。切り分けと、そのまま組み込める観測レイヤーの実装をまとめます。
Rork Max 生成アプリで端末同士を直接つなぐ — MultipeerConnectivity が無言で失敗する Local Network 権限の罠
Rork Max が生成したネイティブ Swift アプリに、サーバを介さず近くの端末同士をつなぐ共有機能を組み込む方法です。シミュレータでは動くのに実機でピアが見つからない——その多くは Local Network 権限まわりの無言の失敗が原因でした。
「続きを読む」を出すべきか、テキストの実測で決める — Rork(Expo)の折りたたみ表示設計
商品説明やレビュー本文を3行で畳み「続きを読む」を出す実装で、短い文にまでトグルが付いてしまう問題を解決します。onTextLayout で実際の行数を測り、はみ出す時だけトグルを出す設計を、iOS と Android の差、展開アニメーション、文字サイズ拡大への配慮まで動くコードでまとめます。
App Store Connect API の日次集計が月末に合わなくなるとき — JWT 失効・レポート確定遅延・突合の運用メモ
App Store Connect API で自動化した売上・レビュー収集は、止まらずに「欠け」ます。401/404/429 が生む3種類の静かな欠損を fetch ログと突合クエリで検出し、バックフィルで埋める運用設計を実装コード付きでまとめます。