RORK LABEN
PLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっていますPLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっています
記事一覧/開発ツール
開発ツール/2026-05-09上級

Rork の A/B テスト基盤を GrowthBook と PostHog でゼロから組む

Firebase に頼らず、GrowthBook と PostHog をオープンソースで組み合わせて Rork アプリの A/B テスト基盤を構築する手順を、SDK 統合からベイズ統計の解釈、運用上の落とし穴までまとめました。

GrowthBookPostHog3A/Bテスト9Feature Flags2Cloudflare Workers24Rork547実験基盤

プレミアム記事

2025 年の終わり頃、自分の壁紙アプリで「定期購入のオンボーディング画面を 3 種類比較したい」という小さな実験を Firebase A/B Testing で回そうとして、結局やめてしまったことがありました。理由は単純で、必要な統計的検出力に届くサンプル数を集めるには 3 週間以上かかること、Remote Config の更新が端末に反映されるまでのタイムラグがコホートを濁すこと、そして Firebase の課金が他の機能と紐付いて切り離しにくいことの 3 点でした。

それから、いくつかの代替を試した結果、私自身の運用に一番フィットしたのが GrowthBook(実験エンジン)と PostHog(プロダクト分析)の組み合わせでした。両方ともオープンソースで、自己ホストすればコストはサーバー代だけ。Rork で書き出した React Native アプリには公式の SDK が動き、Cloudflare Workers をエッジ評価に使えば、フラグ取得のレイテンシは Firebase Remote Config よりも安定して短く抑えられます。

ここではRork で開発したアプリにこの 2 つを組み込み、最初の実験を回すまでの全工程を、自分が運用で使っているそのままの形で書きます。途中で詰まりがちな統計の話と、本番運用で痛い目を見ないための運用パターンも添えます。

なぜ Firebase ではなく GrowthBook + PostHog なのか

Firebase Remote Config と Firebase Analytics の組み合わせは、最初の A/B テストを始めるなら確かに最短経路です。ただ実験を本格的に回し始めると、いくつかの不便さが見えてきます。

ひとつは統計エンジンの不透明さで、Firebase A/B Testing は内部のベイズ統計エンジンの仮定をユーザー側で調整できません。事前分布や有意水準を変更したいケース、CUPED(Controlled-experiment Using Pre-Experiment Data)で分散削減したいケースには手が届きません。

もうひとつは実験設計と分析の分離です。Firebase Remote Config はフラグ配信、Firebase Analytics はイベント収集と機能が分かれており、実験の途中経過を一画面で追えません。GrowthBook は実験の定義・配信・解析を 1 つのダッシュボードで提供し、PostHog をデータソースに指定すれば PostHog のイベント定義をそのまま実験のメトリクスとして使えます。

最後に、自己ホストでベンダーロックインを避けられるのも私が現在この構成を選んでいる理由です。GrowthBook は MIT ライセンス、PostHog はコア部分が MIT/Apache 2.0 ライセンスで、両方とも Docker コンテナで動きます。GrowthBook Cloud には 3 ユーザーまで使える無料枠があり、PostHog Cloud にも月 100 万イベントまでの無料枠があるので、いきなり自己ホストにせずクラウド版を入口にしてもよいでしょう。私自身は最初の半年は両方クラウド版で運用し、月の請求が見えてきた段階で GrowthBook だけ Fly.io に移しました。

構成の全体像

実験基盤は次の 4 つのコンポーネントで構成します。

  • GrowthBook 管理画面:実験の定義・配信ルール・統計解析を担う Web UI と API。GrowthBook Cloud か自己ホスト(Fly.io / Railway / Hetzner)。
  • GrowthBook Edge SDK on Cloudflare Workers:機能フラグを Rork アプリに低レイテンシで配信するエッジ評価レイヤー。
  • PostHog:イベント収集・ファネル分析・コホート定義のデータ基盤。GrowthBook の指標ソースとしても利用。
  • Rork アプリ(React Native / Expo)@growthbook/growthbook-reactposthog-react-native を組み込み、ユーザー識別と暴露ログを送る。

この構成では、ユーザーがアプリを起動した瞬間に Cloudflare Workers が GrowthBook の最新フラグセットを返し、暴露イベントは PostHog に流れます。GrowthBook 管理画面は PostHog の $pageviewsubscription_started といった既存イベントを集計し、ベイズ統計で勝ち負けを判定します。

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

この記事の続きを読む

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

この記事で得られること
GrowthBook と PostHog の自己ホストを Rork アプリに繋ぎ込み、Firebase に依存しない A/B テスト基盤をその日のうちに動かせる
Cloudflare Workers の Edge SDK を介して機能フラグの評価レイテンシを 30ms 以下に抑える具体的な実装パターンを習得できる
ベイズ統計の指標を読み解いて『有意になったから勝ち』ではなく『どこで止めるか』を自分で判断できるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-08-01
実験の割り当てが同じ端末に偏る — 100万件のIDで確かめたハッシュ選定と salt の位置
端末側で実験の変種を決める割り当てが、実験を2本並べた途端に同じ端末へ集中しました。100万件のIDで4つのハッシュを測り、原因がハッシュの一様性ではなく salt の連結位置にあったこと、そして採用した実装までを実測値とともに残します。
開発ツール2026-07-11
StoreKit 2 の署名付きトランザクションを Cloudflare Worker で検証する
端末が申告した課金状態をそのまま信じると、改ざんされたエンタイトルメントを通してしまいます。StoreKit 2 の署名付きトランザクション(JWS)を Cloudflare Worker 側で検証し、端末を信用せずに権利を付与する設計と実装を、動くコードとともに整理します。
開発ツール2026-06-22
無印 Rork と Rork Max を1つのバックエンドで支える — 旧バイナリを壊さない API レスポンス契約の設計
無印 Rork(React Native / Expo)と Rork Max(ネイティブ Swift)が同じ Cloudflare Workers バックエンドを叩く構成では、強制アップデートできない旧バイナリを壊さないことが設計の中心になります。レスポンスを封筒型にして加算のみで育て、能力フラグでクライアント差を吸収し、古いバージョンを安全に畳むまでを実装で示します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →