Apple ヒューマンインターフェースガイドライン日本語訳 - iOS System Capabilities編

Apple ヒューマンインターフェースガイドライン日本語訳 - iOS System Capabilities編

August 4, 2021

本記事は、本記事投稿時点の Human Interface Guidelines - iOS を日本語訳したものです。DeepL で機械翻訳を行った後、誤訳が見受けられた際には修正を加えています。

Human Interface Guidelines - iOS #

https://developer.apple.com/design/human-interface-guidelines/


  1. Overview
  2. App Architecture
  3. User Interaction
  4. System Capabilities
  5. Visual Design
  6. Icons and Images
  7. Bars
  8. Views
  9. Controls
  10. Extensions

System Capabilities - Augmented Reality #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/augmented-reality/

オーグメンテッド・リアリティ #

AR(Augmented Reality:拡張現実)は、仮想オブジェクトと現実世界をシームレスに融合させた、没入感のある魅力的な体験を提供します。デバイスのカメラを使って物理的な世界をライブで表示しながら、アプリは 3 次元の仮想オブジェクトを重ね合わせ、あたかもそのオブジェクトが実際に存在しているかのように見せることができます。アプリが提供する体験に応じて、ユーザーはデバイスの向きを変えてさまざまな角度からオブジェクトを探索したり、ジェスチャーや動きを使ってオブジェクトとインタラクトしたり、さらには他のユーザーと一緒にマルチユーザー AR 体験をしたりすることができます。開発者向けのガイダンスについては、ARKit を参照してください。

AR 機能を提供するのは、性能の高いデバイスに限られます アプリの主な目的が AR である場合は、ARKit をサポートするデバイスにのみアプリを提供します。アプリに特定の AR 機能を必要とする機能が含まれている場合や、アプリで AR 機能がオプションとなっている場合は、サポートされていないデバイスでこれらの機能を使用しようとするとエラーが表示されるのではなく、サポートされていないデバイスでの機能の提供を避けるようにしてください。開発者向けのガイダンスについては、「デバイスのサポートとユーザーの許可を確認する」を参照してください。

魅力的で快適な体験の創造 #

ディスプレイ全体を使ってもらう 物理的な世界とアプリの仮想オブジェクトを表示するために、画面のできるだけ多くの部分を使います。没入感を失わせるようなコントロールや情報で画面をごちゃごちゃさせないようにしましょう。

リアルなオブジェクトを配置する際には、錯覚を起こさせるような演出を心がけましょう 詳細な 3D アセットとリアルなテクスチャを設計し、配置した物理的環境に生息しているかのようなオブジェクトを作成します。ARKit の情報を利用して、オブジェクトを適切にスケーリングして検出された現実世界の表面に配置したり、環境の照明条件を反映してカメラの粒をシミュレートしたり、現実世界の表面にトップダウンの拡散オブジェクトの影を落としたり、カメラの位置の変化に合わせてビジュアルを更新したりすることができます。錯覚を起こさないためには、1 秒間に 60 回のシーン更新を行い、オブジェクトが飛び跳ねたり、ちらついたりしないようにします。

反射面を持つ仮想オブジェクトが環境をどのように表現するかを検討します ARKit の反射は、カメラで撮影された環境に基づいた近似値です。AR 体験が現実であるかのような錯覚を維持するためには、反射面が小さいか粗いものを選び、これらの近似値の効果を弱めるようにします。

没入感を高めるために、オーディオやハプティクスを使用します 仮想物体が物理的な表面や他の仮想物体と接触したことを確認するには、効果音や衝撃音が有効です。また、BGM を流すことで、バーチャルな世界に人々を引き込むことができます。詳しくは、「オーディオとハプティクス」をご覧ください。

環境内のテキストを最小限にする アプリの使用に必要な情報のみを表示します。

追加の情報やコントロールが必要な場合は、スクリーンスペースに表示することを検討してください スクリーンスペースに表示されるコンテンツは、仮想世界またはデバイスの画面上の一貫した場所に固定されているように見えます(あまり一般的ではありません)。スクリーンスペースに表示されるコンテンツは固定されていますが、下層の AR 環境はデバイスに合わせて移動するため、ユーザーがコンテンツを見つけたり見たりするのは容易です。

持続的なコントロールが必要な場合は、間接的なコントロールの使用を検討してください 間接的なコントロールは、仮想環境の一部ではなく、スクリーンスペースに表示される 2D コントロールです。ユーザーがアプリ内で永続的なコントロールにアクセスする必要がある場合は、コントロールに到達するためにデバイスの持ち方を調整する必要がないようにコントロールを配置することを検討してください。また、間接コントロールに半透明を使用することで、背景のシーンを妨げないようにすることも検討してください。例えば、「Measure」アプリでは、現実世界で物を測るときに使用する半透明と不透明のコントロールを、画面スペースを使って表示しています。

実世界のさまざまな環境で人々がアプリを使うことを想定しています 人々は、動き回るためのスペースがあまりない場所や、大きくて平らな面がない場所でアプリを開くかもしれません。アプリの要件と期待値を前もって明確に伝え、物理的環境が AR 体験にどのような影響を与えるかを理解してもらいます。また、異なる環境で使用するために、異なる機能を提供することも考えられます。

人々の快適さに配慮する デバイスを一定の距離や角度で長時間保持することは、疲労の原因となります。疲れないようにするためには、デバイスを近づけなくても済むような距離に物を置いたり、ゲームの場合はレベルを短くして、短時間の休憩を挟むなどの工夫が必要です。

アプリが人の動きを促すものであれば、動きを徐々に導入します 例えば、AR ゲームに入ってすぐに、仮想の発射物を避けさせるようなことはしない方がいいでしょう。人々がアプリでの AR 体験に慣れるまで時間をかけ、徐々に動きを促すようにします。

人々の安全に配慮する AR 体験に没頭しているとき、人々は必ずしも物理的な環境を意識しているわけではありません。そのため、急激な動きや大きな動きをすることは危険です。例えば、ゲームでは大きな動きや急な動きをさせないようにするなど、アプリを安全に操作できる方法を検討しましょう。

コーチングでスタートさせる #

アプリで AR 体験をしてもらうためには、ARKit が周囲の環境を評価し、表面を検出できるように、デバイスを動かす必要があります。iOS 13 以降では、内蔵のコーチングビューを使用して、初期化プロセス中に人々が何をすべきかを示し、フィードバックを提供できます。また、コーチングビューは、人が別のアプリケーションに一時的に切り替えたなどの理由で AR 体験が中断された後に、AR の再初期化(再ローカリゼーションと呼ばれるプロセス)を支援するためにも使用できます。再定位に関するガイダンスは「中断の処理」を、開発者向けガイダンスは「ARCoachingOverlayView」を参照してください。

人々がコーチングビューを使用している間、不要なアプリの UI を非表示にします デフォルトでは、初期化または再ローカライズの開始時にコーチングビューが自動的に表示されるため、人々がコーチングビューの指示に集中できるように、関係のない UI を非表示にする準備をしておく必要があります。

