はじめに
今回は、クイズアプリの仕様面について考えていきます。
はじめに こうちゃ こんにちは、こうちゃです。 今回は、Xcodeにおけるプロジェクト作成と、プロジェクトのビルド・実行について説明していきます。 Xcodeにおけるプロジェクト作成・実行方法 […]
必要な機能と欲しい機能
必要機能
最低限の機能としては以下が考えられるでしょう。
- クイズ出題機能
- クイズ回答機能
- 回答の正解/不正解判定機能
欲しい機能
次に、欲しい機能を考えていきましょう。
以下の3機能があれば、それなりのクイズアプリが作れそうです。
- プレイヤー名登録・選択機能(複数プレイヤー可能な場合)
- クイズ最終結果確認機能(複数問ある場合)
- 各プレイヤーの過去スコア確認機能
仕様
上記をまとめて、仕様は以下のようにしたいと思います。
- クイズに回答するプレイヤーを追加・選択できる
- クイズの出題に対してプレイヤーが回答を行い、プレイヤーは回答結果と正答を取得する
- クイズは10問出題する(今回は固定の10問とする)
- 10問目の回答・結果の確認が完了したら、最終結果を集計する
- プレイヤーは最終結果 (10問中何問正解したか) を取得する
- 登録されている各プレイヤーの過去の最終結果を確認できる
画面遷移
画面としては、以下が必要かなと思います。
- ホーム画面:アプリ起動後に表示される画面
- プレイヤー名選択画面:プレイヤー名登録・選択ができる画面
- クイズ出題画面:クイズを出題し、回答を入力するする画面
- クイズ結果画面:回答の結果と正答を表示する画面
- 最終結果画面:クイズに挑戦したプレイヤー名と最終結果を表示する画面
- スコア確認画面:登録済みのプレイヤーが過去に挑戦したクイズの最終結果を表示する画面
上記の6画面の画面遷移は以下のようになります。
ホーム画面
├─ プレイヤー名登録画面
│ └─ クイズ出題画面
│ └─ クイズ結果画面
│ ├─ 次の問題 → クイズ出題画面
│ └─ 10問目 → 最終結果画面
│ └─ ホーム画面
└─ スコア確認画面
└─ ホーム画面
データの構成と保存方法
データの保存方法
まず、データの保存方法について考えます。
現状、クイズの問題自体は10問であり、出題内容は固定です。
そのため、問題についてはひとまずソースコード自体に埋め込む方法が取れます。
ただ、複数のプレイヤー登録が可能であったり、各プレイヤーの過去スコアが確認できる仕様であるため、データ量によってはDB (DataBase) があった方が良いかもしれません。
また、DBにデータ保存するように作成しておけば、将来的にクイズの出題数や出題内容をユーザー自身が変更できる仕様にすることもできます。
そのためDBへの保存が理想的ですが、今回は簡便さをとって UserDefaults へ保存する方針とします。
(UserDefaultsは、iOSがアプリ毎に用意する簡易的なデータ保管機能。つまりiPhone内部でのデータ保管。)
データ構成
続いてデータ構成について考えていきましょう。
今回必要となるデータは
- プレイヤーデータ
- クイズデータ
- スコアデータ
の3つになります。
1つずつ、データ構成を考えましょう。
プレイヤーデータ
まず、プレイヤーデータについては
- UUID
- プレイヤー名
- 過去のスコアデータ(後述のスコアデータの配列)
の3つがあればひとまず十分でしょう。
クイズデータ
続いて、クイズデータは、クイズが4択であるとすると
- UUID
- クイズの出題文
- 回答の選択肢(要素数4の配列)
- 正当
の4つが必要になります。
スコアデータ
最後に、スコアデータについては
- UUID
- クイズに挑戦した日時
- クイズの正当数
の3つが必要になりそうです。
プレイヤーデータでスコアデータの配列を所持しますが、厳密には スコアデータのUUIDの配列 を所持させればよさそうですね。
さいごに
今回は、iOSアプリ第一弾・クイズアプリの仕様について検討しました。
最低限の仕様、画面遷移、データについては検討できたと思います。
次回からはいよいよ、コーディングに入っていきます!
初めてのiOSアプリなので、実際にクイズアプリが形になっていくところを見るのがとても楽しみですね!
今回はここまで♪
楽しいプログラミングライフを!