Rork のテキスト入力にキーボード上のツールバーを足す — iOS の InputAccessoryView と Android の自前バーを1つの部品に揃える
Rork が生成した React Native アプリのテキスト入力に、キーボードの上へ固定する「完了」やクイック挿入ボタンのツールバーを足す方法です。iOS の InputAccessoryView と、Android で自前に組むバーを、1つの再利用コンポーネントへ畳む実装を実コードで残します。
クリップボード連携のUXを整える — iOSのペースト許可バナーを増やさずに「コピー」と「貼り付け」を成立させる
expo-clipboard で「コピー」と「貼り付け」を実装するとき、iOS のペースト許可バナーが頻発して使い勝手を損なうことがあります。バナーの発生条件を押さえ、hasStringAsync で内容を読まずにボタンを出し分ける設計をまとめました。
写真の「選択した項目だけ許可」に正しく向き合う設計
iOS の写真ライブラリ限定アクセス(選択した項目だけ許可)に Rork(Expo)アプリで正しく対応します。フルアクセス・限定・拒否の3状態の判定、選んだ写真だけを扱う前提の画面設計、追加選択を促す導線までを実装コードとともに整理します。
従量制回線と低データモードを尊重して先読みを止める通信設計
画像中心の Rork(Expo)アプリで、従量制回線や低データモードのときに先読みを抑える通信設計を扱います。NetInfo の details から回線の性質を読み、画質を落とし、プリフェッチを遅延させる適応ロジックを実装コードとともに整理します。
紹介コードで友達を招く仕組みを、重いバックエンドなしで設計する
Rork(Expo)アプリに紹介コードによる招待の仕組みを、専用サーバーを立てずに組み込みます。コード発行、遅延ディープリンクでの初回起動アトリビューション、二重付与を防ぐ冪等な報酬確定、自己紹介や端末重複への基本的な対策までを実装コード付きで扱います。
EAS Update を少人数から配り、クラッシュ率で自動的に止める
OTA 更新は一瞬で全員に届くからこそ、悪い更新も一瞬で全員に届きます。EAS Update を少人数(カナリア)から配り、クラッシュ率を見て広げるか止めるかを自動で判断し、最後は端末側で安全網を張る設計を、動くコードでまとめます。
Rork で出したアプリの本番クラッシュが minified のまま届くとき — Hermes のソースマップと debug ID を Sentry に通す
Rork が生成した Expo アプリの本番クラッシュが index.bundle:1:284913 のような数字だけで届く問題を、Hermes のソースマップと debug ID を Sentry へ正しく通して解消する手順をまとめました。
設定画面を1枚のスキーマから組み立て、複数アプリで使い回す
設定画面をアプリごとに手作業で作ると、運用するアプリが増えるほど破綻します。宣言的なスキーマから画面を組み立て、複数アプリで共通の土台を共有する設計を、動くコードとともに整理します。
無料プレビューがスクショで丸ごと持ち出される前に — Rork/Expo でスクリーンショットと画面収録を検知して目隠しする設計
Rork/Expo アプリで有料プレビュー画像をスクリーンショットと画面収録から守る実装。expo-screen-capture の限界、isCaptured のネイティブ監視、iOS/Android の差を踏まえた目隠し設計を解説します。
「本当に削除しますか?」を出す前に — 取り消せる削除という選択肢
リストの項目を消すたびに確認ダイアログを出すと、ユーザーは反射的にOKを押すようになります。Rork(Expo)アプリで「取り消せる削除」を実装し、確認を出すべき場面と出さない場面を切り分ける設計ノートです。
アップデート後の「新着情報」を、しつこくなく一度だけ出す設計 — バージョン境界とseen状態の作り方
更新後に出すアプリ内「新着情報」画面が、新規インストールにまで出たり毎回出たりして嫌われる問題を、バージョン境界とseen状態の設計で一度だけ確実に届ける。Rork(Expo)の実コードと、複数アプリで使い回す型までまとめます。
端末の時計を戻されても「今日の1枚」が崩れない設計 — 日替わりコンテンツの日付境界とストリーク整合
日替わりの「今日のコンテンツ」がタイムゾーン移動や端末時計の巻き戻しで二重表示・欠落・ストリーク消失を起こす問題を、決定論的な日付キーと単調クロックで防ぐ設計を、Rork(Expo)アプリの実コードでまとめます。