必要に応じて、カスタムのコーチングエクスペリエンスを提供します システムが提供するコーチングビューは、水平面や垂直面の検出などの特定の情報を提供するように設定できますが、追加の情報が必要な場合や、異なるビジュアルスタイルを使用したい場合があります。カスタムのコーチングエクスペリエンスをデザインしたい場合は、システムが提供するコーチングビューを参考にしてください。

オブジェクトの配置を支援する #

サーフェスの位置を確認し、オブジェクトを配置するタイミングを人々に示します システムが提供するコーチングビューを使用して、オブジェクトを置くための水平または垂直の平らな面を見つける手助けをすることができます。ARKit が面を検出した後、アプリはオブジェクトの配置が可能になったことを示すカスタムビジュアルインジケータを表示できます。インジケータを検出されたサーフェスの平面に合わせることで、配置されたオブジェクトが環境の中でどのように見えるかをユーザーに理解してもらうことができます。

人が物を置いたら、すぐにその物を AR 環境に組み込む サーフェスの検出は、精度がどんどん向上していきますが、より正確なデータを待ってからオブジェクトを配置するのは避けた方がいいでしょう。人がオブジェクトを置いたときには、その情報をもとに即座に対応し、表面検出が完了したら、必要に応じてオブジェクトの位置を微妙に修正していきます。例えば、検出されたサーフェイスの範囲を超えてオブジェクトが置かれた場合、オブジェクトをサーフェイスに優しく押し戻します。オブジェクトの位置を調整するための開発者向けガイダンスは、ARTrackedRaycast を参照してください。

画面外の仮想オブジェクトに人を誘導することを検討する 画面外にあるオブジェクトを人が見つけるのは難しい場合があります。このような場合、視覚的または聴覚的な手がかりを提供することで、そのようなオブジェクトを見つけやすくすることができます。例えば、画面外の左端にあるものは、画面の左端にインジケータを表示し、その方向にカメラを向けるように誘導することができます。

検出されたサーフェスのエッジに、オブジェクトを正確に合わせようとしないでください AR では、サーフェスの境界は近似値であり、周囲の環境をさらに分析すると変化する可能性があります。

面の分類情報をオブジェクトの配置に反映させる 例えば、「床」に分類された平面にのみバーチャルな家具を置くことができるようにしたり、バーチャルなゲームボードを置くためには「テーブル」に分類された平面を必要とするようにしたりする。

直感的で楽しいオブジェクトインタラクションのデザイン #

可能な限り、人が直接手を動かしてオブジェクトを操作できるようにしましょう 画面上の 3D オブジェクトを直接触って操作する方が、画面内で間接的に操作するよりも没入感があり、直感的に操作できます。しかし、人々がアプリを使いながら動き回るような状況では、間接的な操作の方がうまくいくこともあります。

人が慣れ親しんだ標準的なジェスチャーを使って、仮想オブジェクトと直接対話できるようにする たとえば、オブジェクトの移動には 1 本指のドラッグジェスチャーを、オブジェクトの回転には 2 本指の回転ジェスチャーをサポートすることを検討してください。詳しくは、「ジェスチャー」を参照してください。

一般的に、インタラクションはシンプルに保ちます タッチ・ジェスチャーは本質的に 2 次元ですが、AR 体験は現実の世界の 3 次元を含みます。バーチャル・オブジェクトとのインタラクションをシンプルにするには、次のようなアプローチが考えられます。

インタラクティブな仮想物体に適度に近づいてジェスチャーに反応する 小さくて薄いオブジェクトや、離れた場所にあるオブジェクトの特定の場所を狙ってタッチするのは、正確に行うのが難しい場合があります。アプリがインタラクティブなオブジェクトの近くでジェスチャーを検出した場合、通常は、人々がそのオブジェクトに影響を与えたいと考えていると考えるのが最善です。

アプリで意味がある場合は、ユーザー主導のオブジェクトのスケーリングをサポートします たとえば、ユーザーが想像上の環境を探索できるアプリの場合、現実の世界を表現する必要がないため、オブジェクトのスケーリングをサポートすることは理にかなっています。一方で、買い物客が購入する家具を決めるためのアプリの場合、椅子のオブジェクトを拡大縮小させても、その椅子が部屋でどのように見えるかをイメージすることはできません。

ヒント

アプリの目的にかかわらず、オブジェクトの距離を調整するためにスケーリングを使用しないでください。遠くにあるものを近くに見せようとして大きくすると、結果的に遠くにあるものが大きく見えてしまいます。

矛盾するジェスチャーには注意が必要です 例えば、2 本指のピンチジェスチャーは、2 本指の回転ジェスチャーと似ています。このように似たようなジェスチャーを 2 つ実装した場合は、アプリをテストして、それらが正しく解釈されることを確認してください。

アプリの AR 環境の物理学と一致したバーチャルオブジェクトの動きを目指しましょう 人々は、ざらざらした表面や凹凸のある表面の上をオブジェクトがスムーズに動くことを必ずしも期待していませんが、オブジェクトが動いている間も見えていることを期待しています。動いているオブジェクトは現実世界の表面にくっついているようにし、人がオブジェクトのサイズを変えたり、回転させたり、動かしたりすると、オブジェクトがジャンプしたり、消えたり、また現れたりするようなことがないようにしましょう。

さらに魅力的なインタラクションの方法を模索する AR で人々が仮想オブジェクトとインタラクトする方法は、ジェスチャーだけではありません。アプリは、動きや近さなどの他の要素を利用して、コンテンツに命を吹き込むことができます。例えば、ゲームのキャラクターは、人が歩いてくると頭を回転させて人を見ることができます。

優れたマルチユーザー体験をデザインする #

複数の人がアプリの AR 体験を共有する場合、各参加者が独立して環境をマッピングし、ARKit が自動的にマップを統合します。開発者向けのガイダンスとしては、isCollaborationEnabled を参照してください。

人のオクルージョンを有効にすることを検討してください アプリが、デバイスのカメラフィードに表示される人物の背後に仮想オブジェクトを配置することをサポートしている場合、人物がオブジェクトを隠すようにすることで、現実のような錯覚を高めることができます。開発者向けのガイダンスは、「仮想コンテンツを人で覆い隠す」を参照してください。

可能な限り、マルチユーザーの AR 体験に新しい参加者を参加させる アプリが体験開始前にすべての参加者の参加を要求している場合を除き、暗黙のマップマージを使用して、新しい人が進行中の AR 体験にすぐに参加できるようにすることを検討してください。開発者向けのガイダンスとしては、isCollaborationEnabled を参照してください。

現実世界のオブジェクトに反応させる #

現実世界の環境にある既知の画像やオブジェクトを使用して、仮想コンテンツの表示をトリガーすることで、AR 体験を向上させることができます。例えば、SF 映画の劇場ポスターを認識するアプリでは、ポスターから仮想の宇宙船を出現させ、環境内を飛び回らせることができます。また、美術館のアプリでは、彫刻を認識するとバーチャルツアーガイドが表示されます。このような体験を可能にするには、アプリが 2D 参照画像や 3D 参照オブジェクトのセットを提供し、ARKit が現在の環境でこれらのアイテムをいつ、どこで検出したかを示す必要があります。開発者向けのガイダンスは、「AR エクスペリエンスで画像を認識する」を参照してください。

