RORK LABEN
MAX — Rork Maxは全Appleプラットフォーム向けにネイティブSwiftアプリを生成します。iPhone・iPad・Apple Watch・Apple TV・Vision Proに対応しますPUBLISH — Rork MaxはXcodeなしで2クリックのApp Store公開に対応します。ビルドから申請までの手数を大きく減らせますFUND — Rorkはa16zから280万ドルを調達しました。月間743,000訪問・成長率85%と、利用が広がっていますNATIVE — Rorkは自然言語の指示からReact Native(Expo)のネイティブアプリを生成します。カメラや通知などデバイス機能も扱えますOWN — 生成されたコードは完全に自分のものになります。あとから手を入れて拡張していけますMVP — Rorkは動くMVPを数週間ではなく数時間で用意できます。アイデアの検証を素早く回せますMAX — Rork Maxは全Appleプラットフォーム向けにネイティブSwiftアプリを生成します。iPhone・iPad・Apple Watch・Apple TV・Vision Proに対応しますPUBLISH — Rork MaxはXcodeなしで2クリックのApp Store公開に対応します。ビルドから申請までの手数を大きく減らせますFUND — Rorkはa16zから280万ドルを調達しました。月間743,000訪問・成長率85%と、利用が広がっていますNATIVE — Rorkは自然言語の指示からReact Native(Expo)のネイティブアプリを生成します。カメラや通知などデバイス機能も扱えますOWN — 生成されたコードは完全に自分のものになります。あとから手を入れて拡張していけますMVP — Rorkは動くMVPを数週間ではなく数時間で用意できます。アイデアの検証を素早く回せます
記事一覧/開発ツール
開発ツール/2026-07-24上級

アプリの設定値を三層で解決する — 既定・ユーザー・リモートを境界付きにマージするレイヤー設計

既定値・ユーザー設定・リモート設定をひとつの型安全なレイヤーでマージする設計です。壊れたリモート値でもアプリが崩れないよう、キーごとに上書きの強さを変え、境界クランプと検証を通す実装を、実際の事故から起こしたコードで解説します。

Rork519React Native211設定管理Remote Config7アーキテクチャ20

プレミアム記事

深夜、手元の iPhone で自分の壁紙アプリを開いたら、画像を1枚めくるたびに全画面広告が挟まってきました。数十秒のあいだに二度、三度。胸の奥がひやりとしました。

原因はコードではありませんでした。リモート設定に置いていたインタースティシャル広告のクールダウン秒数が、何かの手違いで極端に小さい値になり、それがそのままアプリに配信されていたのです。しかも同じ設定を共有していた個人開発の壁紙アプリ6本すべてに、同時に。

このとき私自身が痛感したのは、「リモート設定はリモートで直せるから安全」という思い込みの危うさでした。リモートは確かに素早く直せます。けれど、壊れた値がユーザーの端末に届くまでの数十分、アプリは無防備なまま走り続けます。守るべき場所は配信元ではなく、値を受け取る側の端末でした。

取り上げたいのは、既定値・ユーザー設定・リモート設定という三つの源を、ひとつの型安全なレイヤーでマージし、壊れた値が入ってもアプリが崩れないようにする設計です。AdMob のインタースティシャル頻度をリモートで調整していた壁紙アプリ6本に、あの夜のあと実際に入れて運用しているコードをもとにしています。App Store 側の何を変えるでもなく、値を受け取る端末側だけで守れるのが、この設計の勘所でした。

設定の源は三つある、という前提から始める

多くのアプリで、設定値は無自覚に三層になっています。順に整理します。

一つ目はコードに埋め込んだ既定値です。ビルドに焼き込まれ、オフラインでも必ず存在します。型と初期値の source of truth はここに置きます。

二つ目はユーザー設定です。端末ローカル(AsyncStorage や MMKV)に保存され、ユーザーが明示的に選んだ好みを表します。プリフェッチ枚数やテーマなどが該当します。

三つ目はリモート設定です。Firebase Remote Config などから届く外部入力で、運営側が全ユーザーに素早く効かせたい値を入れます。広告頻度やレビュー訴求のタイミングが典型です。

問題は、この三層を「後から来たものが勝つ」という単純な上書きでマージしてしまうことです。あの夜の事故は、まさにリモートが何でも上書きできる設計だったから起きました。三層あること自体は避けられません。避けるべきは、層の強さを一律にすることです。

キーごとに「上書きの強さ」を変える

設計の核心は、値ごとに誰がどこまで上書きしてよいかを宣言することです。私は三種類のポリシーに落ち着きました。

locked — 誰も上書きできない安全弁

オンボーディングのバージョン切り替えのように、間違って動くと体験が壊れるフラグは locked にします。リモートもユーザーも触れず、常に既定値のまま。安全弁として、あえて動かせなくする判断です。

user — ユーザー設定だけが勝つ

プリフェッチ枚数のような純粋な好みは user ポリシーにします。リモートは介入せず、ユーザーが選んだ値だけが既定を上書きします。運営が勝手に変えてよい値ではないからです。

remote — 範囲を決めて、その中でだけ上書きを許す

広告クールダウンのように運営が調整したい値は remote にします。ただし丸ごと信じません。キーごとに min/max を定め、届いた値を必ずその範囲へクランプします。あの夜の3秒は、下限60秒に引き上げられて届くわけです。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
既定・ユーザー・リモートの三層を、キーごとに上書きの強さ(locked/user/remote)を変えて解決する型安全なマージ層の実装
壊れたリモート値を全体に波及させず、その1キーだけ既定へ落とす per-key フォールバックと min/max クランプの書き方
個人開発6本の壁紙アプリで実際に起きた設定事故と、そこから決めた運用上の判断(境界の決め方・記録の残し方)
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-07-24
同じ通信が同時に何本も飛ぶのを1本に束ねる — 参照カウント付きシングルフライト層の設計
起動直後に同じ API へ何本ものリクエストが同時に飛ぶ多重フェッチを、進行中の Promise を共有して1本に束ねる設計です。失敗した Promise を配り続けてしまう罠、呼び出し側の中断が全体を巻き込む罠を避ける、参照カウント付きシングルフライト層の実装を、実際の通信ログとともに残します。
開発ツール2026-07-14
AI再生成に壊されない設計 — Rork の生成コードと手書きロジックを分ける境界の引き方
Rork へ追加指示を出すたびに手書きのロジックが消える。プロンプトで守るのは対症療法です。生成コードと自分の所有コードを層で分け、再生成が届かない境界を設計で引く方法を、Zustand と service 層の実装例つきでお伝えします。
開発ツール2026-06-12
Rork 製アプリに開発者デバッグメニューを実装する — 広告・課金・Remote Config の検証をリリース前に終わらせる設計
リリースビルドでしか再現しない広告・課金・Remote Config の不具合に毎回本番で向き合うのは消耗します。壁紙アプリ6本の運用で固まった、ストア提出ビルドには存在ごと残さない開発者デバッグメニューの設計と実装を、動くコードと落とし穴付きで共有します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →