アプリで「保存」が意味するものを決める
提案するハイキングアプリでの「保存」は、選んだ過去の資料への参照を現在の端末に保持し、後で読むことを意味します。アプリ側で実装する機能であり、アーカイブのエンドポイントではありません。Reddit App APIはブックマーク、端末間同期、保存リスト用アカウントを提供しません。旅行中に利用者がそのリストを頼る前に、この違いを説明してください。
議論を後で読むために保存するときは、投稿本文全体を複製するよりも、最小限の出典参照をアプリに保存します。可能ならレコード識別子、検証済みの出典リンク、選んだ資料だと分かるだけの背景を残します。利用者が選んだ短い抜粋も保存するなら、その選択を明示し、内容と第三者の権利について考慮してください。
3つの日付を混同しない
アプリは、元レコードの作成時刻と利用者が保存した時刻を区別する必要があります。選んだ資料を取得した時刻を記録することもできます。「この端末に保存」という表示はアプリの操作を示し、その日に議論が書かれた、確認された、再取得されたという意味ではありません。元の日付が取得できなければ不明のままにします。
保存したタイトルや抜粋を、現在の出典にも同じ内容がある証拠として扱ってはいけません。情報を作り足さず、選んだ時の背景を保ちます。不完全な結果から保存したコメントは、そのレコードへの参照であり、完全なスレッドでも、周囲のすべての返信を後から取得できる保証でもありません。
端末内で開くことと新しい照会を分ける
端末内のリストは、すでに持っているメタデータや抜粋を、サービスを呼び出さずに表示できます。リストを開くたびに全件を黙って再取得するのではなく、新しい照会を意図した操作にします。正常な取得は1クレジットを消費し、明示的な/v1/item?id=RECORD_IDによる照会もリクエストです。アーカイブのキーは引き続きバックエンドに置きます。
レコードが返らない項目照会でも、正常な空のdata配列になる場合があります。保存したレコードが見つからないときに、サービスが404や410を返すと決めつけないでください。その正常な空の結果には課金されます。リクエスト失敗やレスポンスの消失も、項目が削除された証拠ではありません。「今回の照会では取得できない」「リクエスト失敗」「未再確認」を別々に表示します。
約束した範囲に合う端末内の操作を用意する
リストには分かりやすい「この端末から削除」を設けます。アプリの設計に従って、端末に保存した参照と対応する抜粋を削除する操作です。Redditの投稿やアーカイブレコードを削除したり、サービスアカウントを閉鎖したり、支払い記録を変えたりはしません。端末内の操作を、より広い削除依頼として表示しないでください。
保存上限や保存期限を設けるなら、サービスの保存期限を作り上げるのではなく、アプリ独自の規則として説明し、テストします。何が破棄されるかを読み手が理解できるようにしてください。端末のクリーンアップ、ブラウザーストレージの制限、アプリデータの消去によっても端末内の資料はなくなります。保存済みだからといって、永続的なアクセスを約束しないでください。
オフラインでできることを控えめに明示する
参照だけのリストでは、出典を開くのに通信が必要な場合があります。アプリが抜粋の保存と保持を実装すれば、それを端末内で読めることはありますが、会話全体や地図がオフラインで利用可能になるわけではありません。利用者が通信圏を離れる前に、何が実際に保存されているかを示してください。このガイドは、そのようなオフライン機能の実装やテストを済ませたとは主張しません。
このアプリの保存領域は、サービスサイトのアカウントセッションや最新請求書への参照とは分けてください。ウィジェットはホストごとに請求書idと利用者idを保存できますが、その仕組みは閲覧リストではなく、APIキーの保存に転用してはいけません。バックアップ、エクスポート、端末間同期を設けるなら、別途設計し説明すべき追加機能です。レコード変換とリクエスト予算は/ja/#field-notesを参照してください。