検出された画像が最初に消えたときには、それに取り付けられている仮想オブジェクトの削除を遅らせることを検討してください ARKit は、検出された画像の位置や向きの変化を追跡しません。バーチャルオブジェクトがちらつくのを防ぐために、フェードアウトや削除するまでに最大 1 秒待つことを検討してください。

一度に使用する参照画像の数を制限する 画像検出のパフォーマンスは、ARKit が現実世界の環境で 100 個以下の異なる画像を探すときに、最もよく機能します。100 枚以上の参照画像が必要な場合は、状況に応じてアクティブな参照画像のセットを変更することができます。例えば、博物館のガイドアプリでは、位置情報サービスの使用許可を得て、人がいる場所を特定し、その場所に表示されている画像だけを探すことができます。

正確な位置情報を必要とする参照画像の数を制限する 参照画像の位置を更新するには、より多くのリソースが必要です。画像が環境中で動く可能性がある場合や、添付されたアニメーションやバーチャルオブジェクトが画像のサイズに比べて小さい場合は、追跡画像を使用します。

人とのコミュニケーション #

説明用のテキストを表示する必要がある場合は、親しみやすい用語を使用してください AR は高度な概念であり、人によっては怖く感じるかもしれません。親しみやすくするために、ARKit、ワールドディテクション、トラッキングなどの専門用語は使わないようにしましょう。その代わりに、多くの人が理解できるような親しみやすい会話用語を使いましょう。

ドゥ ドント
表面を見つけられない。横に移動するか、携帯電話の位置を変えてみてください。 平面が見つかりません。トラッキングを調整してください。
場所をタップして、[配置するオブジェクトの名前]を配置します。 面をタップしてオブジェクトを固定します。
照明を多めにつけて、動き回ってみてください。 機能が不十分です。
携帯電話をもっとゆっくり動かしてみてください。 過剰な動きを検出しました。

3 次元の状況では、3D のヒントが好ましい 例えば、オブジェクトの周りに 3D の回転インジケータを配置すると、2D のオーバーレイにテキストベースの指示を表示するよりも直感的に理解できます。人々が文脈上のヒントに反応しない場合を除き、3D の文脈でテキストのオーバーレイヒントを表示することは避けてください。

重要な文字を読みやすくする 重要なラベル、注釈、指示などのテキストは、画面スペースを使って表示します。3D 空間にテキストを表示する必要がある場合は、テキストが人の方を向くようにし、テキストとラベル対象物の間の距離に関わらず、同じ文字サイズを使用するようにします。

必要に応じて、より多くの情報を得るための手段を提供する タップするとさらに詳しい情報が得られることを示すために、アプリのエクスペリエンスに合ったビジュアルインジケータをデザインします。

割り込みの処理 #

ARKit は、他のアプリに切り替えたり、電話を受けたりするような中断時には、デバイスの位置や方向を追跡することができません。中断が終わると、以前に配置した仮想オブジェクトが現実世界の誤った位置に表示される可能性が高くなります。再配置を有効にすると、ARKit は新しい情報を使用して、バーチャルオブジェクトを元の現実世界の位置に戻そうとします。開発者向けのガイダンスとしては、「セッションのライフサイクルを管理して品質を追跡する」を参照してください。

システムが提供するコーチングビューを使用して、人々が再ローカライズするのを支援することを検討してください 再定位の際、ARKit は以前の状態と現在の環境の新しい観測結果との整合性を試みます。このような観察を可能にするために、コーチングビューを使用して、デバイスを以前の位置や方向に戻す手助けをすることができます。

再ローカライズの際に、以前に配置したバーチャルオブジェクトを隠すことを検討してください 再ローカライズ時のちらつきやその他の不快な視覚効果を避けるために、バーチャルオブジェクトを非表示にして、新しい位置に再表示するのが最善の方法です。

アプリが AR と非 AR の両方の体験をサポートしている場合は、中断を最小限に抑えます 中断を避けるためには、AR 体験の中に非 AR 体験を組み込むことで、ユーザーが AR を終了したり再起動したりすることなくタスクを処理できるようにする方法があります。例えば、家具を部屋に置いて購入するかどうかを決めるアプリの場合、ユーザーが AR 体験を離れることなく家具の張り地を変更できるようにします。

再配置のキャンセルを可能にする ユーザーがデバイスを中断前の状態に近い位置に配置しないと、再配置は成功せずにいつまでも続きます。セッションを再開するようにコーチングしてもうまくいかない場合は、リセットボタンなど、AR 体験を再開するための方法を提供することを検討してください。

前面カメラが顔を約半秒以上追跡できない場合は、その旨を表示する カメラが人の顔を追えなくなったことを視覚的に表示します。その際、文字による指示が必要な場合は、最小限にとどめてください。

問題を解決する方法を提案する #

期待通りの体験が得られなかった場合は、体験をリセットしてもらいましょう 状況が改善されるのを待ったり、オブジェクトの配置に悩んだりすることを強要してはいけません。もう一度やり直して、より良い結果が得られるかどうかを確認する方法を提供しましょう。

問題が発生した場合、可能な修正方法を提案する 実世界の環境の分析と表面の検出は、光が足りない、表面が反射しすぎている、表面に十分なディテールがない、カメラの動きが大きすぎるなど、さまざまな理由で失敗したり、時間がかかりすぎることがあります。このような問題がアプリに通知された場合は、わかりやすく親しみやすい言葉で解決策を提案してください。

問題点 考えられる対処法
機能が不十分です。 照明を増やしたり、体を動かしたりしてみてください。
過剰な動きを検出しました。 携帯電話をゆっくりと動かしてみてください。
面の検出に時間がかかりすぎています。 移動したり、照明を増やしたり、十分な質感のある表面に携帯電話を向けたりしてみてください。

AR グリフ #

アプリは、ARKit ベースの体験を起動するコントロールに AR グリフを表示できます。このグリフは Resources からダウンロードできます。

AR グリフは意図的に使用してください このグリフは、ARKit ベースの体験を開始するためにのみ使用してください。グリフを変更したり(サイズや色の調整を除く)、他の目的で使用したり、ARKit で作成されていない AR 体験と組み合わせて使用したりしないでください。

最小限のクリアスペースを確保してください AR グリフの周囲に必要な最小限のクリアスペースは、グリフの高さの 10%です。他の要素がこのスペースを侵害したり、グリフを遮ったりしないようにしてください。

AR バッジ #

製品やその他のオブジェクトのコレクションを含むアプリは、ARKit を使って AR で見ることができる特定のアイテムを識別するためにバッジを使用できます。例えば、デパートのアプリでは、購入する前に自宅でプレビューできる家具をバッジで示すことができます。

AR バッジは意図された通りに使用し、改変しないでください AR バッジは「リソース」でダウンロードできます(折りたたみ式、拡張式)。これらの画像は、ARKit を使って AR で見ることができる製品やその他のオブジェクトを識別するためにのみ使用してください。バッジを改変したり、色を変えたり、他の目的で使用したり、ARKit で作成されていない AR 体験と組み合わせて使用したりしないでください。

グリフオンリーバッジよりも AR バッジを優先して使用してください 一般的には、AR バッジを設置できない制約のあるスペースでは、グリフオンリーバッジを使用してください。どちらのバッジも、デフォルトのサイズで問題なく動作します。

バッジを使用するのは、アプリに AR で表示できるオブジェクトとできないオブジェクトが混在している場合のみです アプリ内のすべてのオブジェクトが AR で表示できる場合は、バッジは必要ありません。

バッジの配置は一貫性を持って明確にします バッジは、オブジェクトの写真の一角に表示されるのが最も美しく見えます。常に同じコーナーに配置し、はっきりと見えるように十分な大きさを確保してください(ただし、写真の重要なディテールを隠してしまうような大きさではありません)。

最小限のクリアスペースを確保する AR バッジの周囲には、バッジの高さの 10%のクリアスペースが必要です。他の要素がこのスペースを侵害したり、バッジを遮ったりすることがあってはなりません。


System Capabilities - Home Screen Actions #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/home-screen-actions/

ホーム画面のクイックアクション #

ホーム画面のクイックアクションは、ホーム画面からアプリ固有の便利な操作を行うための便利な機能です。アプリのアイコンを長押しすると、利用可能なクイックアクションのメニューが表示されます(3D Touch デバイスでは、アイコンを長押しするとメニューが表示されます)。例えば、「メール」には、受信箱や VIP メールボックスを開いたり、検索を開始したり、新しいメッセージを作成したりするクイックアクションが用意されています。ホーム画面のクイックアクションメニューには、アプリ固有のアクションのほかに、アプリの削除やホーム画面の編集などの項目があります。

各ホーム画面のクイックアクションには、タイトル、左または右のグリフ(ホーム画面でのアプリの位置に応じて)、およびオプションのサブタイトルが含まれます。タイトルとサブタイトルは、左から右への言語では常に左揃えで表示されます。アプリは、新しい情報が得られたときにクイックアクションを動的に更新することもできます。例えば、「メッセージ」には、最近の会話を開くためのクイックアクションが用意されています。

魅力的で価値の高いタスクのためのクイックアクションを作成します 例えば、「マップ」では、「マップ」アプリを起動しなくても、現在地の近くを検索したり、家までの道順を調べたりすることができます。すべてのアプリは、少なくとも 1 つの有用なクイックアクションを有効にする必要があり、合計 4 つのクイックアクションを提供することができます。

ナビゲーションを簡単にするためにクイックアクションを使うのは避けましょう アプリ内の重要なエリアに行くのが難しい、または時間がかかる場合は、まず、誰もがうまく使えるようにナビゲーションを修正します。次に、便利で創造的なタスクを可能にするクイックアクションを提供することに専念します。

クイックアクションに予測不可能な変更を加えることは避けてください ダイナミックなクイックアクションは、アクションを常に適切に保つための優れた方法です。たとえば、現在の場所やアプリでの最近のアクティビティ、時間帯、設定の変更などに応じてクイックアクションを更新することは理にかなっています。ただし、アクションが予想外に変化したり、混乱を招いたりするようなことがあってはなりません。

各クイックアクションには簡潔なタイトルを付けましょう アクションのタイトルは、アクションの結果を即座に伝えるものでなければなりません。例えば、「家に向かう」、「新しい連絡先を作る」、「新しいメッセージ」などです。より詳細な情報を伝える必要がある場合は、サブタイトルも用意します。Mail では、受信箱や VIP フォルダに未読のメッセージがあるかどうかを字幕で表しています。タイトルやサブタイトルには、アプリの名前や余計な情報を入れないようにし、文字が切れないように短くし、ローカライズを考慮して文章を書きましょう。

通知にクイックアクションを使わない 人々は、アプリからの通知を他の方法で受け取ることを期待しています。詳しくは「通知」をご覧ください。

各クイックアクションには、認識できるグリフを用意してください 各アクションを表現するために、SF 記号の使用を検討してください(ガイダンスは、SF 記号を参照)。また、「クイックアクションアイコン」に記載されている、システムになじみのあるグリフを使用することもできます。独自のグリフをデザインする場合は、Apple Design Resources for iOS に同梱されているクイックアクションアイコンテンプレートを使用し、以下のサイズを参考にしてください。

絵文字をグリフの代わりに使用しないでください 絵文字は、右揃えのテキストと正しく整列しません。また、絵文字はフルカラーですが、クイックアクションのグリフは単色です。


System Capabilities - Multitasking #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/multitasking/

マルチタスキング #

マルチタスクでは、iOS デバイスのマルチタスクインターフェイスや、iPad のマルチフィンガージェスチャーを使って、いつでもアプリケーションをすばやく切り替えることができます。iPad のマルチタスクでは、スライドオーバー、スプリットビュー、ピクチャ・イン・ピクチャの各モードで 2 つのアプリケーションを同時に使用することもできます。スライドオーバーは、画面の右側からスワイプすることで、現在のアプリのコンテキストを保ったまま、一時的に 2 つ目のアプリを使うことができます。また、横に並んだ 2 つのアプリを同時に使うことができる「Split View」や、別のアプリで作業しながらビデオを見ることができる「Picture in Picture」などもあります。

マルチタスク環境で活躍するアプリをデザインするには、デバイス上の他のアプリと調和して共存することが重要です。つまり、アプリが CPU、メモリ、スクリーンスペース、その他のシステムリソースを使いすぎないようにすることです。また、他のアプリからの突然の中断や音声にも適切に対応し、バックグラウンドへの移行やバックグラウンドからの離脱を迅速かつスムーズに行い、バックグラウンドで動作する際には責任ある行動をとる必要があります。

スプリットビューでも見栄えのする、適応性の高いインターフェイスをデザインします アダプティブインターフェースは、ユーザーがマルチタスクモードを切り替えたり、画面を回転させたり、テキストサイズやロケールを変更したりすると、UI 要素やレイアウトを自動的に調整します。アダプティブ・エクスペリエンスのデザインについて詳しくは、「アダプティビティとレイアウト」をご覧ください。

中断に備え、再開できるようにする アプリはいつでも中断される可能性があります。中断が発生した場合、アプリは現在の状態を迅速かつ正確に保存し、ユーザーが戻ってきたときに中断したところからシームレスに続けられるようにする必要があります。開発者向けのガイダンスとしては、『App Programming Guide for iOS』の「Preserving Your App’s Visual Appearance Across Launches」を参照してください。

インターフェイスがダブルハイステータスバーで動作することを確認してください 進行中の電話、オーディオ録音、テザリングなどの特定の機能では、画面の上部に追加のステータスバーが表示されます。準備の整っていないアプリでは、この高さが他のインターフェイス要素を覆ったり押し下げたりすることで、レイアウト上の問題を引き起こす可能性があります。これらの機能を有効にした状態でアプリをテストし、インターフェイスが適切に反応し、かつ美しい外観を保っていることを確認してください。

注意や積極的な参加を必要とするアクティビティを一時停止する 例えば、ゲームやメディアを見るアプリの場合、ユーザーが他のアプリに切り替えたときに何かを見逃さないようにします。また、他のアプリに切り替わっても、何もしなかったかのように続けてもらえます。

外部音声に適切に対応する アプリの音声が、他のアプリやシステム自体からの音声によって中断されることがあります。例えば、電話がかかってきたり、Siri が音楽のプレイリストを起動したりすると、アプリの音声が中断されることがあります。このような状況が発生した場合、アプリの応答は人々の期待に応えるものでなければなりません。音楽、ポッドキャスト、オーディオブックの再生など、主要なオーディオの中断については、アプリはオーディオを無期限に一時停止する必要があります。GPS による方向通知などの短い中断の場合、アプリは一時的にオーディオの音量を下げるか、オーディオを一時停止し、中断が終了したら再開するようにしてください。詳しい説明は、「音声」を参照してください。

ユーザーが開始したタスクをバックグラウンドで終了させる ユーザーがタスクを開始すると、アプリから離れてもタスクが終了することを期待します。アプリが、追加の入力を必要としないタスクを実行している最中であれば、中断する前にバックグラウンドで完了させます。

通知は控えめにする アプリは、アプリが一時停止しているときも、バックグラウンドで動作しているときも、まったく動作していないときも、特定の時間に通知を送信するように設定できます。通知は重要な情報を伝えるのに適していますが、多すぎて人を困らせるようなことは避けましょう。たとえば、アプリがバックグラウンドでタスクを終了するたびに通知を表示するのはやめましょう。その代わりに、ユーザーがアプリに戻ってタスクを確認できるようにします。その他のガイダンスについては、「通知」を参照してください。

iPad に特化した開発者ガイダンスについては、「iPad でのマルチタスク機能の強化を採用する」を参照してください。


System Capabilities - Multiple Windows #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/multiple-windows/

iPad でのマルチウィンドウ #

iOS 13 以降では、iPad アプリがマルチウィンドウに対応しています。例えば、文書作成が可能な iPad アプリでは、複数の文書ウィンドウを同時に開くことができます。

注意

iPad アプリの Mac 版でマルチウィンドウをサポートするには、iPad でマルチウィンドウをサポートする必要があります。詳しくは Mac Catalyst を参照してください。

新しいウィンドウを開くには、いくつかの方法があります。例えば、以下のような方法です。

  • アプリの Dock アイコンを画面の横にドラッグして、現在のウィンドウの 1 つを選択するか、新しいウィンドウを作成する
  • 画面の横にあるオブジェクトをドラッグして、システムが提供するドロップターゲットにドロップする。
  • ホーム画面または Dock 上のアプリのアイコンをタッチしたまま、表示されるコンテキストメニューの「すべてのウィンドウを表示」をタップし、「追加(+)」ボタンをタップする。
  • オブジェクトをタッチしたままにすると、そのオブジェクトを新しいウィンドウで表示するオプションを含むコンテキストメニューが表示されます。

iPad アプリでは、通常、2 種類のウィンドウが使用されます。主ウィンドウでは、アプリの全階層をナビゲートし、アプリのすべてのオブジェクトとそれに関連するアクションにアクセスできます。補助ウィンドウは、モーダルタスクをサポートしたり、1 つのオブジェクトとそれに関連するアクションを含んでいることが多いです。例えば、メールでは、主ウィンドウにはすべてのメールボックスとメッセージが表示され、補助ウィンドウには 1 つのメッセージが表示される。

ほとんどの場合、主ウィンドウを使用すべきですが、補助ウィンドウを使用するかどうかは、ユーザーがアプリで新しいウィンドウを開いたときに表示したいコンテンツの種類によって大きく異なります。アイテムを画面の横にドラッグして新しいウィンドウを開くか、「アイテムを新しいウィンドウで開く」コマンドを選択して新しいウィンドウを開くかにかかわらず、次のようなヒューリスティックな方法を検討してください。

  • アイテムがコンテンツのフォルダである場合、プライマリウィンドウを使用する。
  • アイテムが個々のドキュメントやファイルで、ユーザーがアイテムの操作を終えたときに新しいウィンドウを閉じる可能性がある場合は、補助ウィンドウを使用する。

補助ウィンドウは、それ自体が有用であることを確認してください 補助ウィンドウは、ユーザーがアプリのコンテンツや機能を追加で見ることができるものでなければなりません。補助ウィンドウは、主ウィンドウのコンテンツで動作するオプションやツールを提供するためだけに使用することは避けてください。

補助ウィンドウには、「完了」または「閉じる」ボタンを使用します プライマリウィンドウにドキュメントが表示されている場合、そのウィンドウには通常、親ビューに移動するための「戻る」ボタンが付いています。一方、補助ウィンドウにドキュメントが表示されている場合、「戻る」ボタンの代わりに「完了」または「閉じる」ボタンを使用する必要があります。これは、補助ウィンドウでの作業が終了したら閉じることを想定しているためです。

開発者向けのガイダンスについては、「App and Scenes」を参照してください。


System Capabilities - Notifications #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/notifications/

通知機能 #

デバイスがロックされていても、使用中であっても、重要な情報をタイムリーに伝えることができるのが通知機能です。例えば、メッセージの到着、イベントの発生、新しいデータの入手、ステータスの変更などを通知することができます。

気になることがあったときに通知を受け取ることは喜ばしいことですが、邪魔されることは必ずしも喜ばしいことではありません。システムは、「設定」>「通知」で、この決定を変更したり、通知のスタイル、プレビュー、Siri とのやりとりを調整することができます。また、「設定」>「フォーカス」で、すべての通知を止めることもできます(一部の地域では政府からの警告を除く)。

開発者向けのガイダンスは UserNotifications をご覧ください。

通知の管理をサポート #

iOS 15 以降では、配信時間の指定やフォーカスの設定により、通知の動作をきめ細かく調整できるようになりました。配信スケジュールでは、通知をすぐに受け取るか、あるいは選択した時間にまとめて配信するかを選ぶことができます。フォーカスを設定すると、睡眠、仕事、読書、運転などの活動に合わせて定義した時間帯に通知をフィルタリングすることができます。

フォーカスを突破して通知を届けることができる連絡先やアプリケーションを特定します。例えば、「仕事」のフォーカスでは、仕事仲間や家族、仕事に関連するアプリからの通知を、通知が届いた時点で受け取ることができます。また、フォーカシング中は、すべての「時間を気にする通知」を受け取りたいと思うかもしれません。タイムセンシティブ通知には、人々がすぐに手に入れたい重要な情報が含まれています。

重要

フォーカスによって通知アラートの配信が遅れたとしても、通知自体は到着後すぐに利用できます。

これらの動作のカスタマイズをサポートするために、まずアプリが送信できる通知の種類を特定します。アプリが電話やメッセージなどの直接通信をサポートしている場合は通信通知を使用し、それ以外のタイプのタスクには非通信通知を使用します。通信通知をサポートするには、SiriKit インテントを採用します。これにより、Siri を使って通知の動作をカスタマイズできます。

INSendMessageIntent と UNNotificationContentProviding を参照してください) アプリが送信できる非通信型の通知について、システムで定義された中断レベルを指定します。システムは中断レベルを使用して、アラートを配信するタイミングを決定します。通信通知が届いた場合、システムは送信者を使用してアラートを配信するタイミングを決定します。

システムは、非通信通知に対して 4 つの中断レベルを定義しています。

  • パッシブ。おすすめのレストランなど、人々が自由に閲覧できる情報。
  • アクティブ(デフォルト)。お気に入りのスポーツチームのスコア更新など、情報が届いたときに人々が知りたいと思う情報。
  • Time Sensitive(タイムセンシティブ)。アカウントのセキュリティ問題や荷物の配送など、ユーザーに直接影響を与え、早急な対応が必要な情報。
  • 重要。個人の健康や公共の安全に関する緊急の情報で、ユーザーに直接影響を与え、直ちに注意を払う必要があるもの。クリティカルな通知は極めて稀で、一般的には政府・公的機関やヘルスケアアプリから送られてきます。Critical 中断レベルを使用するには、エンタイトルメントを取得する必要があります。システムで定義された各中断レベルの通知アラートは、以下のように動作します。
割り込みレベル 予定していた配信を上書きする ブレイクスルーフォーカス リング/サイレントスイッチを上書きする
パッシブ No No No
アクティブ No No No
タイムセンシティブ Yes Yes No
クリティカル Yes Yes Yes

注意

クリティカル通知は Ring/Silent スイッチを無効にし、予定されていた配信やフォーカスを突破することができるため、通知を送信するにはエンタイトルメントを取得する必要があります。

各通知の緊急性を正確に表現することで、信頼を築きます。 人々は、すべての通知をオフにするなど、アプリからの通知を受け取る方法を調整する方法をいくつか持っているので、中断レベルを割り当てる際には、できるだけ現実的であることが重要です。優先度の低い情報を通知するのに、緊急度の高い通知が割り込んできたと思われないようにするためです。

時間を気にする中断レベルは、その瞬間に関連性のある通知にのみ使用してください。 フォーカスやスケジュールされた配信をタイムセンシティブ通知で中断させることのメリットを理解してもらうために、通知が今起きている、または 1 時間以内に起きるイベントに関するものであることを確認します。あなたのアプリから初めて「時間を気にする通知」が届いたとき、システムはそのような通知がどのように機能するかを説明し、その情報がすぐに注意を払う必要があることに同意しない場合は、通知をオフにする方法を人々に提供します。今後、システムは定期的に人々に、タイムセンシティブ通知がどのように機能しているかを評価する追加の機会を与えます。開発者向けのガイダンスについては、UNNotificationInterruptionLevel を参照してください。

マーケティング通知の送信に Time Sensitive の中断レベルを使用しないでください。 人々はあなたのアプリからマーケティング通知を受け取ることに同意しているかもしれませんが、そのような通知は、フォーカスやスケジュールされた配信設定を突破してはいけません。

優れた通知体験をデザインする #

一見して理解できる、価値の高いリッチな情報を提供することを目指します。

通知内容のコンテキストを提供する場合は、短いタイトルを作成します。 システムは、タイトルを最も見やすい通知の上部に表示します。非通信型の通知でタイトルを提供しない場合、システムはアプリ名を表示します。通信型の通知では、システムはタイトル領域に送信者の名前を自動的に表示します。通知のタイトルエリアは目立つので、有用な情報を提供するのに最適な場所です。例えば、非通信系の通知では、見出し、イベント名、メールの件名などを表示することができます。New Document のような一般的なタイトルしか提供できない場合は、代わりにシステムにアプリ名を表示させた方が良い場合があります。

簡潔で読みやすい通知内容を書く。 完全な文章、大文字小文字の区別、適切な句読点を使用し、メッセージを切り詰めないようにします。アプリを開くこと、特定の画面に移動すること、特定のボタンをタップすることなど、通知が消えた後では思い出しにくい作業を指示することは避けてください。

重要な情報、個人的な情報、または機密情報を通知に含めないでください。 通知を受け取った人が何をしているかは予測できないので、デバイスの画面に表示される可能性のある個人情報を含めないことが重要です。

ユーザーが反応していなくても、同じ内容の通知を複数回送ることは避けましょう。 人は自分の都合に合わせて通知を受け取ります。同じ内容の通知を何度も送ると、通知センターがいっぱいになり、アプリからの通知をすべてオフにしてしまう可能性があります。

通知プレビューが非表示になっているときには、一般的に説明しやすいテキストを表示します。 「設定」では、すべてのアプリの通知プレビューの非表示を選択できます。この場合、システムにはアプリのアイコンとデフォルトのタイトルである「通知」のみが表示されます。通知の全文を表示するかどうかを判断するのに十分な文脈を人々に与えるために、“Friend Request”、“New Comment”、“Reminder”、“Shipment “などのように、詳細を明らかにしすぎずに通知内容を簡潔に説明する本文を記述します。開発者向けのガイダンスとしては、hiddenPreviewsBodyPlaceholder を参照してください。

アプリの名前やアイコンを入れないでください。 システムは、各通知の先頭にアプリのアイコンを大きく表示します。通信通知では、システムは送信者の連絡先画像(アバター)を表示し、アイコンの小さいバージョンがバッジされます。

通知を補足するための音の提供を検討してください。 音は、アプリの通知を区別し、画面を見ていない人の注意を引くための素晴らしい方法です。アプリのスタイルに合わせたカスタムサウンドを作成したり、システムが提供するアラートサウンドを使用することができます。カスタムサウンドを使用する場合は、短く、特徴的で、プロが制作したものであることを確認してください。通知音はユーザーエクスペリエンスを向上させますが、重要な情報の伝達を通知音に頼ってはいけません。通知音と一緒にバイブレーションを鳴らすこともできますが、プログラムでバイブレーションを鳴らすことはできません。開発者向けのガイダンスとしては、UNNotificationSound を参照してください。

通知アクションの提供 #

通知では、カスタマイズ可能な詳細ビューを表示することができます。このビューには、アプリを開かずにアクションを実行するための最大 4 つのボタンが含まれています。例えば、カレンダーのイベント通知には、イベントのアラームを数分間延期する「スヌーズ」ボタンがあります。

詳細ビューを開くには、タッチ&ホールドのジェスチャーで通知のプレビューを表示するか、ロックされていないデバイスであれば下にスワイプします。開発者向けのガイダンスについては、「通知と通知に関連するアクションの処理」を参照してください。

通知の文脈で意味のある有益なアクションを提供してください。 アプリを開く必要がないような、一般的で時間の節約になるタスクを実行できるアクションが望ましいです。各ボタンには、アクションの結果を明確に表す、短いタイトルケースの用語やフレーズを使用します。タイトルには、アプリの名前や余計な情報を含めず、切り捨てられないようにテキストを短くし、ローカライズを考慮してテキストを作成してください。

単にアプリを開くだけの通知アクションを提供しないでください。 人々は、通知やそのプレビューをタップしたときに、あなたのアプリが関連する画面を開くことを期待しています。そのため、同じことをするアクションボタンを提示すると、詳細表示が煩雑になり、混乱を招く可能性があります。

破壊的なアクションを提供しないようにしましょう。 破壊的なアクションを提供しなければならない場合は、意図しない結果を避けるために、人々が十分な情報を得られるようにしてください。破壊的であると判断されたアクションは赤で表示されます。

