従量制回線と低データモードを尊重して先読みを止める通信設計
画像中心の Rork(Expo)アプリで、従量制回線や低データモードのときに先読みを抑える通信設計を扱います。NetInfo の details から回線の性質を読み、画質を落とし、プリフェッチを遅延させる適応ロジックを実装コードとともに整理します。
紹介コードで友達を招く仕組みを、重いバックエンドなしで設計する
Rork(Expo)アプリに紹介コードによる招待の仕組みを、専用サーバーを立てずに組み込みます。コード発行、遅延ディープリンクでの初回起動アトリビューション、二重付与を防ぐ冪等な報酬確定、自己紹介や端末重複への基本的な対策までを実装コード付きで扱います。
New Architecture へ移行したら本番だけ画面がカクつくとき — interop 層への静かなフォールバックを計測して切り分ける運用メモ
New Architecture へ切り替えた Rork アプリが、開発中は快適なのにリリースビルドの実機でだけ一覧スクロールがカクつく。原因は旧式ネイティブモジュールが interop 層へ静かにフォールバックしていたことでした。検知の計測と段階的な切り戻しの実務メモです。
Rork × Vision Camera v4:QR・OCR・ML推論まで本番投入できるカメラ機能を仕上げる実装ノート
Rork のアプリで React Native Vision Camera v4 を本番品質に仕上げる実装手順を、フレームプロセッサ・ML 推論・QR/OCR から、発熱対策・実機テストマトリクス・ストア審査・段階リリースまで通してお伝えします。
Rork Companion の無料実機テストをどこまで引っ張れるか — 有料 Apple Developer に切り替える判断点
Rork Companion なら有料 Apple Developer アカウント無しで実機テストできます。無料経路の限界点、$99 を払うべき具体的なトリガー、署名ビルド前に仕込む準備までを、6本のアプリを個人で運用してきた経験から整理します。
EAS Update を少人数から配り、クラッシュ率で自動的に止める
OTA 更新は一瞬で全員に届くからこそ、悪い更新も一瞬で全員に届きます。EAS Update を少人数(カナリア)から配り、クラッシュ率を見て広げるか止めるかを自動で判断し、最後は端末側で安全網を張る設計を、動くコードでまとめます。
リワード広告の報酬を、端末からの合図だけで配らない — Rork(Expo)アプリのSSV検証をWorkerで組む
リワード広告の「視聴完了」を端末側のコールバックだけで信じると、報酬の二重付与やなりすましが起こります。AdMobのサーバーサイド検証(SSV)コールバックをCloudflare Workerで署名検証し、transaction_idで冪等化して報酬を安全に配るまでの実装をまとめます。
Rork で出したアプリの本番クラッシュが minified のまま届くとき — Hermes のソースマップと debug ID を Sentry に通す
Rork が生成した Expo アプリの本番クラッシュが index.bundle:1:284913 のような数字だけで届く問題を、Hermes のソースマップと debug ID を Sentry へ正しく通して解消する手順をまとめました。
Rork のブラウザ・ライブシミュレータで確認できること、実機に移すべきこと
Rork のブラウザ内ライブシミュレータは試作の往復を一気に縮めてくれますが、すべてをそこで判断できるわけではありません。シミュレータで足りる確認と、Companion で実機に移すべき確認を、項目ごとに切り分けて整理します。
設定画面を1枚のスキーマから組み立て、複数アプリで使い回す
設定画面をアプリごとに手作業で作ると、運用するアプリが増えるほど破綻します。宣言的なスキーマから画面を組み立て、複数アプリで共通の土台を共有する設計を、動くコードとともに整理します。
無料プレビューがスクショで丸ごと持ち出される前に — Rork/Expo でスクリーンショットと画面収録を検知して目隠しする設計
Rork/Expo アプリで有料プレビュー画像をスクリーンショットと画面収録から守る実装。expo-screen-capture の限界、isCaptured のネイティブ監視、iOS/Android の差を踏まえた目隠し設計を解説します。
リリースを重ねたら起動が静かに重くなっていたとき — Rork運用で効いたTTI計測と起動バジェットのメモ
Rorkで作ったアプリの起動が、機能を足すうちに少しずつ重くなる。平均値では気づけないコールドスタートの劣化を、起動トレースとTTIマークで計測し、CIの起動バジェットで止めるまでの運用メモです。