kosukesaigusa/mottai-flutter-app

強制アップデート機能の実装

kosukesaigusa opened this issue · 0 comments

概要

packages/mottai_flutter_app/lib/force_update の下に強制アップデートの実装を行う。

configurations/forceUpdateConfig(ドキュメント ID は forceUpdateConfig で固定)に相当する。

Firestore のドキュメント定義にある通り、そのフィールドに 1.0.0 のような形式(文字列)で最低限必要なバージョンを保存する予定。

packages/mottai_flutter_app/lib/package_info.dart から現在のアプリバージョンを取得すると良い。

@visibleForTesting アノテーションを使うことも検討して、Firestore に保存されたバージョンと package_info_plus パッケージを用いて得られたバージョンとを比較して、強制アップデートすべきかを判定するメソッドは、十分にテストする。

Firestore に保存されたバージョンの形式に誤りがあった場合でも、できればそこで発生する例外やエラーは握り潰して、とりあえず強制アップデートしないで良いという判定になるよう実装できると安心できそう。

実際に強制アップデート画面を表示するような処理は未実装で OK だが、

packages/mottai_flutter_app/lib/force_update/ui/force_update.dart

に、強制アップデート ON 時に表示するウィジェットをかんたんに作成しておく。

  • 最新バージョンを App Store または Google Play Store でダウンロードしてください
  • それぞれのストアページ(いまは仮で https://google.com とかで OK)に飛ぶ ElevatedButton を表示する

くらいで OK.

方針・要件・詳細・完了の定義など

  • 上記の実装が済んでいること
  • 上記の書くべきテストが書けていること

補足

着手時には、#mottai-app-issues チャンネルにこの Issue を貼り付ける。

また、そうしたければ、要件の整理や進捗のつぶやきのようなことをそのスレッドに書く。Issue の内容や仕様に関する説明や認識合わせが必要な場合や、ペアプロを希望する場合はそのスレッド内で、然るべき人にメンションして話を進める。