各通知アクションには、シンプルで認識しやすいグリフを用意します。 グリフはアクションの意味を強化し、それが何をするものかを人々がすぐに理解できるようにします。システムは、アクションのタイトルの末尾にグリフを表示します。SF シンボルを使用すると、コマンドを表す既存のシンボルを選択したり、関連するシンボルを編集してカスタムグリフを作成することができます。

開発者向けのガイダンスとしては、UNNotificationAction の icon プロパティを参照してください。

バッジ付け #

アプリアイコンにバッジを付けて、未読の通知の数を示すことができます。開発者向けのガイダンスとして、applicationIconBadgeNumber を参照してください。

バッジは、未読通知の数を表示する場合にのみ使用してください。 バッジは、気象データ、日時、株価、ゲームのスコアなど、他のタイプの数値情報を伝えるためには使用しないでください。

重要な情報の伝達にバッジを使用しないでください。 人々はアプリのバッジをオフにすることができるため、重要な情報の伝達にバッジを使用すると、人々がそれを見落とす危険性があります。

バッジを最新の状態に保つ。 対応する情報が表示されたら、すぐにアプリのバッジを更新します。新しい情報があると思っていたら、すでに見たことがある情報だったということがないようにしましょう。バッジのカウントをゼロにすると、通知センターから関連するすべての通知が削除されます。

マーケティング用通知の送信 #

通知を使ってマーケティングやプロモーションのためのコンテンツを送ることは、人々がそのような情報を受け取ることに明示的に同意しない限り避けましょう。アプリに関連する新機能、コンテンツ、イベントについて知りたい場合は、マーケティング通知の受信を許可することができます。たとえば、購読アプリのユーザーは、購読者になるためのオファーを受け取ることを喜ぶかもしれませんし、ゲームのプレイヤーは、ライブイベントに関連する特別オファーを受け取ることを望むかもしれません。

重要

マーケティング通知を Time Sensitive として指定しないでください。ガイダンスは、Helping People Manage Notifications を参照してください。

プロモーションやマーケティング用の通知を送信する場合は、相手の許可を得る必要があります。 これらの通知を人々に送信する前に、人々から明確な許可を得る必要があります。アラート、モーダルビュー、またはその他のインターフェースを作成して、送信したい情報の種類を説明し、人々が同意するかどうかを明確にする方法を提供します。

ユーザーがアプリ内で通知設定を管理できるようにする。 情報通知やマーケティング通知を送信する許可を求めるだけでなく、人々がその選択を変更できるアプリ内の設定画面を提供する必要があります。ガイダンスについては、「設定」を参照してください。


System Capabilities - Printing #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/printing/

印刷機能 #

アプリは、システムに内蔵されている AirPrint テクノロジーを利用して、画像や PDF などのコンテンツを互換性のあるプリンターにワイヤレスで印刷することができます。AirPrint 対応アプリで印刷可能なコンテンツを表示する場合、通常、ナビゲーションバーやツールバーのアクションボタンをタップし、次に「印刷」アクションをタップしてプリンタビューを表示します。このビューには、利用可能なプリンターのリストと、部数やページ範囲などのカスタマイズ可能なオプションが表示され、印刷を開始するためのボタンが用意されています。

印刷を発見できるようにする。 アプリにツールバーやナビゲーションバーがある場合は、システムが提供する「アクション」ボタンで印刷を可能にします。ユーザーはこのボタンに慣れ親しんでおり、他のアプリで印刷する際にもこのボタンを使用します。アプリにツールバーやナビゲーションバーがない場合は、代わりにカスタム印刷ボタンをデザインしてください。

印刷が可能な場合にのみ印刷を有効にする。 画面上に印刷するものがない場合やプリンタが利用できない場合は、アクションボタンをタップしても印刷アクションを表示しないようにします。アプリケーションにカスタム印刷ボタンが実装されている場合は、印刷ができないときにはそれを無効または非表示にします。

付加価値のある印刷オプションを提供する。 ユーザーがコンテンツを印刷する際に指定したいオプションを考えてみましょう。ページ範囲の選択や複数部数の要求などのオプションを検討します。表裏印刷などの追加オプションが意味を持ち、プリンターがサポートしている場合は、それを有効にします。

開発者向けのガイダンスとしては、「Drawing and Printing Guide for iOS」と「UIPrintInteractionController」を参照してください。


System Capabilities - Quick Look #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/quick-look/

クイックルック #

アプリケーション内のクイックルックでは、Keynote、Numbers、Pages、PDF などの文書や、画像などのファイルをプレビューできます(アプリケーションがこれらのファイル形式に対応していない場合も含む)。メールでは、添付ファイルの表示にクイックルックを使用しています。添付ファイルをダウンロードすると、メッセージ内に添付ファイルのアイコンとファイル名が表示されます。アイコンをタップすると、添付ファイルのプレビューが表示されます。

プレビューは、現在のコンテキストに合わせて適切に表示します。 iPhone では、アプリにナビゲーションバーがある場合、アプリの階層にある他のビューのように、プレビューをスライドさせて配置します。iPad の場合、またはアプリケーションに独自のナビゲーションバーがない場合は、ナビゲーションバーを含むフルスクリーンのモーダルビューでプレビューを開きます。どちらの方法でも、ナビゲーションバーには、クイックルックを終了するためのボタンや、共有やマークアップなどのアクションを実行するためのプレビュー専用ボタンが含まれています。アプリにツールバーが含まれている場合、プレビュー専用のボタンはナビゲーションバーではなくここに表示されます。

開発者向けのガイダンスとしては、iOS および Quick Look のドキュメントインタラクションプログラミングトピックを参照してください。


System Capabilities - Ratings and Reviews #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/ratings-and-reviews/

評価とレビュー #

評価とレビューは、お客様がアプリを試すかどうかを検討する際に、十分な情報に基づいた判断を下すのに役立ちます。肯定的な評価やレビューは、アプリのダウンロード数の増加を意味します。また、お客様からのフィードバックは、実際の使用状況に関する洞察を与え、今後の開発努力に役立ちます。

全体的に優れた体験を提供することが、好意的な評価やレビューを得るための最良の方法ですが、適切なタイミングでフィードバックを求めることも重要です。アプリの評価を依頼する際は、以下の点に注意してください。

評価を求めるのは、ユーザーがアプリへの関与を示した後にしてください。 例えば、ゲームレベルや生産性向上のためのタスクを完了したときに、ユーザーに評価を求めるようにします。最初の起動時やオンボーディング中に評価を求めてはいけません。意見を形成するための十分な時間を確保してください。

ユーザーが一刻を争うタスクやストレスの多いタスクを実行しているときは特に、ユーザーを中断しないでください。 評価を求めることが最も理にかなっているような、論理的な一時停止やストップポイントを探しましょう。

厄介者にならないように。 何度も評価を要求されるとイライラしますし、ユーザーのアプリに対する評価に悪影響を与える可能性もあります。少なくとも 1 ~ 2 週間は評価要求の間隔を空け、ユーザーがアプリへのさらなる関与を示した後にのみ、再びプロンプトを表示します。

システムの評価とレビューのプロンプト #

