はじめに
この記録は個人で開発するにあたって、アプリの開発過程や仕様決定の流れを残しておこうと思い立ち、いろいろ備忘録的に残そうと思っています。
開発の動機
最近謎解きにハマっています。
さて、リアルで開催される謎解きゲームには参加する際のルールがいくつかあります。
その中でも公演のチケットを買う際に気をつけなければならないことが、「同じ公演に2度参加できない」というルールです。
これを逆手に取った「リピーター公演」というものもありますが、基本的には1度参加したら成功までの過程をすべて知ってしまうため、2度目に間違って参加してしまうと他の人にネタバレしないように石と化してやり過ごすしかありません。
チケットを買うときに買っていれば…という後悔をしないためにも、過去の参加した公演を記録しておこうと思いました。
そしてGoogleスプレッドシートで記録を残すことにしたものの、入力が面倒なのが困りもので記録し忘れることがあり、自分がチケットを購入していなかったりすると過去に遡るのは大変。
ついでに参加するといつもやるTwitterへのツイートだったりも簡単にできたらいいなと思い、アプリを開発しようと至りました。
競合
要件定義
ここで開発するアプリの要件を定義する。
- 参加時にすぐ登録できるため、Android/iOS向けのモバイルアプリとして開発する
- 参加した公演がすぐに追加できるUIを実装する
- これから参加する公演名を入れると参加した記録があるかを検索できるUIを実装する
- アプリでは、公演自体の情報と公演への参加記録の情報、を扱う
- 公演情報には、開催する団体、会場、公演概要、開催期間、開催回(開始時刻)の一覧、ツイートハッシュタグを保持する
- 参加記録情報には、参加した公演、成功失敗、感想、を保持する
- 公演情報は参加記録の登録時に新しく追加するか、すでにあるものを選択する
- 参加記録を追加した際にハッシュタグをつけて参加ツイートが簡単にできる
基本設計
ここで基本的な設計を全体、UI、データモデルに分けて定義する。
開発環境
- App: Flutter
- Database: Firebase
- VCS: Git/GitHub
UI設計
- アプリを起動したらログイン画面が表示される
- すでにログインしていたらホーム画面を表示する
- ホーム画面には過去の参加公演情報の一覧と追加ボタンが表示される
データモデル設計
公演情報
- 公演名
- 公演ジャンル (ルーム型、ホール型など)
- 開催団体
公演回情報
- 公演情報
- 開催日時 (1月5日 10:00回、2月10日 13:00回、など)
参加情報
- 参加した公演回
- 成功/失敗
- 感想
次回
未定