[Unity]インタラクティブなタスク管理アプリ
タスク一つひとつを泡に見立て、破裂させることで消化するインタラクティブなタスク管理アプリを実装しました。
概要
タスク一つひとつを泡に見立て、破裂させることで消化するインタラクティブなタスク管理アプリを実装しました。
泡を長押しするとゲージが進行し、一周すると泡が破裂します。
背景
一般によく用いられるタスク管理アプリは一覧性を重視したリスト形式のものが多く見られます。
しかし、一日で完結するような短期的なタスクを管理する場面において、リスト形式では逐一並べ替えるコストが発生し、並列するタスクの優先度の表現が難しいと考えました。
そこで、優先度が視覚的に表現され、消化を視覚的に楽しめるようなタスク管理アプリを制作することを目的として開発しました。
目標
個人的な目標として、ライブラリを用いた設計の習得を設定しました。
ゲーム開発の場でよく用いられるUniRxを導入し、実際に使ってみることで習得することを目指しました。
使用した技術
- Unity(iOS)
- TestRunner
- UniRx
- Json.net
- Git
機能
- 単押しでタスクの詳細表示
- 消化と編集と削除が可能
- 長押しでタスクの消化
- 右下+ボタンでタスクの追加
- 優先度・内容を設定
こだわったポイント
モデルとビューの分離設計
タスクの管理を行うモデル部分は単体テストを行い、それだけで動作することを確認しました。
また、ビューとの依存は極力さけ、繋がりを担うプレゼンターからのアクセスのみとしました。
タップとホールドの区別
泡には、編集するために選択するときのタップと、消化するときのホールドの2つのアクションが割り当てられています。そのとき、単にボタンコンポーネントを使用するだけだと、タップの判定しかできないため、ホールド時間によって適切にイベントを発火するように実装を行いました。
泡の挙動の実装
泡は動くことを想定しているため、接触したときに、お互いが接触面積を減らすように反対のベクトルを加えて移動するよう実装を行いました。
また、画面に対して設置した当たり判定がサイズに応じてスケールしてくれることを利用し、泡と同様の仕組みで画面内に移動するように実装しました。