ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
watchOS 11の新機能
Apple Watchの新たな可能性をご紹介します。watchOSアプリにダブルタップのサポートが追加され、スマートスタックのウィジェットがさらに便利でインタラクティブになり、スマートスタックにiOSのライブアクティビティを表示できるようになりました。
関連する章
- 0:00 - Intro
- 1:00 - Live Activities
- 2:29 - Widgets
- 10:33 - Double tap
- 12:29 - Health and fitness
リソース
- Enabling the double-tap gesture on Apple Watch
- Forum: UI Frameworks
- Human Interface Guidelines: watchOS
- Human Interface Guidelines: Widgets
- WidgetKit
関連ビデオ
WWDC24
-
ダウンロード
こんにちは Erena Inoueです watchOSスマートスタックチームの エンジニアです watchOS 11は多数の新機能を 搭載しており Apple Watchをよりパーソナルで インテリジェントで便利なものにします このセッションでは アプリでこれらの機能を活用する方法について 説明します iOSのライブアクティビティが Apple Watchでどのように表示されるか そしてwatchOS向けにその体験をどのように カスタマイズできるかを説明します
次にインタラクティブ性と関連性を組み合わせて ウィジェットをよりアクション可能にし スマートスタックをよりインテリジェントに する方法を説明します
その後 ダブルタップを使用して アプリ内をナビゲートし アクションを実行する方法を見ていきます
最後に HealthKitとWorkoutKitの 強化点について確認します
カバーすべき内容が多いので まずは ライブアクティビティから始めましょう ライブアクティビティは iPhoneのロック画面から直接 イベントやタスクの進行状況を 一目で確認できるようにします
watchOS 11では iOSアプリのライブアクティビティを Apple Watchのスマートスタックから 利用できます watchOSアプリがまだない場合でも可能です
コードをまったく変更することなく Dynamic Islandの 先頭と末尾のビューが 自動的にスマートスタックに表示されます
Apple Watchのスマートスタック用に カスタムコンテンツを提供するには ライブアクティビティが Small Supplemental Activityファミリーを サポートするように指定します .supplementalActivityFamilies モディファイアを ActivityConfigurationに追加すると システムはDynamic Islandビューよりも カスタムコンテンツビューを優先します その後Environmentを使用して watchOSのライブアクティビティビューの レイアウトをさらにカスタマイズできます スマートスタックには .smallファミリーを使用し iOSおよびiPadOSのロック画面には .mediumファミリーを使用します
ライブアクティビティはスマートスタックに 豊富で一目で分かる情報を提供する エキサイティングで新しい方法です
Apple Watchで 素晴らしいライブアクティビティ体験を 提供する方法についての詳細は これらのセッションをご覧ください
スマートスタックのより豊かな体験に続き ウィジェットには多くの新機能があります 関連性ウィジェットから始めましょう
watchOS 10で導入された スマートスタックは Digital Crownを回すだけで どの文字盤からでもアクセスできる カスタマイズ可能な ウィジェットのスタックです
watchOS 11では 手がかりとなるコンテキスト情報を提供すれば 最も関連性が高い時にウィジェットが スマートスタックに自動的に表示されます App Intent RelevantContext APIを 使用して ウィジェットが最も関連性が高いと考えられる タイミングをシステムに通知します 提供できる関連コンテキストには 日付 推測された または正確な位置情報 就寝時刻と起床時刻を含む睡眠情報 アクティブなワークアウトと 未完了のアクティビティリングを含む フィットネスキューがあります さらに他のコンテキストは ドキュメントで確認できます
ウィジェットでRelevantContextを 使う方法を見てみましょう リマインダーアプリの例を紹介します
まず新しいrelevances()メソッドを ウィジェットのTimelineProviderに実装します
次に RelevantContextを定義します リストのリマインダーには期日または 関連する期間を設定できます そこで 日付に関するコンテキストを 使用します
新しいWidgetRelevanceEntry型で 作成したコンテキストをラップし WidgetRelevanceを返します これは先ほど作成した WidgetRelevanceEntryをラップします
他の関連コンテキストでも 同様のことが可能です 例えば 睡眠データウィジェットがある場合 起床後のユーザーにとって 関連性が高くなるかもしれません .sleep関連コンテキストを使用して ユーザーの起床時刻に ウィジェットを提案できます または ワークアウトトラッカーアプリが あるとします ユーザーがその日にワークアウトを まだしていない場合 .fitness関連コンテキストを使用して .activityRingsIncomplete条件とともに ウィジェットを提案するように システムに指示できます
ウィジェットにAppIntentConfigurationが ある場合 インテントごとに関連性を 設定することができます コーヒーショップウィジェットの 例を見てみましょう それぞれのインテントはユーザーの お気に入りの店の位置を示しています ユーザーがその店舗の近くにいる時に 位置に関連性のあるコンテキストを 提供することができます WidgetRelevanceEntryの イニシャライザは App Intent用の 追加の設定パラメータを受け取ります relevancesメソッドの戻り値の型は WidgetConfigurationIntent型を 汎用パラメータとして指定します
ユーザーがお気に入りのカフェを 変更した際には invalidateRelevancesメソッドを使用して 更新された関連性のある位置を提供します
まとめると 割り当てる関連コンテキストは 慎重に選択してください なぜなら ウィジェットが有用で アクション可能なときに 提案することが重要だからです RelevantContextは ウィジェットの提案や 他のウィジェットとの 優先順位を決めるために使用されます システムは多くのウィジェットからの提案を 同時に検討します そのため あなたのウィジェットが 常に表示される保証はありません 次はインタラクティブなウィジェットです
iOS 17とmacOS 14ではインタラクティブな ウィジェットを導入しました これにより アプリを開かなくても ウィジェットから直接 アクションを実行できるようになりました 今ではインタラクティブなウィジェットを watchOSに導入することも可能です iOSやmacOSと同様に ボタンとトグルを利用して watchOSウィジェットを インタラクティブにすることができます watchOS 11のインタラクティブな ホームウィジェットでは 例えば ユーザーが直接ドアを ロックまたは解除できます
インタラクティブ性によって アプリを起動せずに すばやくアクションを実行できます すべてのwatchOSウィジェットファミリーが インタラクティブ性に対応しています 複数のインタラクションが サポートされていますが 形状やサイズによっては一部の ウィジェットファミリーには適しません インタラクティブ機能をウィジェットに 導入する方法を見てみましょう ホームウィジェットの例を紹介します まず ウィジェットビュー内に SwiftUIボタンを作成します
次に ウィジェットのインテントで perform()メソッドを実装して App Intentアクションを指定します この場合はボタンをタップすると ドアがロックされます
詳しい使用方法については インタラクティブ性に関する 「Bring widgets to life」 セッションを確認してください 同じ原則がwatchOSにも適用されます
場合によってはアクションが ウィジェットから実行されるときに 確認手順を追加することが重要になります 予期しない結果にならないように するためです 例えばユーザーが仕事をしている時に 意図せずにウィジェットをタップして自宅の ドアがロック解除される可能性があります
requestConfirmation() APIを 使用すると インテントが実行される前に 追加のプロンプトを表示し このアクションが意図的かどうかを 確認することができます .lowConfidenceSourceを 条件パラメータとして渡し タップミスの可能性がある場合を システムに判断させて そうであればプロンプトを表示させます
インタラクティブなwatchOSウィジェットの 作成を できる限りシームレスで便利にするために AccessoryWidgetGroupという ビューテンプレートAPIを導入しています このテンプレートを使用すると 最大3つの 異なるコンテンツが含まれるビューを accessoryRectangularウィジェットに 作成して 一目で見やすくできます
watchOS 11にはこのレイアウトを使った 新しいウィジェットが多数あります
メッセージウィジェットは上位3件の ピンで固定した連絡先を表示します
AccessoryWidgetGroupには 2つの主要な構成要素があります LabelとContentです デフォルトでは Labelの表示名はアプリの Widget Extensionバンドルのものです しかしカスタムのLabelビューやTextビューを 提供することをお勧めします コンテンツには最大3つのビューを 含めることができます 3つ以上のビューが提供された場合は 最初の3つのビューのみが表示されます コンテンツの各ビューは インタラクティブにできますし Linkを使ってアプリの別の場所に ディープリンクすることもできます フォントサイズ コンテンツビューサイズ そしてコンテンツの余白は すべて事前に設定されているため ユーザーはウィジェットのコンテンツに 集中できます
ピンで固定した連絡先が3つ未満の場合 システムは自動的に空のビューを 余分に挿入します ウィジェットに3つのビューが 表示されるようにするためです 空のビューをタップすると 単にアプリが起動します 空のビューの色はシステムが指定します すべてのウィジェットで 視覚的な一貫性を保つため この色の設定はできません
.accessoryWidgetGroupStyleビュー モディファイアを使用して コンテンツビューのマスキング形状を 指定できます これは.circularか .roundedSquareのいずれかです 指定しない場合のデフォルトは .circularです
AccessoryWidgetGroupレイアウトで 色をカスタマイズすることもできます
.containerBackground()ビューモディファイアを 使用すると背景に色を付けることができます .foregroundStyle()ビューモディファイアを 使用すると ラベルに色を付けることができます
ではウィジェットの新機能をまとめましょう 関連性ウィジェットによって 適切なタイミングでシステムから ウィジェットが提案されるようになります インタラクティブなウィジェットについても 説明しました これは1つのウィジェットに複数の タップターゲットを追加して アプリを起動せずに アクションを実行できるものです
AccessoryWidgetGroupは 1つのウィジェットに複数種類のコンテンツ またはApp Intentを表示できます これらすべてを組み合わせると スマートスタックが はるかに実用的で インテリジェントになります ではダブルタップについて説明します Apple Watch Series 9と Ultra 2は よく使うアクションを実行するための まったく新しい方法を導入しました 電話に出る 音楽を一時停止する ダブルタップジェスチャーで スマートスタックをスクロールするなどです watchOS 11では ダブルタップが拡張されて アプリのより多くの場所で 使えるようになりました
ダブルタップすると リスト
スクロールビュー
縦スタイルのタブビューを スクロールできます アプリでは自動的にこの動作になります
自動スクロール動作に加えて ダブルタップで実行するプライマリ アクションを識別することもできます 例えばアプリのほか スマートスタックの ウィジェットやライブアクティビティでも
ボタンやトグルをアクティベートできます
ボタンやトグルに .handGestureShortcutモディファイアを 適用すると .primaryActionとして識別できます ユーザーがダブルタップジェスチャーを 実行すると ボタンやトグルの輪郭が 自動的に強調表示され それが呼び出されるアクションであることが 視覚的に示されます 強調表示の形状はカスタマイズできます その際は必要に応じて 「クリップ図形」表示モディファイアを使います
プライマリアクションになれるのは 一度に1つの要素だけです アプリのインターフェイスやユースケースを 慎重に検討してください ダブルタップでプライマリアクションが 実行されるのは コントロールが 画面上にある場合のみで 画面外の場合は その方向にスクロールします アプリがすでにリストまたは スクロールビューを使用していて ダブルタップ時の自動スクロール動作を 継承している場合は それを使用してビュー内のアクションも 実行しようとはしないでください ダブルタップは予測可能かつ 一貫した方法で使用するのが最も効果的です
最後にWorkoutKitとHealthKitの いくつかの機能強化をまとめましょう
WorkoutKitには新しいアクティビティ タイプが加わりました カスタムワークアウトAPIの サイクリングやランニングに プールスイミングが加わります カスタムプールスイミングにも 新しい目標タイプが追加されています distanceWithTimeでは ワークアウトのステップに 距離と時間の目標を設定できます あらゆる種類のカスタムワークアウトで ワークの名前をカスタマイズできます リカバリ ウォームアップ クールダウンのステップに displayNameプロパティが 追加されています 詳しくは 「Build custom swimming workouts with WorkoutKit」セッションをご覧ください
HealthKitでは 気分や感情のデータを 新しいState of Mind APIを使って 読み書きできるようになりました 詳しくは「Explore wellbeing APIs in HealthKit」セッションをご覧ください
watchOS 11ではアプリで こうした新機能を活用できます ライブアクティビティはApple Watchに 表示されるようになります 体験をカスタマイズすることもできます 関連性 インタラクティブ性 その他のレイアウトオプションにより ウィジェットはさらに実用的になり 一目で確認できるようになります アプリやウィジェットではダブルタップで アクションを操作・実行できるようになります HealthKitとWorkoutKitの 機能強化は ヘルスケアとフィットネスのアプリに 新たな可能性をもたらします SwiftUIの新機能については 「SwiftUIの新機能」セッションを ご覧ください
これらの新しいAPIで アプリやウィジェットに どのようなイノベーションが もたらされるかとても楽しみです ご視聴ありがとうございました
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。