ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
watchOS 8の新機能
watchOS 8では、文字盤に常に最新情報を表示するためのまったく新しい手段が提供されます。常時表示Retinaディスプレイ用の新しいAPI、Bluetoothデバイスからのコンプリケーションの更新、HealthKitデータのバックグラウンド配信などによって、Appを最新の状態に保つことがかつてないほど簡単になりました。Appで位置情報を活用したリージョンに基づくユーザ通知も紹介します。次のWatch Appを作るのが楽しみになるような、SwiftUIとwatchOSのすべての新しい機能強化をご確認ください。
リソース
- Designing your app for the Always On state
- UNLocationNotificationTrigger
- Updating watchOS apps with timelines
関連ビデオ
WWDC21
-
ダウンロード
“watchOS 8 最新情報”へ ようこそ Apple Watchエバンジェリスト ジェイク・バーレンズです WatchOS 7 には 様々な新機能がありました ファミリー共有設定では iPhoneなしでも家族と繋がり― 多種のコンプリケーションで― 文字盤でのリッチな 体験を実現 また文字盤共有により 独自の文字盤を作成し― そのコンプリケーションとともに― 誰かと共有したり オンラインに投稿できます watchOS 8では 皆さんの強い要望に応え― 更に進んだ Watch App体験を― 追求しました 盛り沢山の内容です では始めましょう まずは常時表示ディスプレイ Apple Watch Series 5 と watchOS 6 は― 文字盤に 常時表示機能があります watchOS 8では この機能を― Appに適用します HealthKitデータの バックグラウンド配信や― Bluetoothスキャンを利用して― ヘルスケア関連の コンプリケーションを― 最新に保つ方法を お伝えします Apple Watchは益々 独立したものになっています watchOS 8では― リージョンベースの ユーザー通知を使えます 関連情報が どのように― 適時適所に ユーザーの元に届くのか― お話します 最後にお話するのは 新しいシステムと― watchOS 8の API強化についてです これにより 開発と Appの使用が更に向上します まずは常時表示ディスプレイから― 常時表示ディスプレイでは 手首を上げずに― Watch上のコンテンツを 確認できます 手首を上げると 再び表示がアクティブになります 常時表示ディスプレイは― Apple Watch Series 5 と 6が 対応しています watchOS 7では 時間が経つと AppのUI表示が ぼやけた表現になります AppをwatchOS 8 SDKで リビルドすると― AppのUIは 調光状態で暗くなり― タップするとすぐに インタラクティブになります 常時表示ステートでは システムは自動的に― 全体の輝度を下げつつ― 充分に内容が確認できる 明るさを保ちます AppのUIの― 輝度が下がった対応のために― SwiftUI環境設定である― isLuminanceReducedを導入 この状態では 特に重要な情報を― ハイライトしたり― プライベートな情報を 隠すことができます 素早く確認を繰り返すにために― Environmentプロパティを― Xcodeプレビューと シミュレータでサポートします シミュレータでは ウィンドウで― ボタンをクリックし 手首を下げた状態を確認 これは非常に便利で AppのUIが― 常時表示でどう見えるか 確認できます ではガイドの原則です 常時表示ステートの AppのUIにおいて― アクティブから 常時表示へのステートの移行は― シームレスであるべきです UIの置き換えや情報の再構成を 劇的な形で行わないでください 常時表示から アクティブステートへの移行が― スムーズでなくなります 鍵は アクティブステートのUIの コンテクストを維持すること この例では FitbodがUIを維持しながら― 両方の状態間で 明るい要素や― セカンダリテキストを さらに暗くしています 次に― 不可欠でない情報は 暗くします セカンダリテキストや 画像または色のフィルは― さらに暗くし― 見たい情報 目立たせたい情報だけを― ハイライトできます 買い物リストの作成と共有ができ レシピの整理ができるー AnyListでは リストアイテムの背景を消したり― セカンダリ情報を 暗く表示します― 例えばヨーグルトのフレーバーや 牛乳の量など これにより メインのリスト項目が― 見やすくなり お店でカートを押したり― カゴを持っている時にも 便利です UIの画面要素が大きい さらに― 色素や画像がでフィルされている場合 要素を減らして― ストロークや暗めの色で 表示させつつ― UI表示を維持し さらに― ハイライトした情報を 目立たせたいものです この例では Pandoraが下部の― セカンダリコントロールを暗くし アルバム画像を消して― より暗めの色を 使っています これで曲のタイトルや アーティスト名を― 瞬時に 見やすくなります 輝度が下がった時に さらに表示を弱めたい― または消したくなるのが 秘密情報です 銀行口座の番号や 残高― 健康データなどは― 手首を下ろしている時― 覗かれたく ないですよね SwiftUIによる リダクションについては― “優れたウィジェットの原則” のビデオを― Developer Appでご確認ください ウィジェットは類似の リダクションモデルを共有しています 最後に アニメーションは― 最初のフレームに リセットするか― 休止状態に してください アニメーションの途中で 放置しないように これで常時表示ステートでの UIの最適な表示が― 確認できました では― 手首を下げた状態での― UIの更新方法を 技術面からお話しします Appでアクティブな セッションを継続する時― 例えばワークアウトや オーディオのセッションですが― それらのセッションを継続して 行っている時― 最高1秒ごとに UIを更新できます これにより カウンターや― メトリクスなどの データを更新できますが― 0.1秒など 1秒以内の― インクリメントは 削除する必要があります アクティブなセッションの ないAppでは― 最高1分ごとに 更新できます システムが 時計に戻るまでの― デフォルト時間は 2分ですが― Appの表示時間は これより長く見積もるべきです ユーザーが設定を 変える可能性があるからです では非アクティブなAppの UI更新が必要だと― どうしたらシステムに 伝えられるのでしょうか? SwiftUIの TimelineViewを使います TimelineViewは スケジュールを使い― 日付に関連づけられた ビューを構築します スケジュール更新については― いくつかの TimelineSchedulesにより― Appに適した設定を 行えます まず1分ごとに更新する Every minute システムの時計と整合し 各更新が― 分の始まりに 行われます Periodicでは 間隔を設定できます 例えば2分ごとなど― Appに適した 間隔です Periodicスケジュールを 1分間隔で設定すると― システムの時計と 整合しません これが便利なのは 特定のイベントに合わせて― 更新したい時です 運動の開始時などですね Explicitは 特定の時間に変化が起こる― 場合に使います 例えば1.5分で更新した後― 2.5分で更新するなどです Customもあります これが役立つのは 例えば― 毎分更新のタイマーだけれど 最後の60秒は― 毎秒更新したい 時などです Appが非アクティブで― 速いまたは短時間での 更新を要求すると― 例えばこのタイマーの 最後の60秒のようにですね システムは トライしますが― このような更新は 保証できません 最後に Animation schedule TimelineView スケジュール アニメーションなどについては “SwiftUIの新機能”と “SwiftUI Appへのリッチな グラフィックスの追加” ビデオを Developer Appで ご覧ください ヘルスケア&フィットネスの Appは― Apple Watchに 好影響を与えました watchOS 8では HealthKitデータの― バックグラウンド配信を Watch Appで使えます これで受動的な ヘルスモニタリングができ― ファミリー共有設定で使われる スタンドアロンの― Watch Appに 大きな影響を与えます HealthKitデータのバック グラウンド配信設定は― iOSと似た動きをします watchOSでは回収された ヘルスデータにより― Predicateが一致すると バックグラウンドの― オブザーバクエリが処理され Appが結果を受け取ります これはWatch Appで 最高1時間に1回可能です ユーザーがAppの コンプリケーションを― アクティブな文字盤に 追加すると― 1時間に最大4回まで 結果を受け取れます これらの機会はすべて バックグラウンドAppの― 更新budgetにカウントされ 1時間あたり― 最大4つの結果のみ受信 するため 他の理由による― バックグラウンドApp更新 に影響する可能性があります では更新の頻度について Appへの結果配信は― 様々なcriticalデータタイプに対しては 即座に実行されます 例えば落下イベントや― 低血中酸素飽和度 心拍数イベントなどです 開発者向けドキュメントを― Apple開発者向けサイトで ご覧になり― これに関連するデータタイプの 完全なリストをご確認下さい その他のデータタイプは 1時間ごとまたは― それ以上の間隔で 配信されます また 新しい情報を― HealthKitの認証シートに 追加し― カスタマーに Appがヘルスデータの― 認識度を高めたことを 知らせます HealthKitデータの バックグラウンド配信が― ヘルスケア・フィットネス関連の コンプリケーションに― 新たな可能性を もたらすでしょう watchOS 4で Bluetoothデバイスを― 直接Apple Watchに接続し Core Bluetoothを利用可能にしました 非常に優れた方法で 利用されてきました watchOS 8では 更にステップを進めます アクティブな 文字盤上にある― Appのコンプリケーションが バックグラウンドAppの― 更新機会を受ける際に デバイスに接続できます 例えば このQardioでは 心拍の状態を― Qardioの医療レベルECGで モニターできます これはSonra Watch サッカーのコーチが― フットボールと呼ぶ国も ありますね 選手のパフォーマンスを 28のメトリクスで― GPSトラッカーを使って リアルタイムにモニターします バックグラウンドApp更新時の Bluetooth接続によって Appの コンプリケーションが― Bluetoothデバイスによって 最新状態を保ち― 常に最新状態を 表示します バックグラウンドApp更新 により― 文字盤上でアクティブな コンプリケーションが― 1時間に最大4回まで 接続し更新できます これらの機会は App全体の― バックグラウンド更新budgetに カウントされます 最初のデバイス接続はAppが フォアグラウンドの時― 設定してください バックグラウンドからは 設定できません デバイスの接続が 確立すると― バックグラウンド更新により Appが接続され― 新しいデータを取得します 接続および データ処理を― 非常に短時間で 行うことが重要です そのために 追加したのが― WKRefreshBackgroundTaskの 新たなexpirationハンドラ 時間が切れそうになると 作業終了の必要を 知らせます 必要に応じて Appをクリーンアップし― うまくデグレードします 詳しくはDeveloper Appの “Bluetoothデバイスの― Apple Watchへの接続” をご覧ください Apple Watchは 常に身につけるデバイス 独立したWatch Appが さらに普及し― カスタマーはカフェに行ったり 買い物をするのに― Watchだけで 出かけます 最重要となるのが 位置です watchOS 8では― リージョンベースの通知が Apple Watchで使えます つまり重要な情報を― ジオフェンスベースで 通知できます 例えば スキートレーニングの― リマインダをリフトで Slopesから受け取る またはフライト情報を 空港到着時 App in the Airから 受け取ります watchOSのリージョンベースの ユーザー通知は― iOSに似た動きをします プライバシー保護のため カスタマーは最初に 静的な通知を受け― ボタンをタップしてから 完全に動的な通知を見ます これにより 事前に作成 されたローカル通知を― 設定したリージョンに出入りする ユーザーに基づいて― 場所による通知トリガー として配信します これを利用するには― “When in use (使用時)” 許可が必要です また リージョンの数を制限して― 近くにある重要な 関心の対象や― 明確な意図が示された 位置のみを含めましょう お気に入りの店の位置 などです リージョンのパワー効率が 最も良いのは― 半径200メール以内です リージョンベースの通知と共に watchOS 8では― Core Locationの 新しいLocationボタンに対応します このボタンは ワンタイムの位置認証を提供するため タップする度に 認証する必要がありません 舞台裏では― “一度だけ許可” の従来型の認証 のような動作です Locationボタンによって 信用が得やすくなります 位置情報を共有する タイミングを― コントロール できるからです watchOS 8とiOS 15の― Core Location更新の詳細は “Locationボタンについて”を Developper Appで ご覧ください さらに新しい常時計測の 高度計APIも― Core Motionで導入します リアルタイムの 高度の更新にアクセスできます バッテリ寿命への 影響は最小限で― Appで相手に位置情報の 共有も要求しません watchOS 8の新機能と 新しいAPIの他にも― 多くを強化し Watch Appの開発と― 使用をより簡単にできるようにしました watchOS 8では Apple Watchは― 睡眠時の呼吸数を 測定できます これによりSleep Details のようなAppが― 睡眠時の呼吸数データを表示し 起床時に― その変化を視覚化できます 四肢障害の ある方むけに― AssistiveTouchを Apple Watchに導入 素晴らしい事に 人の手の動きを認識して― 動作を補助し UIをナビゲートするのです また 大きなアクセシビリティテキストも― watchOS 8に含めました Watch Appをよりアクセシブルに する詳細は― “watchOSにおけるアクセシブルな 体験の実現”を― Decelopper Appで ご覧ください Watch Appのユニット テストとUIテストは― Xcode 12.5で 導入されました しかしAppをアクセシブル にするには― テスト可能にする 必要がありますから― watchOSの新機能により 今が― 絶好のタイミングと いえます またスクロールビューのトップに 大きなタイトルを追加 iOSのように― デバイス全体に 一貫性を保ちます テキスト入力は watchOS8で改良され― Appごとに手書き またはディクテーションを― 好むかどうかを記憶し テキスト入力中に― 入力タイプをすばやく 変更できるようになりました これによりテキスト入力が かなり容易になり― SwiftUIのテキストフィールドに 自動でもたらされる機能です 新たなsearchable APIにより カスタマイズされたサジェストを― 使用してAppに検索 フィールドを簡単に追加可能 カスタマーは検索フィールドの ボタンを見て― サジェストがあることを 確認します タップするとカスタマイズ されたサジェストが表示されます またカスタマイズされたUIを 結果に提供できます 詳細は “SwiftUIで創り上げる― 検索体験”のビデオを Developper Appで Listはスワイプ動作にも対応し アイテムの消去に加え― お気に入りなどの 動作も可能です ボタンロールは 破壊的なボタンなど― 特定のボタンタイプを表示し 処理する方法をシステムに― 通知しますが ボタンをタップすると― 追加の触覚を与える ControlProminence― モディファイアも 含まれています SwiftUI Canvas APIも watchOS 8で使用可能 リッチでプログラマチックな 描画が― Apple Watchの優れた GPUを使用して描けます 多くの理由により watchOS 8の― Apple Watchに期待がかかっています TimelineViewは ユーザーが手首を下げていて― 一瞬確認したいときに UIを更新するのに便利です これは全てのAppが 導入するべきです まず最初に チェックしてください Appのコンプリケーションは HealthKitデータや― Bluetooth接続の バックグラウンド配信により― 更新情報を取得する 新たな方法を得ました つまり コンプリケーションが― Watch Appの主な 使用方法だとも言えます パッと見た時の 情報量は― 増やすべきです リージョンベースの ユーザー通知は― Watch Appに対する 位置の意味を強めました これらを採用することで 驚きと喜びが増し― カスタマーをAppに エンゲージメントさせることができます 最後に 次なるレベルの機能である― AssistiveTouchや SwiftUI Canvas APIは― Watch Appをより使い易く 夢中にさせます あなたが何を作るのか 見ていますよ ありがとうございました [音楽]
-
-
2:49 - isLuminanceReduced Environment Property
@Environment(\.isLuminanceReduced) var isLuminanceReduced
-
3:01 - isLuminanceReduced ContentView Preview
ContentView().environment(\.isLuminanceReduced, true)
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。