ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
watchOS 10に向けたアプリのデザインおよび構築方法
watchOSのデザイン原則の詳細を掘り下げ、SwiftUIを使用してアプリにそれらの原則を適用させる方法について確認します。タイムリーな情報を表示し、一目でフォーカスされたコンテンツを伝え、ナビゲーションを一貫した予測可能なものにするために、再設計されたユーザーインターフェースのアプリを構築する方法を紹介します。
関連する章
- 1:22 - Learn about the design principles of watchOS 10
- 5:54 - Design and build with NavigationSplitView
- 7:53 - Design and build with TabView
- 10:06 - Design and build for NavigationStack
- 11:19 - Layout
- 14:42 - Color and materials
リソース
関連ビデオ
WWDC23
-
ダウンロード
♪ ♪
Apple Design Teamのデザイナー Jennifer Pattonです 私 Matthew Koonceは watchOSのSwiftUI Teamの エンジニアリングマネージャーです Jennifer: watchOSの 10回目のメジャーリリースでは タイムリーな情報を表示し フォーカスされたコンテンツを一目で伝え ディスプレイの形状と忠実度を称えるために フルスクリーンのカラーとイメージを使用し ナビゲーションを一貫した 予測可能なものにするため ユーザーインターフェイスを リデザインしました Matthew: APIも進化させました SwiftUIはまさに watchOS 10の核となるものです このセッションではwatchOS 10の リデザインの詳細を説明します まず 重要なデザイン原則を いくつか紹介します そして アプリ内のナビゲーションを 構成する新しい方法を見ていきます その後 レイアウトシステムの進化と すべてのピクセルを活用するための APIのアップデートについて説明します 最後に 色とマテリアルがアプリに全く新しい 次元をもたらす方法を見ていきます 予定通りですか? Jennifer: ええ!さっそく始めましょう まずはデザインの原則から Apple Watch向けにデザインする際に まず考えたいのは 「私のアプリがその瞬間に 人々に提供できる 最も関連性の高い情報や 体験は何か?」ということです 例として天気予報アプリを見てみましょう Apple Watchは素早くフォーカスされた インタラクションに 最適な時間計測デバイスなので アプリを開くと最初に表示されるのは 今日の地域の天気です Digital Crownを回転させるだけで その日の残りの時間の 地域の天気情報が表示され その後は週間の天気情報が表示されます 例えばニューヨークの天気を探している場合 都市のリストはどの詳細ビューからも ワンタップで見ることができます 天気は私が「Apple Watchモーメント」と 考えたいものを実現しています アプリをデザインするときは ユーザーが手首を上げた時点で 関連性のあるものだけに 焦点を絞るようにしましょう ウォッチエクスペリエンスは 短いインタラクションのために 高度に特化されるべきです もしあなたが10秒間誰かの注意を 引くことができたとしたら どの情報を表示するでしょう iPhoneのニュースはコンテンツ豊富な マルチタブやマルチレベルのアプリです そしてApple Watchではニュースは 5つのトップ記事をフォーカスしています コンテンツはフィード内で縦に積み重ねられ タップするとインラインで展開されます 短いインタラクションは Apple Watchのデザインで 気に入っている点のひとつです 数秒しか人の注意を引けないときは 例えばニュースが今日のヘッドラインだけに 体験を集中させるように 簡潔である必要があります 心拍数は有限のデータを最初に表示するため ビューの大半をフルスクリーン アニメーションに充てることができます アクティビティは幅広いエクスペリエンスを 1つの焦点に絞ったビューにシンプル化します よってアプリをデザインするときは 簡潔で焦点を絞ったものにしましょう 2014年にApple Watchを発表したとき 私たちはDigital Crownが ディスプレイを隠すことなく使える ユニークで正確な 入力デバイスであることも紹介しました watchOS 10ではDigital Crownを スクロールやページ送りと 正確な調整を行うための アプリへのアクセスや ナビゲーションの手段として重視しています インタラクションは Crownに固定されるべきですが 常にタッチ操作によって バックアップされるべきでもあります インタラクションをDigital Crownに 結びつけるというデザイン目標を利用して アプリのナビゲーション構造と エクスペリエンスを形作ることができます watchOS向けにデザインする際は 手首を上げた瞬間から 人々がどのような 体験をするのかを考えましょう watchOS 10の素晴らしい新機能は スマートスタックです Digital Crownを回すと 一目で確認できる ウィジェットがインテリジェントに 並べられたスタックで画面に現れます アプリをデザインする際には どの情報が最適な スマートスタックウィジェットになるかを 考えることから始め 関連性のあるタイムリーな体験を 中心にデザインしてアプリを構築できます 同僚のEdによる「Apple Watchのスマート スタック向けウィジェットのデザイン」も ぜひチェックしてみてください ウォッチアプリのフォーカスを 今この瞬間に関連する 一口サイズの情報に絞ったら 次のステップはそれらの瞬間を 簡単にナビゲートできる構造に つなぎ合わせることです Matthewと彼のチームは みなさんが使用するための 驚くべき新しいAPIの開発に 懸命に取り組んできました さあ Matthew Matthew: ありがとう Jennifer アプリ内のナビゲーションがSwiftUIで どのように更新されたか確認しましょう 最初に 一目で詳細なコンテンツを提供する NavigationSplitViewを 見てみましょう それから より多くのインタラクションを Digital Crownに結びつけることを可能にする TabViewのアップデートをいくつか紹介します これらは両方とも NavigationStackと並ぶ 私たちのコアナビゲーションパラダイムです アプリを構成する正しい方法を選ぶことは 基本的な決定であり それぞれに強みがあります NavigationSplitViewから始めます watchOSの NavigationSplitViewのコンセプトは iPadOSの天気にあるような 2列のレイアウトから借用したものです watchOSではソースリストと 詳細ビューが分離され その後 再結合され ソースリストは詳細ビューの すぐ下に格納されます これでソースリストは タップするだけで表示されます Jennifer: NavigationSplitViewは 天気予報の都市リストや 株価リストのようなソースリストと そのソースリスト内のアイテムの 詳細ビューがある場合に最適な選択肢です アプリを起動したユーザーを 直接詳細ビューに誘導できます どの詳細ビューを最初に表示させるかは 位置情報 更新頻度 頻度 またはその他のユーザーの 意図を示す指標を使用します タイトルが必要ないほど一目で詳細ビューが わかるようにしましょう Matthew: 私たちがSwiftUIに組み込んだ NavigationSplitViewの 本当に巧妙な機能の1つは 詳細ビューとソースリストの間の遷移です リストのアイコンをタップしてもいいですし 指で操作できればさらにいいですね Jennifer: そして ソースリストは 比較データを 表示する優れたツールです クパチーノは午前10時9分 ブダペストは午後7時9分です ソースリストにタイトルを付ける必要はなく クローズボタンや ナビゲーションコントロールも 必要ありません これによりソースリストには 短いナビゲーションバーが使用でき より多くの比較データを 一目で画面に表示することができます Matthew: NavigationSplitViewのAPIは watchOSでも ほかのプラットフォームと同様です ソースリストを設定し 選択で初期化することができます SwiftUIが自動的に 詳細ビューに起動できるよう 常に選択範囲を値に初期化します 次に 素晴らしい複数のアップデートを受け Apple Watchでアプリをナビゲートする 私の新しいお気に入りの方法である TabViewについてお話しします TabViewはビュー間でスクロールでき watchOS 10の新しい機能として 1つのタブが必要に応じて拡大したり サイズを変更したりすることができます Jennifer: コンテンツがインラインで 展開されるだけでなく デフォルトで1画面に収まるデザインで 必要に応じてローカライズされたテキストや 大きな文字をサポートすることもできます Matthew: アクティビティでの TabViewの使い方を詳しく見ていきます アクティビティにはリングの 詳細ビューごとにタブがあり 新しい「垂直ページ」 スタイルが採用されています また アクティビティでは各タブ間に 新しいぼかしのトランジションがあります このトランジションをcontainerBackground モディファイアと組み合わせると ビュー間のシームレスな ブレンドが可能になります アクティビティ最後のページは最近終了した エクササイズのスクロールリストです このリストの追加は リストの追加と同じくらい簡単です TabViewはスクロールするコンテンツを 自動的に検出し それに合わせて拡大します こうしてアクティビティと同じような レイアウトを素早く構築できますが TabViewにはもう一つトリックがあります Jennifer: 移動先のタブに スクロールしたときに発生する 素敵なアニメーションにお気づきですか? アクティビティリングが左上隅に スケールアップしていく様子をご覧ください これはアクティビティリングが 常に視界に入るようにしながら インタラクションをDigital Crownに 結びつけるというデザイン目標を達成します Matthew: 「私にもできるのか?」 疑問に思っているかもしれませんね 答えは「できる」です 見ていきましょう watchOS 10では TabViewの選択値に基づいて アニメーションを 駆動できるようになりました 実に巧妙なトリックのひとつは これをマッチしたジオメトリエフェクトに フックすることです アクティビティリングはTabViewと ツールバーの両方に表示されます これら2つのビューのそれぞれに マッチしたジオメトリエフェクトを 追加すると SwiftUIは1つの位置から 別の位置に自動的にアニメーションします Jennifer: NavigationSplitViewと TabViewは本当に有能ですが 必ずしもすべてのアプリに 適するとは限りません もしあなたのアプリが 詳細とソースリストの間や いくつかの縦にページ分けされた タブ間でピボットすることによって 必要なことができないのであれば NavigationStackを検討してください Matthew: その通り ワークアウトやカレンダー ミュージックなどの多くのアプリで NavigationStackを使っています ナビゲーションの プッシュアニメーションも一新しました 選択したビューがハイライトされ 移動するようになりました Jennifer: NavigationStackは ビューの階層に誘導したり そこから戻ったりする 最もわかりやすい方法です 最初のビューには 大きなタイトルを使いますが 戻るボタンがあるサブビューには使いません アプリをデザインするときは できるだけ少ないインタラクションで 「Apple Watchモーメント」を 達成するナビゲーション構造を選びましょう Matthew: これがwatchOS 10の ナビゲーションです NavigationSplitView TabView NavigationStackは すべてのアプリで一貫した 予測可能なエクスペリエンスを提供します Jennifer: アプリに最適な ナビゲーション構造を選んだところで それぞれのビューを構築するために使える リソースについてお話しましょう Apple Watchのディスプレイと ハードウェアが進化するにつれ ディスプレイは一貫して大きくなり 丸みを帯びてきました 私たちは年々丸みを帯びていく ディスプレイに合わせてデザインする一方で コントロール ラベル コンテンツのサイズと配置を定義する 柔軟なグリッドシステムを開発しました 様々なタイプのコンテンツに対応するため 3つの基本レイアウトをデザインしました ダイヤルベースビュー インフォグラフィックビュー そして リストです これらのレイアウトはすべて watchOS 10がサポートする 様々なApple Watchのサイズに自動的に 適応するようにデザインされています ダイヤルベースビューは密度の濃い情報を 一目で把握するのに適しています フルスクリーンでカラー表示したり 天気予報などの画像を使用したりすることで さらにコンテキストを追加できます ダイヤルではコンテンツを隠すことなく 最大4つの異なるコーナーコントロールを 追加することもできます インフォグラフィックビューは チャートやグラフなど テキストや メトリクスのブロックと組み合わせた データのビジュアライゼーションに最適です また リストを使えば コンテンツをスクロールして 必要なものを簡単に見つけることができます グリッドはアクティブな 表示領域の形状に基づいています 私たちはディスプレイの曲率から始め それを使って数学的に ビュー内の要素のサイズと 位置を決定します これらのレイアウトグリッドは Apple Design Resourcesで入手可能です アプリのデザインに役立ててください Matthew: Jenniferと デザインチームが作成した レイアウトグリッドはwatchOS 10の 基礎を形成しており 多くのAPIの基盤となっています 例えば 文字盤ビューの構築に必要な インセットはシーンパディングで得ます また 新しい「top bar trailing」 プレースメントを使用して 画面右上のツールバーにボタンを追加します この配置を使用すると 時間が邪魔にならなくなり 画面の中央に表示されます ナウプレイングビューはアップデートされた ツールバーをうまく活用しています 「top bar leading」と 「trailing」の プレースメントを使用することに加えて ナウプレイングはそのコントロールボタンを ボトムバーに追加します SwiftUIはこれらのボタンを配置するため Jenniferの説明と同様の レイアウトグリッドを使用しています 追加のパディングを加える必要はありません また ボトムバーには 一時停止ボタンがあります ボタンをより大きく目立たせるために controlSizeモディファイアを 使用することができます ナウプレイングスクリーンを作ることは かつてないほど簡単です ツールバーの配置によって 一度に多くのコントロールを 画面に表示できるようになり 集中した インタラクションの新たな機会が生まれます Jennifer: すべてのピクセルを活用し Apple Watchの 使用体験をアプリ間でより一貫性のある 予測可能なものにするために レイアウトグリッドを開発しました また 今後何年も素晴らしいアプリを デザインするためのヒントになれば幸いです Matthew: 次に 色と充実したマテリアルが ビューの階層構造の中で 人々にどのような場所の感覚を 与えるかについてお話ししましょう Jennifer: watchOS 10の デザイン目標のひとつは フルスクリーンのカラーと画像で ディスプレイの形状と 忠実度を強調することです そのため Ultra Thin Thin Regular Thickのような 異なるブラーレベルで 背景のコンテンツに影響を与える 4つの鮮やかな フルスクリーンのバックグラウンド マテリアルを追加しました Matthew: ほかのプラットフォームで すでに使用しているものと 同じSwiftUI APIを watchOSでも使用できます Jennifer: また フルスクリーンの バックグラウンドグラデーションを追加し 独自のアクセントカラーで 着色できるようにしました アクティビティでは Move Exercise Standの アクセントカラーを使用して 似たような3つの 連続したタブを区別しています フルスクリーンカラーの もうひとつの素晴らしい使い方は Sleepの落ち着いたブルーの背景のように トーン設定をすることです 色を使って一目で 情報を伝えることができます 世界時計のようにソーラーグラデーションで 時刻を表示するのです また フルスクリーンの色を使って 状態の変化を伝えることもできます タイマーでは カウントダウン中は 背景を黒にして 明るいオレンジ色で エッグタイマーの終了を宣言しています フォアグラウンドの要素がこれらすべての背景で 美しく見えるように コントロールとプラッターセルには 鮮やかな塗りつぶしマテリアルを追加し タイポグラフィで情報の 階層を作成するために Primary Secondary TertiaryおよびQuaternaryの プロミネンスレベルで 鮮やかなテキストラベルを追加しました また フルスクリーンの背景でも 読みやすいように すべてのシステムカラーに 鮮やかなバージョンを追加しました Matthew: これら新しいマテリアルがすべて watchOSで利用できるのは素晴らしい アプリへの反映のされ方は? ノイズアプリを例にしてみましょう まずは全画面の バックグラウンドグラデーションから これはwatchOS 10の新機能である containerBackgroundモディファイアによるものです ノイズはグラデーションが 適用された緑色を渡します チャートの塗りつぶされていないバーと X軸のラベルは セカンダリのフォアグラウンドスタイルを使用しています セカンダリスタイルは鮮やかさを与え 背景色が透けて見えるようにします 塗りつぶされたバーと 残りのテキストラベルは プライマリースタイルを使用しています これでビューは完成です watchOS 10へのアプリのアップデートで ほかの変更点にも気づくでしょう システム全体のプレゼンテーションで フルスクリーンの薄いマテリアルが 使用されるようになり アプリの どこにいるのかがわかるようになりました このビューのすぐ下に 緑色のヒントが見えます 実際 SwiftUIのすべての コントロール ラベル リストコンテンツは マテリアルの背景の上に配置されたときに 驚くほど美しく見えるように更新されました Jennifer: ナビゲーションバーは 美しく新しい可変ブラーを有しています これはコンテンツが ナビゲーションアイテムの下にスクロール する際に穏やかな遷移を提供します 以上 盛りだくさんの内容でした デザインの原則 アプリ内でナビゲートする まったく新しい方法 まったく新しいレイアウト そして 色とマテリアルの使い方について説明しました watchOS 10はApple Watchアプリの デザインにとって大きな飛躍です Matthew: すべての変更について お話ししたいことがまだ多数あります Jennifer: 「watchOS 10について」で 新機能の概要を 「Apple Watchのスマートスタック向け ウィジェットのデザイン」で 美しいウィジェットの デザイン方法をご確認ください Matthew: すでに watchOSアプリをお持ちの方は 「watchOS 10に向けたアプリの アップデート」をご確認ください ここで紹介した すべてのSwiftUI APIを使って 既存のアプリをアップデートする 手順をご説明します watchOS 10は デザインとエンジニアリングの 深いコラボレーションによって実現しました これは始まりに過ぎません Jennifer: その通りです watchOSはかつてないほど 活気のあるプラットフォームであり Apple Watchアプリの デザインや構築を行う絶好の機会です ♪ ♪
-
-
13:26 - Dial Based View
// This is an example of using scene padding to position a Circle according // to the Dial layout grid struct DialBasedView: View { var body: some View { ZStack { // Add a view to make the ZStack fill the available width, allowing the // Circle to position correctly. As an example, we use a rectangle. Rectangle() .foregroundStyle(Color.clear) // Use .scenePadding(.horizontal) on the dial to get the correct // width. In a ZStack with centered alignment, it is correctly // positioned. Circle() .foregroundStyle(Color.red) .scenePadding(.horizontal) } // Ignore vertical safe areas to allow the view to draw into the bottom // safe areas. This achieves the centering for the dial. .edgesIgnoringSafeArea(.vertical) } }
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。