RORK LABEN
FUNDING — Rorkが$15Mを調達。モバイル特化のノーコードAIという立ち位置に投資家の評価が集まっていますMAX-NATIVE — Rork MaxはAR/LiDAR・Metal 3D・ウィジェット・Dynamic Island・Live Activities・HealthKit・Core MLなど、React Nativeでは届かないネイティブ領域に対応MOBILE-FIRST — BoltやLovableがWebアプリ中心なのに対し、Rorkはモバイルアプリ専業。説明文から本番品質のアプリを生成しますWWDC — WWDC26が閉幕。AIがOSのコア機能となり、iOS 27世代へ。ウィジェットやLive Activitiesの価値がさらに上がる局面ですPRICING — Rorkは無料で開始でき有料$25/月〜、Rork Maxは$200/月。Expoで素早く検証し、必要に応じてMaxでネイティブ化する多段戦略が現実的ALL-APPLE — Rork MaxのSwift直接生成はiPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageまでカバーしますFUNDING — Rorkが$15Mを調達。モバイル特化のノーコードAIという立ち位置に投資家の評価が集まっていますMAX-NATIVE — Rork MaxはAR/LiDAR・Metal 3D・ウィジェット・Dynamic Island・Live Activities・HealthKit・Core MLなど、React Nativeでは届かないネイティブ領域に対応MOBILE-FIRST — BoltやLovableがWebアプリ中心なのに対し、Rorkはモバイルアプリ専業。説明文から本番品質のアプリを生成しますWWDC — WWDC26が閉幕。AIがOSのコア機能となり、iOS 27世代へ。ウィジェットやLive Activitiesの価値がさらに上がる局面ですPRICING — Rorkは無料で開始でき有料$25/月〜、Rork Maxは$200/月。Expoで素早く検証し、必要に応じてMaxでネイティブ化する多段戦略が現実的ALL-APPLE — Rork MaxのSwift直接生成はiPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageまでカバーします
記事一覧/開発ツール
開発ツール/2026-06-13上級

フィーチャーフラグが散らかる前に — 命名・段階公開・キルスイッチを6本横断で統治する設計

リモート設定でフラグを増やしていくと、半年後には誰も意味を覚えていないキーが並びます。命名規約・デフォルトの安全側・段階公開・キルスイッチ・棚卸しを、6本並行運用の実装とともに統治の仕組みとして整理しました。

フィーチャーフラグリモート設定運用設計4Firebase9ガバナンス

プレミアム記事

リモート設定に最初のフラグを入れた日のことは、よく覚えています。新しいオンボーディング画面を一部のユーザーにだけ出すための new_onboarding というキーでした。便利でした。あまりに便利だったので、半年後には30個近いフラグが並び、test2enable_v3_real のような、もう誰も意味を説明できないキーがいくつも残っていました。

フィーチャーフラグそのものは強力です。問題は、増やすのが簡単で消すのが面倒という非対称性にあります。6本のアプリで同じことが同時に起きると、設定画面はあっという間に荒れ地になりました。ここでは、その荒れ地を作らないために決めた統治の仕組みを、実際の命名規約と段階公開・キルスイッチの実装とともに共有します。

命名規約 — 半年後の自分が読める形に

最初に決めたのは命名規約です。フラグ名から「どのアプリの」「何の」「いつまでの」フラグかが読めるようにしました。

<scope>.<domain>.<name>.<kind>

例:
  wallpaper.onboarding.skip_tutorial.release   # 全アプリ共通・恒久
  fortune.paywall.intro_offer_v2.experiment    # 占い系のみ・実験
  all.admob.interstitial_enabled.ops           # 全アプリ・運用スイッチ

末尾の kind が肝です。フラグの寿命を3種類に分けています。release は新機能を段階的に出すための一時的なもの、experiment はA/Bテスト用でテスト終了とともに消すもの、ops はキルスイッチのように恒久的に残す運用スイッチです。この分類があると、後述する棚卸しのときに「これは消していいのか」を機械的に判断できます。

scope でアプリ群を指定できるようにしたのは、6本のうち占い系3本にだけ効かせたい設定が頻繁にあったからです。all は全アプリ、それ以外はアプリグループIDで絞ります。

デフォルトは必ず安全側へ

リモート設定の最大の落とし穴は、通信に失敗したときの挙動です。起動直後やオフラインでは、フラグの値がまだ取れていません。ここで「フラグが取れていない=機能ON」と書いてしまうと、まだ検証中の機能が全ユーザーに漏れます。

原則として、フラグが取れないときは「これまでどおりの安全な状態」に倒れるようにします。新機能のフラグなら既定はOFF、機能を止めるための運用スイッチなら既定はON(=止めない)です。

import remoteConfig from '@react-native-firebase/remote-config';
 
// 取得できないときに倒す先を、フラグごとに明示する
const DEFAULTS = {
  'wallpaper.onboarding.skip_tutorial.release': false, // 新機能 → 既定OFF
  'all.admob.interstitial_enabled.ops': true,          // 運用 → 既定は止めない
} as const;
 
export async function initFlags(): Promise<void> {
  await remoteConfig().setDefaults(DEFAULTS);
  await remoteConfig().setConfigSettings({
    minimumFetchIntervalMillis: 60 * 60 * 1000, // 通常は1時間キャッシュ
  });
  // 失敗しても DEFAULTS が効くので、ここでは握りつぶさず記録だけ残す
  try {
    await remoteConfig().fetchAndActivate();
  } catch (e) {
    logFlagFetchError(e);
  }
}
 
export function flag(key: keyof typeof DEFAULTS): boolean {
  return remoteConfig().getValue(key).asBoolean();
}

setDefaults にすべてのフラグの安全側の値を明示しておくのが要点です。これを書いておけば、サーバーに一度も到達できていない端末でも、必ず定義済みの安全な挙動になります。私はこの「既定値の一覧」をコードのなかで唯一の真実として扱い、新しいフラグを足すときは必ずここに既定を書いてからリモート側に作る、という順番を守っています。

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

この記事の続きを読む

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

この記事で得られること
半年後も意味が追える命名規約と、フラグの寿命を3種類に分ける分類の具体的なルール
通信失敗時に必ず安全側へ倒れるデフォルト設計と、段階公開を5%刻みで回す実装
本番で30秒以内に機能を止めるキルスイッチと、死んだフラグを毎月棚卸しする運用手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-06-03
Rork製6アプリで分析イベントを型で守る — 共有イベント層の設計メモ
6本のアプリでイベント名がバラつき分析が破綻した経験から、型付きイベントレジストリと薄いラッパーで送信を一元化し、CIで定義の差分を検出する設計を実装コード付きでまとめます。
開発ツール2026-05-24
AI 機能のコスト上限を実行時に強制する設計 — Rork アプリの予算ガード・アーキテクチャ
AI 機能のコストが想定外に跳ねる事故を、最適化ではなく実行時の強制で防ぐ設計を、廣川政樹がアーティスト兼個人開発者の運用視点から、Cloudflare Durable Objects と React Native のコードレベルで解説します。
開発ツール2026-05-19
Firebase App Check を Rork に段階的に enforcement する — AdMob 不正検知と Crashlytics を壊さない実運用設計
Firebase App Check を本番投入したいが Crashlytics や AdMob を壊したくない、という個人開発者向けに、Rork から DeviceCheck と Play Integrity を段階的に有効化する設計とロールバック手順をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →