ユーザがqiitaの一覧情報を見たいとリクエストする
Who:オンラインのユーザーは What:最新のデータをアプリに自動で取得して欲しい。 Why:なぜなら、いつでも最新の情報をチェックできるからだ。
Given:ユーザがオンラインの状態にある時に When:qiita情報の一覧を見たいとリクエストすると Then:アプリはリモートから最新のqiitaの情報を表示してキャッシュを新しい情報と入れ替える。
Given:ユーザがオンラインの状態で画面を表示している時に When:取得しているデータの続きのqiita情報の一覧を見たいとリクエストすると Then:アプリはリモートから取得済みのデータの次に最新のqiitaの情報を取得してキャッシュにも追加する
Who:オフラインのユーザーは What:最新のキャッシュデータをアプリに自動で取得して欲しい。 Why:なぜなら、いつでも取得可能な最新の情報をチェックできるからだ。
Given:ユーザがオフラインの状態にあり、有効期限内のキャッシュが存在する場合 When:qiita情報の一覧を見たいとリクエストすると Then:アプリはキャッシュ上の最新のqiitaの情報を表示する
Given:ユーザがオフラインの状態にあり、有効期限が切れたキャッシュが存在する場合 When:qiita情報の一覧を見たいとリクエストすると Then:アプリはデータがない時のメッセージを表示する
Given:ユーザがオフラインの状態にあり、キャッシュが存在しない場合 When:qiita情報の一覧を見たいとリクエストすると Then:アプリはデータがない時のメッセージを表示する
Given:ユーザがオフラインの状態で画面を表示している時に When:取得しているデータの続きのqiita情報の一覧を見たいとリクエストすると Then:アプリはキャッシュ上の取得済みのデータの次に最新のqiitaの情報を取得する
- URL
- dataを使って「qiita情報を取得する」コマンドを実行する
- システムがURLからデータをダウンロードする
- システムがダウンロードデータをバリデーションする
- システムが妥当なデータからqiita情報を作成する
- システムがqiita情報を伝達する
- システムからinvalid data errorを伝達する
- システムからconnectivity errorを伝達する
- URL
- dataを使って「qiitaユーザの画像を取得する」コマンドを実行する
- システムがURLからデータをダウンロードする
- システムがダウンロードデータをバリデーションする
- システムが画像データを伝達する
- システムからinvalid data errorを伝達する
- システムからconnectivity errorを伝達する
- 「qiita情報を取得する」コマンドを実行する
- システムがキャッシュからデータを取得する
- システムがキャッシュが有効期限内であるかをバリデーションする
- システムがキャッシュからqiita情報を作成する
- システムがqiita情報を伝達する
- システムからerrorを伝達する
- システムからデータがないことを伝達する
- システムからデータがないことを伝達する
- URL
- dataを使って「qiitaユーザの画像を取得する」コマンドを実行する
- システムがキャッシュからデータを取得する
- システムが画像データを伝達する
- システムはデータもエラーも送らない
- システムからerrorを伝達する
- システムからnot found errorを伝達する
- 「キャッシュをバリデーションする」コマンドを実行する
- システムがキャッシュからデータを取得する
- システムがキャッシュが有効期限内かどうかをチェックする
- システムがキャッシュを削除する
- システムがキャッシュを削除する
- 「キャッシュをバリデーションする」コマンドを実行する
- システムがキャッシュからデータを取得する
- システムがキャッシュが有効期限内かどうかをチェックする
- システムがキャッシュを削除する
- システムがキャッシュを削除する
- qiita情報
- 「キャッシュを保存する」コマンドを実行する
- システムが古いキャッシュを削除する
- システムがキャッシュをエンコードする
- システムが新しいキャッシュにタイムスタンプを押す
- システムが新しいキャッシュを保存する
- システムが成功メッセージを伝達する
- システムからerrorを伝達する
- システムからerrorを伝達する
- URL
- 画像データ
- 「画像データを保存する」コマンドを実行する
- システムが新しいキャッシュを保存する
- システムが成功メッセージを伝達する
- システムからerrorを伝達する
- URL
- 画面に表示されている一番古いデータの更新日時
- dataを使って「次のqiita情報を取得する」コマンドを実行する
- システムがURLからデータをダウンロードする
- システムがダウンロードデータをバリデーションする
- システムが妥当なデータからqiita情報を作成する
- システムがqiita情報を伝達する
- システムからinvalid data errorを伝達する
- システムからconnectivity errorを伝達する
- 画面に表示されている一番古いデータの更新日時
- dataを使って「次のqiita情報を取得する」コマンドを実行する
- システムがキャッシュからデータを取得する
- システムがキャッシュからqiita情報を作成する
- システムがqiita情報を伝達する
- システムからerrorを伝達する
- システムからデータがないことを伝達する