Android Kotlin基礎講座 06.2: コルーチンとRoom
目次
タスク:スターターコードを調べる
このタスクでは、TextViewoを使ってフォーマットされた睡眠計測データを表示します。(これが最終的なインターフェースではありません。より適した方法を後のレッスンで学習します)
前回の記事で作成したTrackMySleepQualityアプリを引き続き使うか、こちらから新たにダウンロードしてください。
ステップ1:スターターアプリをダウンロード、起動する
- GitHubからTrackMySleepQuality-Coroutines-Starterをダウンロードしてください。
- アプリをビルドして起動してください。SleepTrackerFragmentフラグメントにUIが表示されますが、データがありません。ボタンはタップしても反応しません。
ステップ2:コードを調べる
この記事用のスターターコードは6.1: Roomデータベースを作成するの完成済みプロジェクトのコードと同じです。
- res/layout/activity_main.xmlを開いてください。このレイアウトにはnav_host_fragmetが含まれています。また<merge>タグがあることを確認してください。
mergeタグは複数のレイアウトが含まれているときに、冗長なレイアウトを排除するために使われます。冗長なレイアウトとは、ConstraintLayout > LinearLayout > TextViewのような場合で、この場合システムはLinearLayoutを排除することができます。このような最適化によってビューヒエラルキーを簡素化し、アプリのパフォーマンスを向上させることができます。 - navigationフォルダーのnavigation.xmlを開いてください。二つのフラグメントとそれらをつなぐナビゲーションアクションが表示されているはずです。
- layoutフォルダーのfragment_sleep_trackerを開いて、コードタブをクリックしてください。以下の点を確認してください。
- レイアウトのデータが<layout>要素で包まれています。これはデータバインディングを有効にするためです。
- ConstraintLayoutとその他のビューが<layout>要素の中に配置されています。
- ファイルにはプレースホルダーである<data>タグが含まれています。
またスターターアプリはUI用のディメンション(値)、カラー、スタイルを提供してくれています。アプリにはRoomデータベース、DAO、SleepNight実体が含まれています。もし前回の記事のレッスンを完了していない場合は、これらの内容について自身で確認しておいてください。