すべての記事
端末の空き容量が尽きたとき、アプリは何を守るか
書き込み失敗を前提に設計するExpo/React Nativeアプリの耐性パターン。空き容量予算・LRU退避・データ保護優先度・無言失敗を防ぐテレメトリまで、6本の壁紙アプリの運用から得た実装をまとめました。
App Store の新しい年齢別レーティングに答え直す — 複数アプリで実際に変わった項目とつまずき
13+/16+/18+ が加わった新しい年齢別レーティングの質問に、運用中のアプリで答え直したときの記録です。4つの新カテゴリ、最低年齢の引き上げ、Rork で公開したアプリでの実務をまとめました。
高さの異なる画像を2列で美しく並べる—Rork の Expo アプリで壁紙ギャラリーを段組みにする
縦横比のばらつく画像を numColumns では美しく並べられない理由から、列の高さを見て振り分ける段組みアルゴリズム、FlashList の masonry での仮想化、依存を増やさない実装まで、壁紙ギャラリーを実コードで組みます。
アイコンのバッジが「3」のまま消えない — Expoアプリのバッジ数をSource of Truthで作り直す
Expoアプリのアイコンバッジが実際の未読と食い違い、消えなくなる原因を突き止め、バッジ数を状態から再計算して同期するSource of Truth設計を、動くコードと実運用の落とし穴つきで整理します。
アプリ内レビュー依頼を出しているのに評価が増えないとき — 表示率とタイミングを計測して立て直す運用メモ
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 を同期対象から外して再発を止めるまでの手順を、個人開発の実体験としてまとめます。
Mac を持たずに Rork のアプリを実機まで出す — ブラウザ内シミュレータの守備範囲と落とし穴
Rork のブラウザ内シミュレータで Mac なしにアプリを試せる一方、実機でしか出ない不具合があります。シミュレータで確かめられること・確かめられないことを切り分け、提出前に実機の壁を越えるための手順を整理します。
ワンタイムコードの入力欄をExpoで作る — SMS自動入力とセグメント表示を両立させる
6桁の確認コードを入れる画面は、見た目こそ単純ですが、SMSの自動入力・貼り付け・1文字ずつの削除まで含めると意外と作り込みが必要です。iOSとAndroidの自動入力を最初に押さえ、単一のTextInputで崩れにくいセグメント表示を組む実装をまとめました。
Rork 製アプリの expo-sqlite で、テーブル構造を変えてもデータを消さない — PRAGMA user_version で作る順次マイグレーション
「no such column」で起動直後に落ちる。テーブル構造を変えた新バージョンを既存ユーザーに配ると起きる事故です。expo-sqlite の PRAGMA user_version を使い、カラム追加・テーブル再構築・外部キーを含むスキーマ変更をユーザーデータを守りながら順に適用する設計を、実装の全文と運用ルールとしてまとめました。