RORK LABEN
MAX — Rork Maxはネイティブ Swiftアプリを生成。iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageに対応しますNATIVE — AR/LiDAR・Metalによる3D・ウィジェット・Dynamic Island・Live Activities・Siri Intents・HealthKitなど、ネイティブ機能を引き出せますRN — 標準のRorkはReact Native(Expo)でクロスプラットフォーム。素早く形にするならこちらが向いていますCHOICE — 手早さならReact Native版、Appleのハード/OS統合を活かすならRork Maxという棲み分けが現実的ですPRICE — Rorkは無料で開始でき有料は月$25から、Rork Maxは月$200ですFLOW — 作りたいアプリを平易な言葉で説明すると、ストアに配信できる動くコードが生成されますMAX — Rork Maxはネイティブ Swiftアプリを生成。iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageに対応しますNATIVE — AR/LiDAR・Metalによる3D・ウィジェット・Dynamic Island・Live Activities・Siri Intents・HealthKitなど、ネイティブ機能を引き出せますRN — 標準のRorkはReact Native(Expo)でクロスプラットフォーム。素早く形にするならこちらが向いていますCHOICE — 手早さならReact Native版、Appleのハード/OS統合を活かすならRork Maxという棲み分けが現実的ですPRICE — Rorkは無料で開始でき有料は月$25から、Rork Maxは月$200ですFLOW — 作りたいアプリを平易な言葉で説明すると、ストアに配信できる動くコードが生成されます
記事一覧/開発ツール
開発ツール/2026-06-18上級

Rork Max で Apple Watch のコンプリケーションを WidgetKit で実装する

Rork Max が生成した SwiftUI アプリに、watchOS のコンプリケーションと Smart Stack 対応を後から足す実装手順を、データ共有と Timeline 設計まで具体的にまとめました。

Rork Max169Apple Watch3WidgetKit9SwiftUI50watchOS2

プレミアム記事

Apple Watch の文字盤に自分のアプリの数字を一つ載せる。これだけのことが、Rork Max で本体アプリを出した後に意外と長い宿題として残りがちです。私自身、個人開発で配信している壁紙系・習慣記録系のアプリで「本体は動くのに、手首の上には何も出ていない」状態をしばらく放置していました。コンプリケーションは表示面積こそ小さいものの、ユーザーが一日に何十回も視線を落とす場所です。そこに居場所を作れるかどうかは、継続率にそのまま効いてきます。

ここからは、Rork Max が生成した SwiftUI アプリへ後付けで watchOS のコンプリケーションを実装し、watchOS の Smart Stack に拾わせるところまでを順番に進めます。Rork に任せられる部分と、自分の手で書く必要がある部分の線引きを、実際のコードと一緒に整理していきます。

watchOS 9 以降、コンプリケーションは WidgetKit に統一された

最初に押さえておきたいのは、いまのコンプリケーションが ClockKit ではなく WidgetKit で書くものになっている点です。watchOS 9 で ClockKit のコンプリケーション API は非推奨になり、現在は iPhone 側のホーム画面ウィジェットとまったく同じ Widget プロトコルで記述します。つまり、iOS のウィジェットを一度でも書いたことがあれば、知識の大半はそのまま流用できます。

コンプリケーションのレイアウトは、ウィジェットファミリーのうち accessory 系の4種類で表現します。

ファミリー主な表示位置使いどころ
accessoryCircular円形コンプリケーション枠進捗リングや1つの数値
accessoryRectangular横長の枠・Smart Stackタイトル+値の2〜3行
accessoryInline文字盤上部の1行短いテキストとSF Symbol
accessoryCorner文字盤の四隅ゲージ付きの小さな数値

Rork Max は本体の SwiftUI アプリを生成してくれますが、watchOS 向けのウィジェット拡張ターゲットまでは自動では作りません。ここは自分で Xcode を開いて足す作業になります。Rork Max は Xcode 不要をうたっていますが、それは「本体アプリをそのまま公開する」場合の話で、ウィジェット拡張のような別ターゲットを追加するときは、エクスポートしたプロジェクトを一度 Xcode で開く必要があります。私はこの切り替えのタイミングを「Rork に任せる範囲の終わり」と捉えるようにしています。

ターゲット構成とデータ共有の土台を作る

ウィジェット拡張は、本体アプリとは別のプロセスで動きます。そのため、本体アプリが持っているデータをそのまま参照することはできません。両者をつなぐのが App Group の共有コンテナです。

まず Xcode で File > New > Target から Widget Extension を追加します。このとき watchOS 用のターゲットとして作る点に注意してください。続いて、本体アプリとウィジェット拡張の両方の Signing & Capabilities に同じ App Group(例: group.net.dolice.myapp)を追加します。

共有コンテナへの書き込みは、本体アプリ側で行います。Rork Max が生成したデータ層に、次のような薄いブリッジを一枚かませる形が扱いやすいです。

import Foundation
import WidgetKit
 
enum SharedStore {
    static let appGroup = "group.net.dolice.myapp"
 
    private static var defaults: UserDefaults? {
        UserDefaults(suiteName: appGroup)
    }
 
    // 本体アプリから呼ぶ。値が変わったらウィジェットの再読み込みも依頼する
    static func saveStreak(_ days: Int) {
        defaults?.set(days, forKey: "currentStreak")
        WidgetCenter.shared.reloadTimelines(ofKind: "StreakComplication")
    }
 
    static func loadStreak() -> Int {
        defaults?.integer(forKey: "currentStreak") ?? 0
    }
}

ここでのポイントは WidgetCenter.shared.reloadTimelines(ofKind:) です。共有コンテナに書き込んだだけでは、コンプリケーションの表示は更新されません。本体アプリが値を更新したタイミングで、明示的に再読み込みを依頼する必要があります。Rork Max の生成コードは画面遷移やステート管理は丁寧に作ってくれますが、このプロセスをまたいだ更新の依頼までは面倒を見てくれません。ここは手で足す前提でいた方が、後で「文字盤の数字が古いままだ」と悩まずに済みます。

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

この記事の続きを読む

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

この記事で得られること
Rork Max の生成コードに watchOS ウィジェット拡張を足す具体的なターゲット構成と App Group 設計
accessoryCircular / accessoryRectangular など4ファミリーを1つの WidgetKit エントリで賄う実装
Smart Stack に拾わせるための TimelineEntryRelevance と更新予算の現実的な決め方
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-03-26
Rork Max で Apple Watch アプリを開発する — watchOS コンパニオンアプリ構築ガイド
Rork Max を使って Apple Watch(watchOS)コンパニオンアプリを構築する方法を解説。SwiftUI による WatchKit 開発、iPhone 連携、HealthKit 統合、コンプリケーション実装までステップバイステップで学べます。
開発ツール2026-03-20
Rork Max で作る本格フィットネストラッカー — HealthKit × Apple Watch × ウィジェット統合開発
Rork MaxでHealthKit・Apple Watch・ホーム画面ウィジェットを統合したフィットネストラッカーアプリを構築する上級チュートリアル。設計からApp Store公開まで完全解説。
開発ツール2026-06-17
Rork Max のネイティブ Swift ウィジェットで日替わり表示が止まる — TimelineProvider の更新予算を設計する
Rork Max が生成するネイティブ Swift のホーム画面ウィジェットは、TimelineProvider の更新予算を理解しないと日替わり表示が翌日以降に止まります。reloadPolicy と App Group、ディープリンクまでを実アプリ設計の観点で整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →