見出し画像

駆け出しエンジニアが爆速で成長できるオリジナルアプリの制作フロー

今回は駆け出しエンジニア向けに記事を書いてみます。テーマはオリジナルアプリの制作です。オリジナルアプリというのは、エンジニアが仕事の業務に関係なくプライベートで個人向けに開発したアプリの事を言います。

このオリジナルアプリを制作すると、おそらく駆け出しエンジニアにとってはエンジニアとして爆速で成長できると思っている。今回はこのオリジナルアプリの制作フローをiOSをサンプルに紹介する。

簡単に最初に「よし、これからアプリを作ってみよう!」と思い立ってすぐに困るのが
1. どんなアプリをユーザーが求めているのか
2. どんなアプリを自分が作りたいのか

だいたいはこの2点に収束します。
1, 2 は同じような問題に見えますが全然違う悩みになります。
1の視点でアプリを作る場合はユーザー視点がなければ作れませんが、2の視点だと最初はターゲットになるユーザーが決まっていなくてもアプリを作れます。他にも色々議論することが多いので、この論点はまた別の機会に取り上げます。

今回は2の視点で「今ある自分の知識で」自分がどんなアプリを作ってみたいかについて議論します。

そしてここからが本題に入ります。

駆け出しエンジニアの場合は、まずはオリジナルアプリをゼロから全部作りきるところまでを目指さなければいけません。よくやるフローとしては、まずテーマを決めます。

僕がよく紹介する難易度が簡単なアプリは次のとおりです。

1. TODOアプリ, タスク管理アプリ
2. 4択クイズアプリ
3. 診断アプリ
4. チャットアプリ
5. カメラアプリ
6. マップアプリ
7. 電卓アプリ
8. 画像アップロードアプリ

上記を元にして自分の作りたいアプリのテーマを決めます。ここではタスク管理アプリをチョイスしたと仮定します。

テーマを決めたあとのフローは

1. 参考になるアプリをApp Storeで検索してダウンロードする。
2. ダウンロードしたアプリで実装されている機能を箇条書する。
3. オリジナルアプリのデザインをノートに鉛筆かボールペンで書いてみる。
4. トップ画面・一覧画面・タスク作成画面・編集画面・完了画面をノートに書いてみる。
5. 画面にボタンや文字を書いてみる、画面遷移図をノートに書いてみる。
6. 画面で必要な機能を書いてみる。
7. 必要な機能がコードで作れるかネットで検索をしてみる。
8. 試しにサンプルプロジェクトでコードを書いて試す。
9. 本実装のときにはまず始めに画面のクラスを全部作る。
10. それぞれの画面に必要な機能をコードで実装していく。
11. 一つの機能が出来たと思ったら挙動確認でテストしてみる。
12. できなかったり、不具合があれば調査して修正する。
13. 無事に実装完了したら次の機能を実装する。
14. 7から13をループさせる。

細かく分解するとこのようなフローになると思う。そして、上記が全てだと思います。

3. でノートに画面を書いてみるという手順があります。ノートに書く場合ですが、ノート1ページ分を1画面にするのが良いです。本当に良い使い方は、ノートを横向きにして、左半分にiPhoneで見える画面を書いて、右半分に実装する機能を箇条書きしていくような書き方がスマートです。

次に実際にタスク管理アプリを作るとして、必要な画面はおそらく
1. タスク一覧画面 (Get)
2. タスク作成画面 (Create)
3. タスク編集画面 (Put)
4. タスク削除画面 (Delete)
5. タスク完了画面 (Post)

の5つぐらいになると思います。MVPで最小限で実現したい場合なら、実は1と2だけでも大丈夫です。タスクを作って、タスクを確認できればOKですね。

次にこれをiPhoneアプリで作ると仮定して、タスクを保存する機能をどうするかを決めなければなりません。

iPhoneでデータを保存するDB(データベース)になりうる機能としては

1. UserDefaults (端末保存)
2. シングルトン (起動時のみ保存)
3. CoreData (Appleの提供するDB)
4. SQLite (ライブラリ)
5. Realm (ライブラリ)
6. API (サーバーサイド)
7. Firebase (サーバーサイド)

など色々な手段でデータを保存できます。
どのデータベースを使って開発するかはおそらく駆け出しエンジニアの場合は選択権がなく、1と2 などを使ってデータを保存するのかなと想像します。

データベースだけでもこれだけの選択肢があるのです。

あとは各画面で必要になる機能を洗い出します。

例えば、タスク管理画面のトップ画面をタスク一覧画面にしているアプリがたくさんあります。この一覧画面はシンプルなようにみえて、

1. タスクのタイトル
2. タスクの内容
3. タスクを作成した日付
4. タスクのジャンル
5. いつまでに完了させるべきか

など色々なデータを表示させる必要があるのでけっこう大変だったりします。それを一つ一つ機能を実装していく必要があります。この過程を通して、エンジニアとしての「仕様の洗い出し」「設計」「UIデザイン」「UXデザイン」を身につけられます。

オリジナルアプリをゼロから完成させるということは上記の過程を通って出来上がるので実はメチャクチャ大変なのですね。多分、参考書1冊を3回写経するよりもオリジナルアプリを1つ開発するほうが成長スピードが早いと思っています。

そのため、駆け出しエンジニアの方は早くこのオリジナルアプリ制作に取り組んだほうが得になるわけです。

この記事が気に入ったらサポートをしてみませんか?