Human Interface Guidelines
ファイル管理
体験によっては、人々がアプリ内またはシステム全体で文書やファイルを管理することを期待する場合があります。
ベストプラクティス
Pages、Keynote、Photos、Notes、Sketch、Adobe Illustrator などの文書ベースのアプリは、文書やファイルの作成、編集、保存で人々を支援し、多くの場合、アプリで開きたいコンテンツを閲覧するためのカスタマイズされた方法を提供します。
プラットフォームによっては、最初にアプリを開かずにファイルを閲覧することを期待する場合もあります。Mac では、人々は Finder を使用して macOS ファイルシステムにアクセスします。iPhone と iPad では、人々は ファイル アプリを使用してデバイス上の文書とファイルを管理します。watchOS と tvOS では、通常、文書を作成、編集、管理することはありません。
ファイルを開く
人々はファイルを閲覧したり開いたりするためのシステムアプリとインターフェースに精通しているので、あなたのアプリでこれらの体験を活用するのはうまく機能します。
アプリのメニューとキーボードショートカットを使用して、文書を作成して開くための便利な方法を人々に提供します。 macOS と iPadOS では、人々はアプリレベルの [ファイル] メニューのコマンドを使用して、新しい文書を作成したり、既存の文書を開いたりすることを期待しています。[新規] や [開く...] などのメニューコマンドを有効にすると、macOS はメニューバーの [ファイル] メニューに表示し、iPadOS は、接続されたハードウェアキーボードで人々がコマンドキーを押したときに表示されるショートカットインターフェイスにメニューコマンドを表示します。iOS はこれらの方法ではアプリレベルのメニューを表示しないため、[追加](+) ボタンを使用して "新しい文書" アクションを有効にするとうまくいくことがよくあります。
カスタムのファイルを開くインターフェイス内に、ファイルシステムに対する人々の見方を反映します。 Finder と ファイル を使用することで、デバイスのファイルシステムの基本的なレイアウトを人々は理解できるため、カスタムのファイルを開くビューでこの理解に基づいてビルドすることをお勧めします。カスタムインターフェイス内のファイルシステムの一部 (Documents や iCloud フォルダ、または最近選択した場所など) を表示することから始めるのは理にかなっていますが、他の場所を閲覧したい場合は、このエリアに留まることを人々に強制しないでください。
カスタムファイルを開くインターフェイスをより便利にする方法を検討してください。 たとえば、人々は単純な "開く" アクションに加えて "最近の物を開く" アクションを高く評価するかもしれません。また、ファイルの閲覧体験をフィルタリングする基準を人々に選択させたり、一度に開く複数の文書を選択することもできます。macOS の開いているパネルでは、タスクを反映するように [開く] ボタンのタイトルをカスタマイズできます。たとえば、あなたのアプリでファイルの内容を現在のドキュメントに挿入できる場合は、タイトルを [挿入] に変更できます。
作業の保存
キャンセルまたは削除しない限り、作業が常に保持されることを人々が確信できるようにします。 一般に、作業を保存するために明示的なアクションを人々に実行させることは避けてください。代わりに、編集中やファイルを閉じるとき、または別のアプリに切り替えるときに、定期的に保存を自動的に実行します。
人々がファイルの名前、形式、または場所を変更できるようにする保存インターフェイスを提供します。 デフォルトでは、人々がカスタム名を選択するまで、新しい文書のタイトルは "untitled (名称未設定)" です。文書を開くインターフェイスと同様に、保存ビューでは、デフォルトで論理的な場所に設定される閲覧体験も有効にして、保存された文書を人々の必要な場所に配置できるようにすることもできます。さまざまな形式でのコンテンツの保存をサポートしている場合は、特定のファイル形式を人々が選択できるようにする方法も有効にします。
デフォルトではファイル拡張子を非表示にしますが、必要に応じて表示させます。 表示するすべての保存または開くのインターフェイスに現在の選択を反映するようにしてください。
必要に応じて、[保存] ダイアログの機能を拡張します。 あなたのアプリで意味がある場合は、便利な設定やオプションを含むカスタムアクセサリビューを [保存] ダイアログに追加できます。たとえば、メール メッセージをファイルとして保存するためのダイアログには、添付ファイルを含めるオプションが含まれています。
クイックルックプレビュー
クイックルックは、あなたのアプリが処理するファイルのプレビューを作成するのに役立ちます。これにより、人々はアプリ内でファイルを表示したり、場合によってはファイルを操作したりできます。たとえば、Mac では、オーディオファイルのプレビューを再生できます。iOS では、写真のプレビューにマークアップを追加できます。
意味があれば、あなたのアプリにクイックルックビューアを実装して下さい。 あなたのアプリで人々がファイル (特にアプリがネイティブではサポートしていないファイル) を添付したり操作したりできる場合、クイックルックビューアを実装すると、人々はアプリを離れることなくそれらのファイルをプレビューできます。
あなたのアプリがカスタムファイル型を生成する場合は、クイックルックジェネレータの実装を検討してください。 クイックルックジェネレータを使用すると、Finder、Files、Spotlight などの他のアプリで文書のプレビューを表示できるため、人々は文書を簡単に見つけることができます。
プラットフォームの考慮事項
tvOS または watchOS に関する追加の考慮事項はありません。
iOS、iPadOS
あなたのアプリが他のアプリとファイルを共有することが理にかなっている場合は、あなたのアプリの文書をインポートし、エクスポートし、開き、移動するためのカスタムインターフェイスを表示するファイルプロバイダーアプリ拡張機能を作成できます。開発者向けガイダンスについては、ファイルプロバイダー (File Provider) を参照してください。アプリ拡張機能 は、人々がインストールしてシステムの特定の領域の機能を拡張するために使用できるコードです。詳細については、アプリの拡張機能 をご覧ください。
誰かがあなたのファイルプロバイダ拡張機能を使用して文書を開いたりインポートしたりする場合は、現在のコンテキストで適切な文書のみを表示してください。 たとえば、PDF 編集アプリがあなたの拡張機能をロードする場合、開くまたはインポートする PDF ファイルのみを一覧表示します。また、変更日、サイズ、文書がローカルかリモートかなどの追加情報を表示することもできます。
文書をエクスポートおよび移動するときに、人々が宛先を選択できるようにします。 あなたのアプリが文書を単一のディレクトリに保存しない限り、人々がディレクトリ階層内の特定の宛先に移動できるようにします。理にかなっている場合は、新しいサブディレクトリを追加する方法を提供することもできます。
カスタムナビゲーションバーを含めることは避けてください。 あなたの拡張機能は、ナビゲーションバーがすでに含まれているモーダルビュー内にロードされます。2 つ目のナビゲーションバーを提供すると、混乱を招き、コンテンツからスペースが奪われます。
あなたのアプリはまた、人々が他のアプリからファイルを閲覧して開くことを可能にすることもできます。開発者向けガイダンスについては、アプリへの文書ブラウザの追加 (Adding a Document Browser to Your App) を参照してください。
macOS
Finder Sync 拡張機能
アプリがローカルファイルとリモートファイルを同期する場合は、Finder Sync (同期) アプリ拡張機能を作成して、ファイルの同期状態を表現し、Finder 内で制御することができます。開発者向けガイダンスについては、Finder Sync (Finder Sync) を参照してください。
たとえば、Finder Sync 拡張機能を使用して以下のことができます。
自動保存をオフにした場合に、作業が失われないようにします。 一般システム設定ペインの [文書を閉じるときに変更を保持するように依頼する] チェックボックスをオンにすると、自動保存をオフにできます。このシナリオでは、文書に未保存の変更があることを示し、人々が文書を閉じたり、アプリを終了したり、ログアウトしたり、または再起動することを選択したときに保存ダイアログを表示します。
自動保存がオフになっている場合は、文書に未保存の変更があることを人々に知らせてください。 保存されていない変更があることを示すには、文書ウィンドウの閉じるボタンと、アプリの ウィンドウ メニューの文書名の横にドットを表示します。自動保存がオンの場合、これらの場所にドットを表示すると混乱を招きます。これは、作業を失うことを避けるために人々が行動を起こす必要があることを意味するためです。自動保存の状態に関係なく、タイトルバーの文書のタイトルに "編集済み" を追加できますが、自動保存が発生したらすぐに、または人々が明示的に作業を保存したときに、この接尾辞を必ず削除してください。
リソース
関連
開発者用文書
Documents - SwiftUI (Documents)
ビデオ
SwiftUI で文書ベースの
アプリをビルドする
WWDC2020