RORK LABEN
ENGINE — Rork MaxはClaude CodeとClaude Opus 4.6を基盤に、ネイティブSwiftアプリを直接生成しますCORE ML — Rork MaxからCore MLの端末内推論・HealthKit・HomeKit・NFC・App Clipsといった機能に手が届きますSEED — Rorkは2026年4月にLeft Lane Capital主導で$15Mのシードを調達し、Peak XVやa16z Speedrunが参加しましたM&A — Rorkはアプリビルダー Paperline を買収し、エンジニアリング人材の獲得を目的に買収を継続する方針ですMARKET — Gartnerは2026年末までに新規アプリの75%がローコードまたはノーコードで作られると予測していますGROWTH — ノーコードAI市場は2024年の$4.9Bから2029年に$24.8Bへ、年38.2%の成長が見込まれていますENGINE — Rork MaxはClaude CodeとClaude Opus 4.6を基盤に、ネイティブSwiftアプリを直接生成しますCORE ML — Rork MaxからCore MLの端末内推論・HealthKit・HomeKit・NFC・App Clipsといった機能に手が届きますSEED — Rorkは2026年4月にLeft Lane Capital主導で$15Mのシードを調達し、Peak XVやa16z Speedrunが参加しましたM&A — Rorkはアプリビルダー Paperline を買収し、エンジニアリング人材の獲得を目的に買収を継続する方針ですMARKET — Gartnerは2026年末までに新規アプリの75%がローコードまたはノーコードで作られると予測していますGROWTH — ノーコードAI市場は2024年の$4.9Bから2029年に$24.8Bへ、年38.2%の成長が見込まれています
記事一覧/開発ツール
開発ツール/2026-06-13上級

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

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

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

プレミアム記事

リモート設定に最初のフラグを入れた日のことは、よく覚えています。新しいオンボーディング画面を一部のユーザーにだけ出すための 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-07-10
クライアントに置いた鍵は公開情報 — Rork 生成アプリの秘密境界とローテーション手順
生成された Expo アプリの .ipa を展開すると、環境変数がそのまま文字列として現れます。鍵を3層に分類し、置けないものをプロキシへ逃がし、漏れた前提のローテーション手順書を用意するまでの設計をまとめます。
開発ツール2026-06-18
Rorkアプリの本番クラッシュを「読める」レポートに変える — dSYM復元と文脈ログ、段階配布の実装メモ
Crashlyticsを入れたのにスタックトレースが読めない——dSYM/mapping復元、文脈を持たせるログ設計、App DistributionとGitHub Actionsの段階配布までを実装メモとしてまとめます。
開発ツール2026-06-16
Expo のプッシュ通知トークンを本番で取りこぼさないために整えたこと
Rork で生成した Expo アプリに再訪促進のプッシュ通知を入れたところ、配信数がアクティブ数より明らかに少ない事態に直面しました。原因はトークンの取りこぼしと失効放置でした。取得から更新、サーバー保存、失効掃除までの運用設計を実装コード付きで記録します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →