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-06-03上級

iOS 18 のコントロールセンターに壁紙シャッフルを置く — Rork アプリへの ControlWidget 実装メモ

iOS 18 で開放されたコントロールセンターのカスタムコントロール(ControlWidget)を、Rork で作った React Native 製の壁紙アプリに足すまでの実装メモです。App Group 共有・AppIntent・config plugin の現実的な手順をまとめました。

iOS 185ControlWidgetApp Intents6Expo149壁紙アプリ28

プレミアム記事

「ロック解除しなくても、今日の壁紙を変えたい」——これは私が運用している壁紙アプリのひとつ『綺麗な壁紙』のレビュー欄に、iOS 18 が出た直後から少しずつ増えてきた要望でした。2014年から個人開発でアプリを続けていて、累計で 5,000万ダウンロードほどになりますが、その大半は壁紙・癒し系のユーティリティです。こうしたアプリは「アプリを開く」という一手間が地味に重く、開かれない日はそのまま広告も表示されません。

iOS 18 で、コントロールセンターにサードパーティ製のコントロールを置けるようになりました。アプリを開かずに、画面右上から引き下ろした先のボタンひとつで処理を走らせられます。壁紙アプリにとって、これは「開かれない日」を減らす数少ない正攻法です。今回は、Rork で生成した React Native(Expo)製アプリに、この ControlWidget を後付けする際の実装手順と、つまずいた箇所を残しておきます。

ControlWidget が壁紙アプリと噛み合う理由

iOS 18 のカスタムコントロールは WidgetKit の一部として実装します。ホーム画面ウィジェットの親戚で、ControlWidget というプロトコルに準拠した小さな拡張ターゲットを作ると、ユーザーが「設定 → コントロールを追加」から自分のアプリのコントロールをコントロールセンターに置けるようになります。

ボタン型(ControlWidgetButton)とトグル型(ControlWidgetToggle)の2種類があり、壁紙シャッフルはボタン型が向いています。押した瞬間に AppIntent が走り、次の壁紙を選んで UserDefaults に書き込む、という流れです。AdMob の収益は表示回数に連動しますから、「アプリ起動」という重い導線の手前に、もう一段軽いタッチポイントを作れる意味は小さくありません。月あたりの起動回数が数%でも増えれば、ユーティリティアプリの薄い単価でも効いてきます。

ただし、コントロール自体が壁紙を「設定」できるわけではありません。iOS はサードパーティアプリにロック画面・ホーム画面壁紙の直接変更を許していないからです。ここは正直に設計を割り切る必要があります。私が採った方針は「コントロールで次の1枚を確定 → ショートカット or 共有シートで実際の設定はユーザーが行う」という現実解でした。コントロールが担うのは『今日の1枚を決める』ところまでです。

全体構成 — App Group を背骨にする

Rork(Expo)製アプリの本体は JavaScript 層で動きますが、ControlWidget は別プロセスのネイティブ拡張として動きます。両者は直接メモリを共有できないため、App Group を介した UserDefaults 共有が背骨になります。

構成要素は次の3つです。

  1. メインアプリ(Expo / React Native)— 壁紙のインデックスを App Group の UserDefaults に書く
  2. Control Extension(Swift / WidgetKit)— ControlWidgetAppIntent を持つ新規ターゲット
  3. App Group(group.design.dolice.wallpaper のような識別子)— 両者の共有ストレージ

この順で組むと、データの流れが一方向に整理されます。JS 側が「壁紙の総数」と「現在地」を共有ストレージへ書き、AppIntent 側がそれを読んでインデックスを進める、という分担です。

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

この記事の続きを読む

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

この記事で得られること
ControlWidget と AppIntent を使い、コントロールセンターから1タップで壁紙を切り替える実装(Swift 約40行)
App Group 経由で Rork(Expo) 製 JS 層とネイティブ拡張のあいだで状態を共有する具体パターン
ControlCenter.shared.reloadControls の呼び忘れで起きる『押しても無反応』を回避する3つのチェックポイント
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-06-26
Rorkの壁紙アプリで、シェア画像にだけ透かしを焼き込む
Rorkが生成したExpoの壁紙・画像アプリで、保存画像はそのまま、SNSシェア用の書き出しにだけ透かしを合成する実装を、react-native-view-shotとSkiaの2通りで、解像度劣化を防ぐ落とし穴つきで整理します。
開発ツール2026-06-15
Rork 製アプリのウィジェットにタップで動くボタンを置く — App Intents で「アプリを開かない操作」を実装する
Rork が生成する Expo アプリのウィジェットに、タップしてもアプリを開かずに状態を変えるボタンを置く方法です。App Intents と WidgetKit を App Group で結び、reloadTimelines まで往復させる実装を、詰まった2か所も含めて手順で整理します。
開発ツール2026-05-26
Rork で生成した壁紙アプリを iPad へ対応させた2週間の所感
2014年から壁紙アプリを iPhone 中心で運用してきた個人開発者として、Rork で立ち上げた新規壁紙アプリを iPad に対応させる作業を2週間続けた記録です。AdMob アダプティブバナーの暴れ方、Safe Area の盲点、グリッド表示の解像感まで、運用の温度のまま書き残しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →