【ポートフォリオ・個人開発】アプリのアイディアが思いつかない人・何から始めていいか分からない人へ

# はじめに
2020年5月から転職を見据えてwebアプリケーションのプログラミング学習を開始しました。
当時、ProgateやRailsチュートリアルで学習をしていましたが、どのようなアプリケーションを作成すればいいのかかなり悩みました。
本記事は、ポートフォリオ作成を控えた方(ちょうど1年前の私)の一助となることを願って執筆しています。
また、あくまで私の思考方法ですので行き詰まっている方が参考程度に読んで頂くというスタンスを望んでいます。

ちなみに私はCookingLifeというモバイル端末向けのWebアプリを開発しました。

|　　　　　　　　  　　　　　　　　   　　　　　　　　　　　　　　　　　　　　　　　　　|
|:-:|
|<img width="400" alt="スクリーンショット 2021-05-05 16.14.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688968/5cf6bf6d-4cd0-2ab9-fecc-b61d3e95118e.png">|



# アイディア出し
人は歩いている時に前頭葉が活性化し、アイディアが出やすいようです。そのため、外を散歩しながらアイディアを思いついては足を止めスマホでメモを取るという作業をしました。

## 当時考えたアイディアを紹介

|  アプリ名  |  概要  |
| ---- | ---- |
|  ①爪切りアプリ  |  だらしない性格のため、気付いたら爪が伸びている。⇨ 個人毎の爪の伸びるスピードをあらかじめ記録しておいて、個人に特化した爪切りのタイミングをレコメンドできるアプリ。  |
|  ②在宅貯金アプリ |  私の周りの人たちは在宅勤務を嫌がっている人が多い。しかし人の最低時給が1000円程度なので、例えば通勤の2時間が自由時間になったということは、毎日2000円得していると考え、このお得感を周囲にも感じて欲しいと思った。　⇨ 自分の時給を登録し、毎日の在宅で浮いた時間を記録すると架空のお金「在宅貯金」が貯まり、在宅の日々にお得感をプラスするアプリ。  |
|  ③献立記録アプリ  |  実家暮らしの私は、母親の「今日何が食べたい？」にいつも上手く回答できない。　⇨日々の料理を記録し、その日に最適な料理をレコメンドするアプリ。  |
|  ④料理お裾分けアプリ  |  一人暮らしの友人がカップラメーンばかり毎日食べるという生活をしていた。　⇨ 何事もシェアをする時代。近所同士の昔ながらのお裾分け文化をアプリで実現。  |
|  ⑤キャッチボールアプリ |  キャッチボールは爽快でリフレッシュになるが、都会では広々した公園が少なく、キャッチボール相手も見つからず、なかなかキャッチボールをする機会がない。　⇨ キャッチボールしたい人同士をマッチングし、かつキャッチボールができる穴場を紹介できるアプリ。  |
|  ⑥草野球、助っ人マッチングアプリ  |  草野球を毎週する気合いは無いが、年に3回くらい野球がしたい(私が)。⇨ 草野球の助っ人募集チームと、気軽に野球がしたい人を繋ぐアプリ。  |
|  ⑦ギター練習アプリ  |  ギターを初めたが、いろんな曲のいろんなフレーズを練習しているため達成感が得にくい　⇨ 曲のフレーズがどの程度弾けるようになり、曲全体の何％を弾けるようになったか表示し、ギターの上達を可視化するアプリ。  |

## アイディアの材料となったものまとめ
アイディアを得るために以下の要素をアプリに組み込むことができないかということを考えていました。

|アイディアの材料  |私の場合  |
|---|---|
|自分の趣味 |ギター、野球  |
|自分の悩み  |いつも気付いたら爪が長い  |
|家族・友達など身近な人の悩み |母親が毎日献立選びに迷っている  |
|社会問題  |コロナで楽しみが減少  |

「趣味なんかないよ」という方も大勢いらっしゃるかと思います。そういう方は今から新しい趣味を始めてみるというのも1つの手段かと思います。私自身、ギターはプログラミング学習と同時期に開始したのですが、初心者ならではの悩みがすぐに生まれました。そのような悩みとアプリを掛け算してみてはいかがでしょうか。
また、身近な人にヒアリングしてみるのもいいかと思います。

# 選定

アイディアは7個出すことができましたが、優先順位を付けて作成するアプリを決めました。
選定基準は以下の通りです。

<strong>①直感的にアプリの使用方法が分かりやすいかどうか
②発想の面白さ
③実現可能性(難易度)</strong>

### 選定により採用したアプリ

|採用のアプリ  |理由  |
|---|---|
|在宅貯金アプリ | 発想の面白さ、社会課題として最もホットな話題。また、開発難易度が低いため、最初に作成するアプリとして最適。 |
|献立記録アプリ  料理お裾分けアプリ |誰もが経験のありそうな事例かつ、あらゆる拡張機能が思いつくため。また、実際に自分自身が使用したいと思ったため。  |

### 選定により不採用にしたアプリ

|不採用のアプリ  |理由  |
|---|---|
|爪切りアプリ |開発が簡単すぎるという点で却下。  |
|キャッチボールアプリ 草野球、助っ人マッチングアプリ  |野球をしない人にとって良さが分からないという点で却下。  |
|ギター練習アプリ |ギターをしない人にとってどう役立つのかイメージしにくい、使用方法が直感的に分からないだろうという点で却下。  |

# ER図作成
重点的に時間をかけた部分です。MVCの中でもModelは最も重要な要素だと思っています。ここがしっかり定まっていないと、何度も手戻りが発生してしまいますし、ごちゃごちゃした構造になりかねません。
他にも私が感じたER図のメリットは以下の通りです。

- 作成のアプリが自ずと明確化される
- 他にも作成したい機能が見つかる
- 機能の作成順序、優先順位が見える

私の場合、ER図作成はgoogleスプレッドシートで作成しました。見栄えが少々悪くなってしまうことが難点ですが、どうでも良い部分で躓くより良いという判断でした。
また、Railsでは「Rails ERD」というgemで、アプリ完成後に綺麗なER図を自動生成することが可能ですので、綺麗なER図は後から作れば良いと思います。
https://www.sejuku.net/blog/66196

ER図作成時に参考にした記事はこちらです。
https://it-koala.com/entity-relationship-diagram-1897

# 画面遷移図作成
ER図を作成し終え、画面遷移図を作成しました。こちらもER図と同様に、googleスプレッドシートを使用しました。

![スクリーンショット 2021-05-05 16.30.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688968/c6db8c7b-07f5-e24d-e255-e7dfa6dd0bb8.png)


参考にした記事はこちらです。
https://bizroute.net/screen.html

# 最後に
かっちりした設計ではありませんが、こちらで最低限の設計ができると考えています。
少しでも参考になりましたらLGTMをお願いします。
また、こういう思考プロセスもあるというような意見がありましたら、ぜひコメント頂けると幸いです。