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

タスク:スターターコードを調べる

このタスクでは、TextViewoを使ってフォーマットされた睡眠計測データを表示します。(これが最終的なインターフェースではありません。より適した方法を後のレッスンで学習します)

前回の記事で作成したTrackMySleepQualityアプリを引き続き使うか、こちらから新たにダウンロードしてください。

ステップ1:スターターアプリをダウンロード、起動する

  1. GitHubからTrackMySleepQuality-Coroutines-Starterをダウンロードしてください。
  2. アプリをビルドして起動してください。SleepTrackerFragmentフラグメントにUIが表示されますが、データがありません。ボタンはタップしても反応しません。

ステップ2:コードを調べる

この記事用のスターターコードは6.1: Roomデータベースを作成するの完成済みプロジェクトのコードと同じです。

  1. res/layout/activity_main.xmlを開いてください。このレイアウトにはnav_host_fragmetが含まれています。また<merge>タグがあることを確認してください。

    mergeタグは複数のレイアウトが含まれているときに、冗長なレイアウトを排除するために使われます。冗長なレイアウトとは、ConstraintLayout > LinearLayout > TextViewのような場合で、この場合システムはLinearLayoutを排除することができます。このような最適化によってビューヒエラルキーを簡素化し、アプリのパフォーマンスを向上させることができます。
  2. navigationフォルダーのnavigation.xmlを開いてください。二つのフラグメントとそれらをつなぐナビゲーションアクションが表示されているはずです。
  3. layoutフォルダーのfragment_sleep_trackerを開いて、コードタブをクリックしてください。以下の点を確認してください。
  • レイアウトのデータが<layout>要素で包まれています。これはデータバインディングを有効にするためです。
  • ConstraintLayoutとその他のビューが<layout>要素の中に配置されています。
  • ファイルにはプレースホルダーである<data>タグが含まれています。

またスターターアプリはUI用のディメンション(値)、カラー、スタイルを提供してくれています。アプリにはRoomデータベース、DAO、SleepNight実体が含まれています。もし前回の記事のレッスンを完了していない場合は、これらの内容について自身で確認しておいてください。