Android Kotlin基礎講座 06.2: コルーチンとRoom

アプリの概観

この記事では、アプリのビューモデル、コルーチン、データの表示部分を組み立てていきます。

以下の画像のように、アプリにはフラグメントによってあらわされる二つの画面があります。

画像左側の最初の画面には計測を開始・停止するボタンがあります。画面にはユーザーの全ての睡眠データが表示されます。Clearボタンはアプリがユーザー用に記録した全てのデータを永久に削除します。

右側の二つの目の画面は睡眠の質を選択するための画面です。このアプリではレーティングは数値的に表されます。開発が目的であるため、アプリでは顔のアイコンとそれに相当する数値の両方を表示するようにします。

The user’s flow is as follows:

  • ユーザーがアプリを開くと睡眠計測画面が表示されます。
  • ユーザーがStartボタンをタップします。これにより開始時間が記録および表示されます。Startボタンが無効になり、Stopボタンが有効になります。
  • ユーザーがStopボタンをタップします。これにより終了時間が記録され、睡眠の質を評価する画面が開きます。
  • ユーザーが睡眠の質アイコンを選択します。画面が閉じ、計測画面が睡眠終了時間と睡眠の質を表示します。Stopボタンが無効になり、Startボタンが有効になります。アプリは既に次の夜に使えるようになっています。
  • Clearボタンはデータベースにデータがあれば有効になります。ユーザーがClearボタンをタップすると、全てのデータが確認なしに消去されます。(”本当に削除しますか?”などの文言は表示されません)

このアプリは全ての構造が下で表示されているように、簡素化された構造を採用しています。以下のコンポーネントしか使用していません。

  • UI controller
  • ViewModelとLiveData
  • Roomデータベース