◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SONNET 4.5 — Claude API での提供終了は 11/30、残り27日。API 連携を足したアプリは移行先の確認を●SDK 58 — React Native 0.88 に更新されました。Android のリリース版で R8 が既定オンになり、iOS は SceneDelegate を生成します●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SONNET 4.5 — Claude API での提供終了は 11/30、残り27日。API 連携を足したアプリは移行先の確認を●SDK 58 — React Native 0.88 に更新されました。Android のリリース版で R8 が既定オンになり、iOS は SceneDelegate を生成します●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-06-15中級

Rork Max の App Intents で Siri とショートカットにアプリの操作を渡す

Rork Max が生成した Swift アプリに App Intents を実装し、Siri とショートカットからアプリの操作を呼べるようにする手順を、AppShortcut の登録から本番での躓きどころまで実コードでまとめました。

Rork Max235App Intents6Siri3Shortcuts3Swift48

✦ プレミアム記事

水を飲んだ記録をつけるだけの小さなアプリを運用していたとき、「アプリを開いて、ボタンを押して、閉じる」という3手間が、続けてもらううえで地味に効いていることに気づきました。一日に何度も繰り返す操作ほど、開く手間そのものが離脱の理由になります。Siri に「水を飲んだ」と一言伝えるだけで記録が残るなら、その3手間は消えます。

Rork Max は Swift アプリを生成してくれますが、App Intents のように「アプリの外から操作を呼ぶ」仕組みは、生成された画面コードとは別の層として自分で足す必要があります。ここでは私自身が個人開発のアプリへ組み込んだ順序で、つまずいた箇所まで含めて整理します。

App Intents は「アプリの操作を OS に公開する」仕組み

最初に全体像を掴んでおきます。App Intents は、アプリ内の特定の操作を一つの「インテント」として宣言し、それを Siri・ショートカット・スポットライトといった OS 側の入口から呼べるようにする枠組みです。画面を経由せずに、操作だけを切り出して外へ出すイメージです。

ここを理解しておくと、設計の順序が「まず操作を関数として切り出し、それをインテントで包む」という流れに定まります。逆に画面ロジックと操作が絡み合ったままだと、インテントから呼べる形に切り出せません。

最小構成のインテントを作る

AppIntent プロトコルに準拠した構造体を一つ作ります。perform() の中に、実際の処理を書きます。

import AppIntents
 
struct LogWaterIntent: AppIntent {
    static var title: LocalizedStringResource = "水を記録"
    static var description = IntentDescription("一杯分の水分を記録します")
 
    func perform() async throws -> some IntentResult & ProvidesDialog {
        await WaterStore.shared.addGlass()
        let total = await WaterStore.shared.todayCount
        return .result(dialog: "記録しました。今日は\(total)杯目です。")
    }
}

perform() が ProvidesDialog を返すと、Siri が結果を読み上げてくれます。記録系の操作は、成功したことを声で返すだけで安心感がまるで違いました。WaterStore のような実処理は、Rork Max が生成したデータ層をそのまま呼び出せば十分です。

✦

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

この記事の続きを読む

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

この記事で得られること
✦AppIntent と AppShortcutsProvider を最小構成で動かす実コードと登録手順
✦パラメータ付きインテントで Siri に値を尋ねさせる書き方と日本語フレーズ設計
✦ショートカット未反映・フレーズ衝突・確認ダイアログなど本番で詰まる点の対処
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⬡ 開発ツール2026-04-23
Rork アプリに Siri と Shortcuts を統合する — App Intents の Expo 実装と失敗しない設計
Rork で作った React Native アプリに Siri Shortcuts と App Intents を組み込む実装ガイド。Expo Config Plugin で native モジュールをブリッジし、AppShortcut・Entity Query・Donations・Control Center ウィジェットまで本番運用を見据えて解説します。
⬡ 開発ツール2026-04-05
Rork Max × WidgetKit・ライブアクティビティ実装ガイド 2026 — Dynamic Island 対応まで
Rork Max で iOS Widget・ロック画面ウィジェット・Dynamic Island 対応のライブアクティビティを実装した記録。Timeline の焼き込み設計、APNs のヘッダーと優先度、push-to-start、stale-date の扱いまで実運用の判断を残します。
⬡ 開発ツール2026-07-18
文字サイズ最大とドイツ語で、生成された画面は静かに詰まる — Rork Max の SwiftUI にレイアウト耐性の検証を通した記録
Rork Max が生成した SwiftUI 画面を疑似ローカライズと最大文字サイズに通し、どこから詰まるかを機械的に洗い出した記録です。ViewThatFits・ScaledMetric・layoutPriority の使いどころと、再生成のたびに回帰を捕まえるスナップショット検証を、実際の数値とともにまとめました。