RORK LABEN
NATIVE — Rork Max では AR / LiDAR スキャン、Metal を使った 3D、Dynamic Island、Siri Intents、HealthKit、NFC、App Clips、Core ML まで届きますIOS27 — iOS 27 Developer Beta 4 で Siri AI の対象が iPhone 15 Pro / 15 Pro Max・16 シリーズ・17 系へ広がり、応答が初期ベータより明確に速くなりましたDESIGN — iOS・iPadOS・macOS 27 向けの Apple 純正デザインキットが Figma と Sketch 向けに公開されました。新 OS の UI を組む段階で参照できますCANARY — Android 17(Cinnamon Bun)は従来の Developer Preview を廃し、継続更新される Canary ビルドへ移行しました。検証のタイミング設計が変わりますSPARK — Android 17 の Gemini Spark は、アプリを直接操作して配車の予約や注文といった複合的な作業を自動化しますSCALE — Rork は a16z から $2.8M を調達し、月間訪問は74万件規模まで伸びていますNATIVE — Rork Max では AR / LiDAR スキャン、Metal を使った 3D、Dynamic Island、Siri Intents、HealthKit、NFC、App Clips、Core ML まで届きますIOS27 — iOS 27 Developer Beta 4 で Siri AI の対象が iPhone 15 Pro / 15 Pro Max・16 シリーズ・17 系へ広がり、応答が初期ベータより明確に速くなりましたDESIGN — iOS・iPadOS・macOS 27 向けの Apple 純正デザインキットが Figma と Sketch 向けに公開されました。新 OS の UI を組む段階で参照できますCANARY — Android 17(Cinnamon Bun)は従来の Developer Preview を廃し、継続更新される Canary ビルドへ移行しました。検証のタイミング設計が変わりますSPARK — Android 17 の Gemini Spark は、アプリを直接操作して配車の予約や注文といった複合的な作業を自動化しますSCALE — Rork は a16z から $2.8M を調達し、月間訪問は74万件規模まで伸びています
記事一覧/開発ツール
開発ツール/2026-06-18上級

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

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

Rork Max231Apple Watch3WidgetKit10SwiftUI64watchOS2

プレミアム記事

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-06-30
Rork Max で StandBy モードに最適化したウィジェットを実装する
充電中の横向き表示で使われる StandBy モード向けに、WidgetKit ウィジェットを最適化する実装手順です。常時表示の調光・ナイトモード・コンテナ背景の扱いを、Rork Max が生成したコードへどう手で加えるかまで含めて解説します。
開発ツール2026-03-20
Rork Max で作る本格フィットネストラッカー — HealthKit × Apple Watch × ウィジェット統合開発
Rork MaxでHealthKit・Apple Watch・ホーム画面ウィジェットを統合したフィットネストラッカーアプリを構築する上級チュートリアル。設計からApp Store公開まで完全解説。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →