アプリスイッチャーに個人的な画面が残る——背景へ回した瞬間のスナップショットを隠す設計
Rork が生成した React Native アプリをホームに戻すと、iOS はその瞬間の画面をアプリスイッチャー用に撮影してディスクに保存します。手記や個人的な入力画面はそこに残り、第三者の目に触れます。iOS の目隠しオーバーレイ(inactive で出す理由)、Android の FLAG_SECURE、機密画面だけに絞る方法、スクショ検知までを動くコードで示します。
壊れたキャッシュで毎回起動時に落ちるアプリ——ユーザーが自力で抜け出せる「セーフモード起動」を設計する
永続化したキャッシュが壊れて起動のたびに同じ場所で落ちると、ユーザーには再インストールしか残りません。アプリ自身が早期クラッシュの連続を数え、対話可能になって初めて起動を確定し、危険な状態だけを段階的にリセットするセーフモードを、Expo(React Native)の実装で設計します。
毎朝違う一言を出す日替わりリマインダーが、ある日から鳴らなくなる——iOSの保留64件という見えない上限
Rork(Expo)で作った日替わりリマインダーが、しばらく経つと無言で止まる原因はiOSの保留通知64件上限です。固定文言のカレンダートリガーと、日替わりコンテンツのローリング再スケジュールを動くコードで設計し、サマータイムや複数リマインダー併用でも狂わない通知を組みます。
Rork(Expo)のトーストは、重なっても読み上げられても崩れない設計にする
Rork が生成した React Native アプリにトースト通知を足すとき、単純な実装は『同時に2つ出ると重なる』『スクリーンリーダーに無視される』『ノッチやホームインジケータに隠れる』の3点で破綻します。ルート1か所に置くキュー設計、本体の再レンダーから切り離すアニメーション、AccessibilityInfo による読み上げ、セーフエリア対応までを動くコードで示します。
無印 Rork と Rork Max を1つのバックエンドで支える — 旧バイナリを壊さない API レスポンス契約の設計
無印 Rork(React Native / Expo)と Rork Max(ネイティブ Swift)が同じ Cloudflare Workers バックエンドを叩く構成では、強制アップデートできない旧バイナリを壊さないことが設計の中心になります。レスポンスを封筒型にして加算のみで育て、能力フラグでクライアント差を吸収し、古いバージョンを安全に畳むまでを実装で示します。
壁紙アプリは作った後が長い — Rork運営で効いたコンテンツ供給・継続率・収益の保ち方
壁紙アプリは初回リリースより、その後の運用で差がつきます。Rorkでの実装を土台に、コンテンツの鮮度を保つ予約投稿、初週で離れさせない継続率設計、時間とともに痩せていく収益を支える仕組みを、運営で効いた実装メモとしてまとめました。
Rork(Expo)生成アプリに OpenAI の鍵を直書きすると抜かれます — Workers で薄い中継を1枚挟む設計
Rork が生成した Expo アプリに OpenAI や Gemini の API キーをそのまま埋め込むと、ビルド済みアプリから抜き取られます。なぜ「アプリに入れた鍵」は秘密にならないのかを整理し、Cloudflare Workers で鍵を隠す最小の中継、濫用対策、審査不要の鍵ローテーションまでを実装で示します。
Rorkアプリの写真が、アップロードした先でだけ横向きになる——EXIF Orientation の正規化と位置情報メタデータの削除
端末では正しく見える写真が、サーバーや他端末でだけ90度回転する原因はEXIF Orientationです。expo-image-manipulatorで回転を焼き込み、位置情報メタデータを削除してからアップロードする実装を解説します。
Xcode を介さない公開で抜け落ちる事前確認を、自分で取り戻す
Rork Max の2クリック公開は Xcode の Organizer を通らないぶん、用途文言・バージョン・Bundle ID の取りこぼしに気づきにくくなります。提出前に自分でできる自己点検の手順を、生成物の読み方つきで具体的に整理しました。
壁紙グリッドに戻ると一番上に戻ってしまう — スクロール位置を「戻る」とプロセス復帰の両方で保つ
壁紙アプリの一覧で詳細を見て戻ると先頭に飛んでしまう問題を、ナビゲーションの戻りとプロセス復帰の二つに分けて設計し直しました。getItemLayout と保存タイミング、復元時のちらつきまで含めた実装メモです。
通知をタップしたのに目的の画面に飛ばない——Rorkアプリのルーティングを起動状態ごとに設計する
通知タップでアプリが起動したとき、目的の画面まで確実に届ける設計。killed / background / foreground の3状態と、ナビゲーション準備前のタップを取りこぼさない pending route の実装を解説します。
Rork アプリの認証トークンはどこに保存すべきか — expo-secure-store と生体認証ゲートの設計
Rork で生成したアプリの認証トークンを AsyncStorage から expo-secure-store へ移し、生体認証を読み出しの前段に挟むまでの設計をまとめました。サイズ制限や失効処理など、運用で踏んだ落とし穴も添えています。