駆け出しエンジニアぱかぱかの成長記録

引くほど忘れっぽい新卒2年目駆け出しSEぱかぱかの備忘録です。

【Android】飲食店記録アプリ〜要件定義・基本設計②〜

こんにちは!ぱかぱかです!
今日は前回の記事で構想を練り始めた飲食店を記録するアプリの要件定義・基本設計についてもう少し詰めていきたいと思います。

radish-se.hatenablog.com

前回のまとめ

・今まで自主制作していたアプリは行き当たりばったりでクラス構成もぐちゃぐちゃになっていた…
 今度はちゃんと設計からアプリを作ってみたい!
・行きたい飲食店を簡単に記録・管理できるアプリがあったら便利かも?(ありきたりだけど)
・ざっくりの要件とワイヤーフレームを作ってみた

要件を詰めてみる

正直に申し上げると私は実務でまだ要件定義をやったことがありません…
新規機能の要件定義を行うフェーズにはいたのですが、その時自分は障害対応を行うチームに入ってしまい、週次の報告で隣のチームが要件定義を行っている経過を聞いて「こんな感じなんだ〜」という雰囲気を味わっていた程度です。
せっかくの機会なのでなんちゃって要件定義でももう少し詰めて考えてみたいと思います。
要件定義のドキュメントは、このブログになります笑

ここで、一旦アプリの名前を決めた方がいいかなと思い立ちました。
「飲食店を記録するアプリ」ってちょっと長いので…
ネーミングセンスのない私、試しにChatGPT先生に聞いてみると以下のような案が…

おお…絶対自分では思いつかないような名前が…!笑
デリシアンテってかっこいいな笑
でもちょっと小洒落すぎるとなんのアプリかわからなくなりそうなので、ひとまず「グルメノート」くらいの名前にしておきたいと思います。(結局)
意外と既存で同名のアプリはないらしい。笑

グルメノート要件定義

それでは早速前回の要件定義からもう少し内容を詰めてみたいと思います。

要件定義について調べてみると色々な情報が出てくるのでどこまでやればいいのやら…
一旦以下のサイトを参考にしてみます。
notepm.jp

あくまで個人開発なのでガチガチにやらないにしても、勉強のために以下を定めていきます。

・目的
・システム方式・構成
・画面と機能
・操作フロー
・情報・データ
・データフロー

◆アプリの目的

まずアプリの目的ですが、前回は以下のような感じで挙げていました。
ここはとりあえず変更なしでいいかな?

・行きたいお店を整理してすぐに探せるようにしたい。
・行ったお店の記録を残せるようにしたい。
・お気に入りのお店を登録して、次回以降のお店選びの参考にしたい。

とりあえずこのアプリは自分の記録を目的としていて、他の人に公開するような機能は今のところ想定していません。
公開となるとまた難しそう…余力があればチャレンジしてみよう…

◆システム方式・構成

今回そこまでできるかわからないのですが、実はサーバとWebViewの勉強もしたいと思っている私…
最終的にはネイティブアプリとローカルストレージに留まらず、以下のような構成にできたらと思っています。
が、ちょっと壮大なのでひとまず目標はAndroidネイティブアプリ内で完結する部分を完成させるところまでとします。

Androidネイティブアプリ
 最優先で作る!
 アプリのUIを提供。
 ローカルDBに情報を保持。

アプリケーションサーバ
・DBサーバ
 ネイティブアプリが形になったらやってみる?
 保存した情報をサーバにも保持しておけるようにしたい。
 AWSの出番か!?

・Webサーバ
 Webアプリの方も作れたら、WebViewとして表示したい。
 いつかはデスクトップブラウザからも同じように操作できるようにしたいよね…
 せっかくJavaとかSpringの勉強したからそれで作りたいが…

iOSネイティブアプリ
 結局Androidアプリだと自分のiPhoneで使えないので、iOSでも使えるようにしたい!
 SwiftUIで作りたい!

◆画面と機能

ちょっと既存の類似アプリも参考にしながら前回書いたものに肉付けしたものが以下です。
★がついているものを最優先で作って、余力があればその他も作りたいけど、考え出したらキリがないね〜!

★トップページ
メニューバーを表示してタブで画面の切り替えを行えるようにする。
最初に表示する画面はプリファレンスで保持してもいいけど、行きたいお店リストに固定でもいいかも。
メニュー項目はひとまず「行ったお店リスト」「行きたいお店リスト」「お気に入り店リスト」かな。
右上に登録ボタンを配置したいと思います。

★行ったお店リスト
店名・場所 ・ジャンル・登録日・メモを記載してリスト形式で表示。
サムネイル的にリスト上に写真を表示したい。
これもジャンル・場所の絞り込みと並び替えやキーワード検索つけるかな。
お気に入りに登録/解除できるボタンもつけたい。

★行きたいお店リスト
店名・場所 ・ジャンル・登録日・メモを記載してリスト形式で表示。
ジャンルや場所で絞り込み調べられるようにしたら、今日は今いる場所や食べたいものの気分で調べられていいかも。
絞り込みだけでなくて並び替えやキーワード検索あった方がいいかな…
リストをタップしたら「行ったお店登録」と「行きたいお店情報の編集」と「行きたいお店の削除」ができるようにする。
「行ったお店登録」も「行きたいお店情報の編集」も「お店登録画面」に遷移して登録/編集を行うようにする。
「行きたいお店の削除」はダイアログでいいか〜。

★お店登録画面
行きたいお店/行ったお店を登録する画面。
どちらに登録するかはタブで切り替えて、登録する内容が変化するようにする。
店名で検索したら既存のお店が出てきたりするアプリあったけど、どうやってやるんだろう…できればやりたい…

★お気に入り店リスト
店名・場所 ・ジャンル・登録日・メモ・評価を記載しリスト形式で表示。

★お店詳細画面
行ったお店の詳細を閲覧する画面。
行った時の評価や感想、写真などを見れるようにする。
何回も同じ店に行くかもしれないので、日付ごとに連ねられるようにするといいかな。

・お店マップ
登録したお店をピンで表示できたらいいな〜
せっかくGPSで位置情報取得する方法も勉強したので。

・カレンダー
カレンダーで日付ごとに記録が簡易的に見れる機能。
全部埋めたいという気持ちが沸いて外食増えちゃいそう。
行った回数とかカウントしても面白いかな?

・お気に入りリストまとめ
お気に入りも増えてきたらまた見づらいので、用途ごとにまとめられたらいいかも。
「女子会用」とか「ご褒美用の高級なお店」とか?

操作フロー

なんか色々ゴチャついてきたので画面遷移図を書いてみます。
最近業務で使い始めたplantUMLを使ってみる。
なんかもっといいツールはありそうだけど、勉強のために…

とりあえず★をつけた画面だけ。
意外とシンプルですね。
漏れがあるだけかもしれませんが。
レビュワーがいないので何か間違っていても誰も止めてはくれません笑

Figmaで画面イメージ作り直し

ちょっと前回の記事から画面構成が変わったので、またFigmaで画面のイメージを作り直します。
なんか先日適当に作った画面は色味がなんか気持ち悪かったので、以下サイトでパレットを作ってその色を使ってみました。

colordrop.io

食欲が湧きそうなオレンジ系のパレット。
名前はAutumn Sunsetらしいです。可愛いですね。


前回よりはマシになったか…!?

ちょっと長くなってきたのでこの記事はここまで。
次回はデータ構成を考えてみたいと思います!
ではまた!