大学生へ、自作WEBアプリを作ろう!
Social Databank Tech Blog Advent Calendar 2023の9日目です。
こんにちは!ソーシャルデータバンク株式会社、日吉事業部の冨田智輝です。
今回、自分からは「大学生へ、自作WEBアプリを作ろう!」というタイトルで書かせていただきたいともいます。
今回は、自作WEBアプリを作るモチベからメリット、そして作り方まで話していきたいと思います!
(執筆者は2023年現在、学生です)
↑↑自分で作成したアプリ swimane
1.なぜ自作WEBアプリ?
「このアプリ、自分が作ったんだ〜」ということが言えたらかっこよくないですか?
そんなことを考えていたのが自分が大学1年生の時でした。
自分たちがよく使っている、世の中に無数にあるアプリは誰かが作ったものです。この記事を書いているzennも誰かが作ってくれているのです。
そんなアプリを自分で0から考えて、自分で作成して、自分でホストしたらかっこよくないですか?というそれだけのモチベーションで作りました。
2.自作WEBアプリを作るメリット
自作アプリを作るメリットは、やはり自慢できるから...!というのもありますが、ちゃんとメリットもあります。
メリット一覧を紹介しますね。
- 仕様検討能力がつく
- プログラミングスキルが向上する
- インフラ周りも0からわかるようになる
- 利用規約等、公開する時に必要な知識が増える
- 落ちた時に動かないといけないという責任感が増える
といった点が挙げられます。
仕様検討能力がつく
まずこちら。自分でアイデア(課題)を考えて、それに対して仕様を考えていくので、課題に対してこんな仕様があればいいよねというのを考える力がつきます。
さらに、0からアプリケーションを考えているので、ここにボタンがあった方が触りやすいかな、と言ったことを考えることもできます。
さらに、自作webアプリを作って公開していると、ユーザーからのフィードバックを直接受けることができるので自分の中で「これが良かった」「これが悪かった」と言った経験を貯めることができます。
プログラミングスキルが向上する
これは言わなくてもわかりますね。
0からアプリを作っているので、データベース設計からアプリケーションの設計までも自分が全て行います。
また、アドバイスをくれる人はいるものの、最後決めるのは自分ですので、「あ、この設計不味かったな...」とか「この設計にしておいてよかった!」と言ったことも経験できます。
また、議論する時間とかも少ないのでひたすらに機能を作ることができ、プログラミングをする時間が伸びて、プログラミングスキルが確実に上昇します。
インフラ周りも0からわかるようになる
自分でwebアプリケーションを公開するのですから、もちろん自分でホストする必要が出てきます。
そのため、自らインフラ周り(どのサーバーを契約するのかとか)を考えて、自分で契約をし、自分でホストします。
世の中にはいろいろなデプロイの記事がありますが、大抵全く同じことをしても上手くいかない(バージョンが違かったりする)ので、インフラの構築の基礎がつきます。
利用規約等、公開する時に必要な知識が増える
意外とこれが自分にとって大きなところで、普段意識しないアプリを実際に公開する際の同意文章だったりを用意する必要があります。
アプリ制作ではメインはプログラミングですが、そうでないところも味わえるというのが自分で0からアプリケーションを作るメリットなのではないかと思います。
落ちた時に動かないといけないという責任感が増える
よくも悪くも0からwebアプリケーションを作っているので、何か問題が起きた時に対応するのが自分しかいなかったりします。
自分がサボれば、誰かが修正してくれるわけもなく、ただユーザーが困るという事態を経験することができ、いかに本番を丁寧に運用していかなければならないのかということを学ぶことができます。
3.もちろんデメリットも
いいところをいっぱい上げましたが、もちろんデメリットも存在します。
具体的にいうと
- お金がかかる
- 時間がかかる
- プライバシー保護等の問題がでてくる
といったところでしょうか?
1のお金に関しては月1000円程度でサーバーを借りれるので、月1000円の投資だとも思って作ってみてください。2の時間に関してはもちろんとてつもない時間を要します。しかしながら、かけがえのない経験になること間違いなしです。3のプライバシー等の問題ですが、これも実際にwebアプリケーションを0から作らないとできない経験(プライバシーポリシーを作ったり、セキュアにしたり)なのでデメリットには感じません。
4.じゃあどんな形で作るの?
ここまでツラツラとメリットを提示してきましたが、「そんな簡単に作れない!」「アイデアがない!」という意見が多くありそうです。
そこで、個人的には以下のステップで作ることをお勧めしています。
- エクセルで管理しているものを見つける
- 確実に使われるのかどうかを検討する
- MVPを決めて、頑張って作る
というステップです。
エクセルで管理しているものを見つける
まず、このステップがかなり大事です。webアプリケーションは、エクセルの進化版といっても過言ではないと自分は考えています。
言い換えれば、エクセルで管理しているものはwebアプリケーションで管理することができるのです。
なので、自分や身の回りの人がエクセルで管理している面倒くさそうなものを聞いて見つけてみましょう。
きっとそれが、最初のアイデアにつながるはずです。
確実に使われるのかどうかを検討する
続いてのステップは、確実に使われるのかどうかを検討するというところです。
これは、非常に大事なステップで特に個人が使うアプリケーションでは、一般公開してもすぐ使ってくれるパターンというのは大変珍しいです。
そのため、自分や自分の友達が確実に使ってくれそうなアプリケーションなのかどうかというのを検討しましょう。
MVPを決めて、頑張って作る
さあ、ここまでくればあとは簡単です。
MVP(Minimum Viable Product: 実用最小限の製品)の考えを用いて、最低限これさえあれば使ってもらえる!という機能を作り、公開することを第一目標に考えて作っていきましょう。
このMVPの段階では1つか2つ機能で十分で、作ったらすぐ使ってもらえる人に渡すようにしましょう。
いいものを、いいものをといって公開や使ってもらうのを後回しにするのではなく、最低限の機能で公開しましょう。そして、利用者からの声を元にupdateをしていけば問題ないです。
5.実際に作ったアプリケーション
この考えを元に自分が実際に作ったアプリケーションをここで紹介します。
swimaneというアプリケーションで、web上でチーム単位での水泳のタイム管理ができると言ったアプリケーションになっています。
↓↓検索するとでてくるようになりました!↓↓
どのように作ったのかを先ほどのステップに合わせて紹介しいます。
エクセルで管理しているものを見つける
まず、自分が所属していたチームの水泳のタイム管理がエクセルで行われているということに気づきました。そこで、これはwebアプリケーションにできるのではないか?と考えました!
確実に使われるのかどうかを検討する
ここで、使われるのか検討するというのが挟まりましたが、使うのは自分や自分の友達ということもあり、絶対に使うよ!ということが確定していました。
MVPを決めて、頑張って作る
そこで、自分はまず、大会を作り、タイムを記入して、チームベスト表に自動で更新されるという機能を作りました。この機能だけでまずはリリースを行い、その時点で友人にとても嬉しがってもらうことができました。
一方、この機能たりないね、こんなのがあったらいいと、当初想定していなかった欲しい機能が出てきて、それを実現した結果今があります!
6.最後に
最後になりますが、みなさんぜひ、自分でwebアプリケーションを作ってみましょう!
0から作ることによって、とても多くの経験ができ、なにより自分の技術が世のためになっているな!ということを実感できます!
ちょっと宣伝
そして、そして、もし技術力がないけどこういうことをしてみたい!と思った方は、ソーシャルデータバンク日吉のインターンに参加してみてください!
学生であれば、誰でも0から勉強できるプラットフォームを作っていますので、ぜひ下のリンクから参加してみてくださいね!
Discussion