Android Kotlin基礎講座 05.1: ViewModelとViewModelProvider
目次
タスク:スターターコードについて
このタスクでは、スターターアプリをダウンロード、起動します。またそのコードについて調べていきます。
ステップ1:開発準備
- GuessTheWordスターターコードをリンクからダウンロードしてAndroid Studioで開いてください。
- アプリを実機、またはエミュレーターで起動してください。
- ボタンをタップしてください。Skipボタンを押すと次の単語が表示され、スコアが1減ることを確認してください。Got Itボタンを押すと次の単語が表示され、スコアが1増えることを確認してください。End Gameボタンの機能は実装されていないので、タップしても何も起こりません。
ステップ2:コードについて
- Android Studioでスターターコードを見ながら、アプリがどのように動作しているのか、雰囲気でいいので把握してください。
- 以下に示されているファイルを見てください。特に重要なファイル群です。
MainActivity.kt
このファイルにはデフォルトのテンプレートコードのみが含まれています。
res/layout/main_activity.xml
このファイルにはアプリのメインレイアウトが含まれています。NavHostFragmentはユーザーがアプリを遷移する際に他のフラグメントのホストとして機能します。
UI fragments
スターターコードにはcom.example.android.guesstheword.screensというパッケージがあり、その下に、三つの異なるパッケージがあり、さらにその中にそれぞれフラグメントが含まれています。
- タイトル画面用の
title/TitleFragment
- ゲーム画面用の
game/GameFragment
- スコア画面用の
score/ScoreFragment
screens/title/TitleFragment.kt
TitleFragmentはアプリが起動すると最初に表示される画面です。ゲーム画面に遷移するためのクリックハンドラーがPlayボタンにセットされています。
screens/game/GameFragment.kt
これがメインのフラグメントで、ゲーム中のアクションのほとんどはここで起こります。
- 現在の単語と得点用の変数が定義されています。
- resetList()メソッドの中に定義されているwordListはゲームで使われる単語のサンプルリストです。
- onSkip()メソッドはSkipボタン用のクリックハンドラーです。これによって得点を1ずつ減らし、nextWord()メソッドによって次の単語を表示します。
- onCorrect()メソッドはGot itボタン用のクリックハンドラーです。このメソッドはonSkip()メソッドとほぼ同じように実装されています。一つだけ異なることは得点を1増やすという点だけです。
screens/score/ScoreFragment.kt
ScoreFragmentはゲームの最終画面で、プレイヤーの最終得点を表示します。この記事では、この画面をゲームで表示できるように実装していきます。
ナビゲーショングラフはナビゲーションを通してフラグメントがどのようにつながっているのかを表示します。
- TitleFragmentからはGameFragmentに遷移することができます。
- GameFragmentからはScoreFragmentに遷移することができます。
- ScoreFragmentからはGameFragmentに遷移することができます。