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中級

通知の許可は一度しか聞けない — Rork アプリにソフトアスク(事前確認)を実装して opt-in を底上げする

iOS の通知許可は一度拒否されると二度とダイアログを出せません。Rork(Expo)アプリで、起動直後に system prompt を撃つのではなく自前のソフトアスク画面を一枚挟み、価値が伝わった瞬間に許可を求める実装を expo-notifications で組みます。Android 13 の POST_NOTIFICATIONS、拒否後の設定誘導、opt-in 計測まで通します。

Rork499Expo139プッシュ通知18expo-notifications6オンボーディング10リテンション16

プレミアム記事

運用しているアプリのプッシュ通知の opt-in 率を並べて眺めていたとき、ある 1 本だけが極端に低いことに気づきました。中身はほぼ同じ構成の壁紙アプリなのに、通知を許可してくれた人の割合が他の半分以下だったのです。

原因はすぐに分かりました。その 1 本だけ、起動して最初の画面が出るより前に通知の許可ダイアログを出していたのです。ユーザーから見れば「何のアプリかまだ分からないのに、いきなり通知を求められた」状態でした。

iOS の通知許可には、個人開発者が必ず一度はぶつかる残酷な仕様があります。UNUserNotificationCenter の許可ダイアログは、アプリの生涯で一度しか自動表示できません。ユーザーが一度「許可しない」を押すと、コードから何度 requestPermissions() を呼んでも、もうダイアログは出ません。残された道は「設定アプリを自分で開いてもらう」だけになります。

つまり通知の opt-in は「いつ・どう聞くか」で決まります。起動直後に system prompt を撃つのをやめ、自前のソフトアスク(事前確認)画面を一枚挟む設計を、Rork(Expo)アプリに実装していきます。私自身が複数のアプリ運用で効果を確かめた構成です。

なぜ「一度しか聞けない」が opt-in を左右するのか

iOS では通知許可は三つの状態を持ちます。notDetermined(まだ聞いていない)、authorized(許可済み)、denied(拒否済み)です。重要なのは notDetermined のときだけ system prompt が表示でき、それ以外では requestPermissions() が即座に現在の状態を返すだけで、何も表示されないという点です。

notDetermined は、アプリの生涯でたった一回のチャンスです。ここで雑に消費してしまうと、二度と取り戻せません。

一方ソフトアスクは、私たちが自由に何度でも出せる「自前の UI」です。ここで断られても iOS の状態は notDetermined のまま保たれます。だから「自前ダイアログで一旦聞いて、同意してくれた人にだけ system prompt を出す」という二段構えが成立します。system prompt の前に一段クッションを置くことで、貴重な一回を本気で許可してくれそうな人にだけ使えるのです。

私の手元の運用では、起動直後に system prompt を撃っていたアプリと、ソフトアスクを挟んで価値が伝わった後に聞くアプリとで、最終的な OS 許可率に 2 倍以上の差が出ていました。通知は再訪のきっかけそのものなので、この差はそのまま AdMob やサブスクの収益にも効いてきます。

全体の流れを先に決める

実装に入る前に、判断の順序を固めておきます。コードはこの順序をそのまま写したものになります。

  1. アプリ起動時に現在の許可状態を読む。authorized ならもう何もしない
  2. denied なら自前ダイアログは出さず、必要な場面で「設定で通知をオンにできます」という導線だけ出す
  3. notDetermined のときだけ、ソフトアスクを出す「きっかけ」が来たかを判定する
  4. きっかけが来たらソフトアスク画面を表示する
  5. ソフトアスクで「オンにする」が押されたら、初めて system prompt(requestPermissions())を撃つ
  6. 「あとで」が押されたら状態は触らず、次のきっかけまで待つ

この 6 ステップのうち、多くのアプリが 3 と 4 を飛ばして起動直後に 5 をやってしまっています。クッションを置く価値はここにあります。

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

この記事の続きを読む

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

この記事で得られること
起動直後に system prompt を撃つと iOS では一度の拒否で永久に再表示できなくなる仕組みを理解し、ソフトアスクで「自前ダイアログ → 同意した人だけに system prompt」という二段構えを expo-notifications で実装できるようになる
通知の価値が伝わった瞬間(保存・完了・3 回目の起動など)まで許可を遅延させる『きっかけ』判定を TypeScript の状態管理で組み、許可率を計測する 3 つのイベント(提示・同意・OS 許可)を設計できるようになる
拒否されたユーザーを Linking.openSettings() で設定アプリへ誘導する復帰導線と、Android 13 の POST_NOTIFICATIONS ランタイム権限の差分を、本番運用の落とし穴込みで実装できるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-06-16
Expo のプッシュ通知トークンを本番で取りこぼさないために整えたこと
Rork で生成した Expo アプリに再訪促進のプッシュ通知を入れたところ、配信数がアクティブ数より明らかに少ない事態に直面しました。原因はトークンの取りこぼしと失効放置でした。取得から更新、サーバー保存、失効掃除までの運用設計を実装コード付きで記録します。
開発ツール2026-06-14
Rork アプリのプッシュ許可、いきなり出して断られていませんか — 事前許諾で取りこぼしを減らす設計
Rork(Expo)で作ったアプリの起動直後に OS のプッシュ許可ダイアログを出すと、断られた瞬間にもう二度と出せなくなります。一度断られると再表示できない iOS の仕様を踏まえ、自前の事前許諾画面で許可率を底上げする設計を、実装コード込みで整理しました。
開発ツール2026-06-25
通知が一部のユーザーにだけ届かない — Rork(Expo) アプリの到達率を診断して詰める設計
Rork で生成した Expo アプリで、プッシュ通知が一部のユーザーにだけ届かない問題を、送信から表示までの段に分けて診断し、到達率を計測して詰めるための設計を共有します。トークンの失効処理、APNs/FCM の失敗コード記録、優先度とメッセージ種別、特定ユーザーの切り分け手順まで実装込みで解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →