WWDC Quick Look 💓 By SwiftGGTeam
Elevate the design of your iPad app

Elevate the design of your iPad app

元の動画を見る

ハイライト

iPadOS 26 では、すべての iPad app にメニューバー、自由にリサイズ可能なウィンドウ、新しいポインタ、そしてツールバー左上に配置される Window Controls が用意されました。開発者はツールバーのレイアウトを Window Controls の周囲に回り込ませることで、不要なセーフエリアが発生するのを避ける必要があります。


主要内容

iPad はこれまで iPhone と Mac の狭間に置かれてきました。マルチタスクをこなせるだけの十分な画面サイズを持ちながら、操作モデルはタッチ優先。開発者は iPhone 版をそのまま引き伸ばすか、Mac 風のウィンドウ管理を無理やり詰め込むかのどちらかでした。結果として、多くの iPad app は「拡大された iPhone app」のような使い心地となり、空間は無駄になり、マルチタスクはぎこちなく、キーボードもポインタも活かしきれていませんでした。

iPadOS 26 では、この問題に正面から取り組むための「建築素材」が一式用意されました(00:54)。すべての app にメニューバーが付き、ポインタを画面上端に押し当てるか、上部から下にスワイプすることで呼び出せます(10:40)。ウィンドウの右下にはハンドルが現れ、ドラッグするだけでフルスクリーンの app をデスクトップに浮かぶウィンドウに縮小できます(05:15)。ウィンドウの左上には新しい Window Controls が置かれ、クリックすると 3 種類の操作が拡大表示され、長押しするとレイアウトのショートカットが展開されます(05:23)。ポインタも刷新され、入力に対して 1:1 で正確に追従する形状となり、ターゲットへのマグネット吸着はなくなりました(09:01)。これら 4 つを組み合わせることで、iPad は「大きな iPhone」から、本当の意味でマルチタスクができるデバイスへと進化します。


詳細

ナビゲーション: tab bar を優先、sidebar とは相互変換可能。 Apple の推奨は明確です。迷ったらまず tab bar を選ぶこと(02:52)。tab bar は占有スペースが小さく、コンテンツへの没入感を高め、しかも sidebar へとなめらかに変形でき、その逆も可能です。Music app がよい例で、sidebar の中に tab bar 風のボタンが置かれており、それをタップすると sidebar 全体が流体的に tab bar へと変化します(02:17)。ナビゲーションは幅の変化に追従できなければなりません。フローティングウィンドウ、縦横の切り替えはすべて「幅が変わった」というカテゴリの問題であり、扱い方は共通です(03:23)。重要なのは、サイズ変化に伴うレイアウト調整が破壊的であってはならないことです。縮小してから元に戻したとき、状態は可能な限り元の位置に戻る必要があります(03:55)。

ツールバーは Window Controls を回り込むように配置し、上部にセーフエリアを譲ってはいけません。 今回の変更で最もハマりやすいポイントです(06:00)。iPadOS 26 に対応していない app では、システムがツールバーの上に Window Controls 用の永続的なセーフエリアを追加します。その結果、コンテンツ領域が常に一段分削られてしまいます。正しいやり方は、ツールバー自身のレイアウトを Window Controls の位置の周囲に回り込ませ、両者を同じ行に共存させることです(06:25)。

マルチドキュメントは新しいウィンドウで開き、現在のウィンドウを置き換えてはいけません。 従来の “Open in Place” の挙動、つまり新しいドキュメントを開く際に現在のコンテキストをクリアしてしまうやり方は、もはや推奨されません(07:23)。新しいルールはこうです。各ドキュメントはそれぞれ専用のウィンドウで開き、ウィンドウは閉じられるまで存在し続ける(07:29)。ウィンドウは蓄積していくため、app メニューには開いているすべてのウィンドウを一覧表示するリストが追加されました(07:58)。このリストを使い物にするには、各ウィンドウに記述的な名前 — app 名ではなくドキュメントタイトルなど — が付いていることが前提となります(08:09)。

ポインタ: 新しい形状 + Liquid Glass のハイライト。 旧来のポインタは指を模した円形でした(08:48)。新しいポインタは形状が刷新され、入力に対して 1:1 で直接追従し、ボタンへのマグネット吸着はなくなりました(10:05)。ホバー時の表現も変わっています。以前はポインタ自身がハイライトに変形していましたが、新しい挙動では Liquid Glass の「トレイ」がボタンの上に直接現れ、下にある要素を屈折させることで現在選択中のターゲットを示します(09:21)。ポインタが Liquid Glass コントロール間を移動すると、ハイライトが素早くポインタを追いかけます(09:50)。カスタムのポインタインタラクションを使っているすべての app は、新しいポインタの下で改めて検証する必要があります(10:13)。

メニューバー: 整理 + 決して隠さない。 カスタムメニューを構成する際の手順はこうです。関連するアクションをすべて入れる。アルファベット順ではなく使用頻度で並べる。関連性でグループ化する。長いメニューはサブメニューで二次的なアクションを格納する。各項目に SF Symbol を付ける。最も頻繁に使うものにはキーボードショートカットを割り当てる(11:06 から)。View メニューはシステムが用意しますが、中身は自分で埋める必要があります。tab を追加してショートカットを割り当て、sidebar の toggle も追加します(12:30)。そして最も重要な原則 — コンテキストに応じてメニュー項目やメニュー全体を隠してはいけません(12:44)。利用できない項目は消すのではなく dim 状態で表示します。理由は空間記憶にあります。メニューの中身が毎回変わってしまうと、ユーザは毎回スキャンし直すことになり、予測可能なインタフェースとしてのメニューバーの価値が失われてしまうのです(13:14)。


重要ポイント

  • やること: ツールバーを「上部を埋め尽くす」から「Window Controls を回り込む」へ変更する。

    • 取り組む価値: 対応しなければ、システムが Window Controls 用の永続的な上部セーフエリアを強制的に追加し、コンテンツ領域は常に一段分削られたままになります。iPadOS 26 対応の中で最もリターンが直接的に得られる変更です。
    • 始め方: まずは現行の app を iPadOS 26 上で動かし、ツールバー領域のスクリーンショットで比較。続いて SwiftUI の toolbar placement を使ってツールバー左側のスペースを空け、Window Controls とツールバーボタンが同じ行に共存できるようにします。
  • やること: 「新しいドキュメントを開く」を、現在のウィンドウの置き換えから新規ウィンドウに変更する。

    • 取り組む価値: iPadOS 26 のマルチタスクモデルは、ウィンドウが永続することを前提としています。従来の Open in Place の挙動は、複数ウィンドウのワークフローではユーザのコンテキストを失わせます。同時に、各ウィンドウには記述的な名前が必須で、そうでなければ app メニューのウィンドウリストから見つけることができません。
    • 始め方: すべての openURL やドキュメントを開くエントリポイントを監査し、すべて新規 scene に切り替えます。各 scene には、ドキュメントタイトルに基づいた userActivity.title を設定し、app メニューのウィンドウリストで一目で区別できるかを検証します。
  • やること: app に「変化しないメニューバー」を装備する。

    • 取り組む価値: iPad 上のすべての app に標準でメニューバーが付くようになりました。メニューバーの本質的な価値は予測可能性にあります。それは power user があなたの app を覚えるための地図であり、キーボードショートカットの発見入口でもあります。
    • 始め方: app 内のユーザが起こせるすべてのアクションをリストアップし、関連性でクラスタリングしてメニューにまとめます。各項目には SF Symbol とショートカットを付与。利用不可の場合は disable のみで非表示にせず、メニュー全体も決して消えないようにします。
  • やること: 新しいポインタですべてのカスタム hover インタラクションをテストし直す。

    • 取り組む価値: 新しいポインタはターゲットへのマグネット吸着やラバーバンド効果を行わなくなりました。旧コードで磁力的な吸着に依存してヒット判定を行っていた箇所は、挙動が異常になります。Liquid Glass のハイライトも、従来の hover 変形効果を置き換えます。
    • 始め方: iPadOS 26 のシミュレータに外付けのトラックパッドを接続し、ツールバー、コントロール群、カスタムボタンを 1 つずつ動かします。コントロール群の間でハイライトが切り替わる際、指の動きに追従できているかを重点的に確認します。

関連セッション

コメント

GitHub Issues · utterances