システムでは、アプリが評価とレビューを要求するための一貫した、邪魔にならない方法を提供しています。この機能を使用するには、アプリのユーザーエクスペリエンスの中で、フィードバックを求めることが意味のある場所を特定するだけです。ユーザーがまだフィードバックを行っていない場合、システムはアプリ内のプロンプトを表示し、評価とオプションの書面によるレビューを要求します。ユーザーは、1 回のタップでフィードバックを提供したり、プロンプトを解除したりできます。(設定」では、ユーザーがインストールしたすべてのアプリについて、この評価プロンプトの受信を拒否することもできます)。) なお、評価画面の表示は、365 日の間に 1 つのアプリにつき 3 回までと自動的に制限されます。

システムが提供するプロンプトを利用する。 システムの評価プロンプトは、最小限の影響でユーザーの関心を引くように設計されており、親しみやすく、効率的な体験を提供します。

フィードバックを求めるために、ボタンやその他のコントロールを使用しないでください。 システムは評価プロンプトの発生頻度を制限しているため、コントロールに反応してフィードバックを要求しようとすると、評価プロンプトが表示されないことがあります。

開発者向けのガイダンスは、StoreKit の SKStoreReviewController を参照してください。

ヒント

レビューに対応することは、ユーザーとコミュニケーションを取り、懸念事項に対処し、アプリの評価を向上させる可能性がある素晴らしい方法です。ベストプラクティスについては、「App Store でレビューに対応する」を参照してください。


System Capabilities - Screenshot #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/screenshots/

スクリーンショット #

ユーザーは、スクリーンショットを撮ることで、画面に表示されている内容をキャプチャすることができます。iOS 11 からは、スクリーンショットを撮影した後、画面の下部にプレビューが表示されるようになりました。ユーザーはプレビューを横にスワイプして解除したり(ユーザーが何もしないと数秒後にプレビューは自動的に解除されます)、プレビューをタップしてインスタントマークアップや共有ツールに素早くアクセスしたりすることができます。スクリーンショットは「写真」内の「スクリーンショット」アルバムに保存されます。

ローカルのスクリーンショットが撮影されても、アプリのインターフェイスを変更しないでください。 システムが提供するスクリーンショット機能は、スクリーンショットを撮る際に十分なコンテキストと機能を提供します。カスタムのスクリーンショットによるインターフェースの変更や機能は、反復的で不要であり、混乱を招く可能性があります。アプリにとって適切であれば、スクリーンショットが別のユーザーや別のデバイスで撮影されたときに、ユーザーに警告することは問題ありません。


System Capabilities - TV Providers #

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/tv-providers/

TV プロバイダ #

貴社のアプリは、TV アプリや TV プロバイダ認証と連携することで、利便性の高い一貫したエンターテイメント体験を人々に提供することができます。

TV アプリとの連携 #

TV アプリでは、お気に入りの映画や最近再生した映画、おすすめの映画やテレビ番組に、システムを超えてグローバルにアクセスできます。

再生の開始と再開 #

TV アプリは、ユーザーがあなたのアプリ内でコンテンツの再生を開始すると、自動的にあなたのアプリを開き、通知を送ります。

自分のアプリへのスムーズな移行を実現します。 TV アプリは、アプリへの移行時に黒くフェードインし、アプリの起動画面は表示されません。アプリは、コンテンツの再生や再開を開始する前に、独自の黒い画面をすぐに表示することで、この移行との視覚的な連続性を保つ必要があります。

期待するコンテンツをすぐに表示する。 ユーザーは、あなたのアプリへの移行が完了すると同時に、選択したコンテンツの再生が始まることを期待しています。アプリの黒い画面からすぐにコンテンツに入ります。スプラッシュ画面、詳細画面、イントロアニメーションなど、コンテンツに到達するまでに時間がかかるような障害物は表示しないでください。これは、再生を再開するときに特に重要です。

ユーザーが再生を再開したいかどうかを聞かないようにしましょう。 再生を再開できる場合は、確認のプロンプトを出さずに自動的に再開するべきです。

接続された Bluetooth キーボードで Space を押すと、再生または一時停止します。 メディアの再生をコントロールするために Space を押すことは、使用しているキーボードに関わらず、人々が期待するインタラクションです。

コンテンツが正しいユーザーに再生されるようにします。 アプリが複数のユーザープロファイルをサポートしている場合、テレビアプリは再生リクエストを発行する際にプロファイルを指定できます。アプリは、再生を開始する前に、このプロファイルに自動的に切り替える必要があります。再生要求でプロファイルが指定されていない場合は、再生開始前にユーザーにプロファイルを選択してもらい、将来的にこの情報を提供できるようにします。

コンテンツの読み込み #

読み込みに 2 秒以上かかる場合は、アクティビティスピナーが中央に配置され、周囲にコンテンツがない、単一の黒い読み込み画面を表示することを検討してください。

読み込み画面はできる限り避けてください。 コンテンツの読み込みが早ければ、ローディング画面は不要です。

できるだけ早く再生を開始しましょう。 ローディングスクリーンが必要な場合は、再生を開始するのに十分なコンテンツが読み込まれるまで表示します。残りのコンテンツはバックグラウンドで読み込みを続けます。

黒いローディングスクリーンをデザインする。 コンテンツの再生に移行する際に、ローディング画面が表示されることがあります。読み込み画面は黒く表示し、テレビアプリのフェード・トゥ・ブラック機能と調和するようにします。

ローディングスクリーン上のコンテンツは最小限に抑える。 ローディング画面にブランディングや画像を表示する必要がある場合は、最小限にとどめ、黒の背景を維持したままシームレスに再生に移れるような方法で表示します。

再生の終了 #

再生を終了した後、ユーザーはテレビアプリに戻るのではなく、アプリの中に残ります。このとき、ユーザーが混乱するようなことがあってはなりません。

文脈に応じた画面を表示する。 再生を終了するときは、ユーザーが視聴していたコンテンツの詳細画面を表示し、再生を再開するオプションを含めます。詳細画面がない場合は、ユーザーがちょうど見ていたコンテンツを含むメニューや、アプリのメインメニューを表示します。

すぐに終了できるように準備する。 再生通知を受け取った後、できるだけ早く終了画面を用意し、再生開始後すぐに終了した場合でも、ユーザーに見えるようにします。

テレビ事業者の認証 #

一般的な TV プロバイダーの多くは、システムレベルでアカウントにサインインできるため、アプリごとに認証する必要がありません。アプリでサインインが必要な場合は、TV プロバイダ認証を使用して、最も効率的なオンボーディングエクスペリエンスを提供します。

システムレベルでサインインしているときに、サインアウトのオプションを表示しないようにします。 アプリにサインアウトオプションを含める必要がある場合は、サインアウトオプションを呼び出すと、ユーザーは「設定」>「テレビプロバイダー」に移動して、自分のアカウントからサインアウトするよう促されます。

プライバシーコントロールを調整してサインアウトするように指示してはいけません。 「設定」>「プライバシー」にあるテレビ番組のコントロールは、サインアウトの仕組みではありません。これらの設定は、TV プロバイダアカウントにアクセスできるアプリを管理するためのものです。