RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-04-28上級

Rork Max でスクリーンタイム制御アプリを実装する手順 — Family Controls / DeviceActivity / ManagedSettings

Rork Max でスクリーンタイム系アプリを実装する完全ガイド。Family Controls の認可、DeviceActivity の時間帯監視、ManagedSettings によるアプリブロックを Rork のカスタムネイティブモジュールに組み込む全工程を、ハマりどころとともに解説します。

Rork Max230ScreenTime APIFamily Controls2DeviceActivityManagedSettings2iOS開発15ネイティブモジュール9

プレミアム記事

スクリーンタイム制御アプリ — 集中力管理、ペアレンタルコントロール、SNS依存からの脱却 — は、ストアで毎月のように新しいヒット作が生まれている数少ないジャンルの一つです。私自身、Rork で個人開発を続けるなかで「特定のアプリを時間帯で自動ロックするだけのシンプルなアプリ」を作ろうとして、最初の壁にぶつかりました。Rork のデフォルトテンプレートでは、これらのアプリの根幹をなす Apple のフレームワーク(Family Controls / DeviceActivity / ManagedSettings)が一切使えないのです。

理由は明確で、これら3つのフレームワークはいずれも「Family Controls エンタイトルメント」と呼ばれる Apple から個別申請して取得する特権が必要であり、加えて App Extension(Background Process)との連携が前提になっているためです。Rork Max のように React Native + Expo ベースで動く環境では、デフォルトで Native Module が用意されていない領域に踏み込むと、自分でカスタムモジュールを書く必要があります。

このガイドでは、私が実際に Rork Max で「フォーカスタイム」系アプリを実装する過程で得た知見を、エンタイトルメント取得から App Store 審査通過まで、全工程を通して解説します。React Native のカスタムネイティブモジュール経験がある方を対象としていますが、初めての方でも順を追って実装できる構成にしています。

なぜ Rork デフォルトではスクリーンタイム系アプリが作れないのか

Rork Max の標準ビルドが提供しているのは、Expo SDK にバンドルされている標準的な機能群(カメラ、通知、位置情報、ストレージなど)です。スクリーンタイム制御に必要な3フレームワークは、ここに含まれていません。

具体的には、以下の制約に直面します。

  • FamilyControls フレームワークは Apple のプライベート許可モデルで動作し、エンタイトルメント com.apple.developer.family-controls が無いとビルド自体が通りません
  • DeviceActivity フレームワークは「時間帯になったらコールバックする」処理を、メインアプリではなく App Extension(DeviceActivityMonitor Extension)として実装することを要求します
  • ManagedSettings でアプリをブロックする処理は、メインアプリ・Extension の双方からアクセスできる App Group 経由でのデータ共有を前提にしています

Rork で「単なる UI 制御アプリ」を作る分には Vibe Coding でほぼ完結できますが、スクリーンタイム制御は OS レベルの権限・Extension・データ共有という3つのレイヤーを跨ぐため、必然的にネイティブモジュールの実装と Xcode 側の設定が発生します。ここを誤魔化さずに、最初から「Rork + Custom Native Module + Extension Target」という構成で組むのが、結局いちばんの近道でした。

全体アーキテクチャ — 3つのフレームワークの役割を整理する

実装に入る前に、それぞれの役割を整理しておきましょう。混同するとあとで必ず詰まります。

  • FamilyControls は「ユーザーから利用許可を得る」「ユーザーに制御対象アプリを選ばせる」役割を担います。FamilyActivityPicker がコアの SwiftUI コンポーネントで、ユーザーがアプリを選んだ結果は FamilyActivitySelection というプライバシー保護された不透明なトークンとして返ってきます
  • DeviceActivity は「特定の時間帯(スケジュール)になったら起動する」「特定のしきい値(例: 30分使ったら)に達したらコールバックする」というスケジューリング機構です。実体は App Extension で、メインアプリが起動していなくても OS から呼び出されます
  • ManagedSettings は「実際にアプリをブロックする」「シールド画面を出す」役割を担います。ManagedSettingsStore に対して FamilyActivitySelection を渡すと、選ばれたアプリに即座にシールドがかかります

つまり「ユーザーに対象を選ばせる(FamilyControls)→ スケジュールを登録する(DeviceActivity)→ 時間が来たら自動的にブロック(ManagedSettings)」という3段ロケットの構造です。

Rork プロジェクトに組み込む構成

私が落ち着いた構成は次の通りです。

  • メインアプリ(Rork Max ビルド): React Native UI、カスタムネイティブモジュール経由で Swift 側の API を呼び出す
  • Native Module(Swift): FamilyControls の認可リクエスト、ピッカー表示、スケジュール登録、シールド適用のブリッジ
  • DeviceActivityMonitor Extension(Swift): メインアプリとは別ターゲット。スケジュール開始/終了時のコールバックを受け、ManagedSettings 経由でシールドを適用
  • App Group: group.{your-bundle-id}.shield をメインアプリと Extension の両方に追加し、UserDefaults(suiteName:) で FamilyActivitySelection を共有

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

この記事の続きを読む

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

この記事で得られること
Rork デフォルト構成ではスクリーンタイム系アプリが作れない理由を理解し、必要な3つの Apple フレームワークを Rork Max のカスタムネイティブモジュールに組み込む全手順を手に入れられる
FamilyActivityPicker・DeviceActivityCenter・ManagedSettingsStore それぞれの動作確認済みコードと、App Group 設計・エンタイトルメント取得・審査通過のための具体的な対策を習得できる
『FamilyActivitySelection が他アプリでは扱えない』『App Extension とのデータ共有でブロックが効かない』など、5つの典型的な落とし穴を回避し、本番運用できるスクリーンタイム制御アプリを公開できるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-05-17
Rork Max の SwiftUI 機能を壁紙アプリ開発で検証した結果 — 実際に動いた機能と手を入れた機能
累計5,000万DLの壁紙アプリを開発してきた立場で、Rork MaxのSwiftUIネイティブ生成機能を実際に検証しました。「動いた機能」「手を入れた機能」「生成を諦めた機能」を具体的なコードと共に解説します。
開発ツール2026-05-04
Rork Max で子ども向けアプリを作る — App Store Kids カテゴリ審査・COPPA対応・ペアレンタルゲートの実装ガイド
Rork Max で子ども向けアプリを開発・公開するための完全ガイド。App Store Kids カテゴリの審査基準、COPPA 準拠の実装パターン、ペアレンタルゲートのコード例、Ask to Buy 対応まで、個人開発者が実際に直面する落とし穴を軸に解説します。
開発ツール2026-04-27
Rork Max × Apple TipKit 実装ガイド — オンボーディング離脱を減らすアプリ内ガイダンス設計
Rork Max のネイティブモジュール経由で iOS 17 以降の TipKit を組み込み、オンボーディング離脱を減らす本番運用レベルのアプリ内ガイダンスを設計する完全実装ガイドです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →