RUNTEQというエンジニアスクールに通っている、まさじんと申します。
未経験からプログラミングを勉強するためにRUNTEQへ入学後、3ヶ月ほどたったころに卒業制作着手し始めました。
執筆現時点ではIssue作成は終わり、MVPリリースを目指して日々実装に明け暮れる毎日です。
この記事では自分の振り返り&アウトプットと、何か他の方の参考になればと思い、どんな感じで私がREADMEをつくっていったのか共有します。
あくまで私の感想ですので、へーっそんな感じでつくったんだくらいに軽く読んでいただけたらと思います。
前提
まず前提として、私はミニアプリをつくっておらず、カリキュラムを進めることにフォーカスして学習を進めていたので、卒業制作がはじめてのアプリ開発になります。
READMEを考えるとき、「技術スタックはどうするのか」という項目があるのですが、最初は技術スタックってなに?というところからのスタートでした。
卒業制作とりかかるまでに意識したこと
RUNTEQ入学して、先輩方のnoteなどの記事を読むと、卒制アプリのアイディアは早いうちから考えておいた方がいいという意見が多くありました。
そのため入学したての頃、やる気に燃えていた私は、1日1アプリ考えよう!
ということで、こういうのがあったらいいなーというようなものを意識して記録していました。
1日1アプリメモ
- アウトプット習慣アプリ
- ペット自慢のアプリ
- Amazonの評価をするアプリ(よかったことやクレーム、豆知識などを掲示板で共有)
- 福岡専門の飲食店マップ
- 家計簿管理アプリ
- 自分に合った単語帳
- 1日1名言ランダムアプリ
- 男磨きアプリ(顔の体操など)
- コーヒーを入れる記録アプリ(豆の量、挽き方、銘柄、お湯の量、時間、香、味、コメント
- 学習記録アプリ)
- カクテル何飲むか提案アプリ
- 思いやりポイントアプリ
- お酒飲み過ぎ防止アプリ(どのくらい飲んだのかを記録管理、飲み過ぎの場合はアラートする)
- 勉強時間継続アプリ(いつでもトップ画面からボタンを押すだけで時間を計測してくれる。勉強に集中したいけどいちいちストップウォッチを探して押すのが面倒な時に便利。記録もしてくれる)
- 性格診断✖️行動アプリ(どういう性格の人はこうしたほうがいいなど提案)
恥ずかしいですが、こんな感じです。(ずっと継続はしてないです)
1.つくりたいアプリを決める
どんなアプリをつくるか考えるとき、私の場合は自分が熱意をもって開発にとりかかれるものがいいと思い、人生の棚卸しをしてみました。
過去を振り返り、自分の人生の軸にあったのは「家族・お酒・筋トレ」。
最初はお酒のアプリを考えましたが、結果的に私の家族の困り事を解決するアプリをつくることに決めました。
2.つくりたいアプリが決まったら?
つくりたいアプリが決まったあと、以下の事柄を一度自分で考え、既存の類似アプリを調べたうえでAIに投げて壁打ちしました。
- どういう機能が必要か
- 誰の何を解決するアプリか
- このサービスへの想い
- ユーザー層は?
- 類似サービスは?
- 使用する技術スタックは?
そうしてできあがったのが、以下のようなアプリです。
アプリ名:MabaTalk(まばとーく)
サービス概要
声が出せず、身体も動かせず、まばたきだけで意思表示する方のための「質問テンプレート×ログ共有」ができる意思疎通支援アプリ。
家族・介護スタッフが本人の気持ちや体調を理解し、安心してケアできる環境をつくる手助けします。
このサービスへの思い・作りたい理由
- 妻の義父が脳卒中で倒れ、介護施設で寝たきりの状態となりました。
- 言葉を発することはほとんどできず、意思を伝える手段は「目を閉じる・開く」といったまばたきだけです。
- 「暑い」「寒い」「痛い」といった体調変化がすぐに分からず、表情だけでは判断できないもどかしさがありました。
- この状況を少しでも改善するため、本人が最小限の負担で意思を示せて、家族や介護者が迷わず理解できるコミュニケーション手段を作りたいと考え、このアプリの制作を決めました。
- このサービスを通して、家族の負担を減らすだけでなく、本人の「伝えたい気持ち」や「生活の選択肢」を少しでも取り戻すきっかけになればと思っています。
機能候補
▪️MVPリリース時に実装したい機能
- カテゴリ別の質問テンプレート表示
- 質問と回答のログ保存
- カスタム質問の作成機能
- ユーザー認証機能
自分で考えたうえでAIをつかって深掘り・整理してもらったので、自分の中にもしっかり落とし込まれている感があります。
つまづいたこと
README作成するにあたって一番難しかったのは、技術スタックをどうするかということでした。
- ユーザーがログインできるようにするには?
- Googleログインの連携はどうやったらできる?
- そもそもフレームワークってなに?
- フロントエンドとバックエンドの違いがいまいちわからない。
- 自分が実装したい機能にはどんな技術が必要?
などなど。
私はAIに聞きつつ、自分でも記事を読んでみたり、
あとは他のRUNTEQ生がこれまでつくったアプリに使われている技術はなんだろう?と物色してみたりしました。
他のRUNTEQ生のアプリは大半がGithubで公開されているので、自分がいいなーと思ったアプリをけっこう参考にしました。
最終的に、現段階では下記のような技術スタックになりました。
使用する技術スタック
- 使用するフレームワーク:Ruby on Rails
- フロントエンド:TailwindCSS, DaisyUI, JavaScript, Hotwire(Turbo/Stimulus)
- バックエンド:Rails 7.1.3 (Ruby 3.2.3 )
- データベース:PostgreSQL
- デプロイ先:Render
- 認証:gem 'devise', OmniAuth (Google OAuth2)
それぞれの技術スタックの特徴や選定理由を話すと長くなっちゃうので、別の記事でアウトプットしたいと思いますが、難しくなりそうな実装は避けて、スピード重視で開発できることを意識しました。
最後に
私はREADME作成するにあたり、技術面談で何度か相談させていただきました。
最初は緊張しつつ、「こんなアプリをつくりたくて、こんな技術をつかいたいと思っているんですけどどう思いますか?」みたいに聞いたのですが、めちゃくちゃ親身になってアドバイスをいただけました。
どんなアプリをつくるか迷っているときにはもちろん、ある程度決まっているときでも一度講師の方に相談してみるのがいいんじゃないかと思います。
以上、まだ何もアプリをつくっていない、ただひたすらにもくもくと作業している私の卒制READMEをつくった過程の話でした。
この記事が、たった一人でもいいので何か参考になることがあれば幸いです。
つたない文章だと思いますが、ここまで読んでいただきありがとうございました!!
追記
多くのRUNTEQの先輩方が卒制のことについて記事にしてくださっています。
私よりもずっとためになると思うので無断でそっとおいておきます。
【自己アウトプット】「作りたいアプリはある気がする」の、その先に進めない人へ|71期ぺーさん
https://note.com/hr892837_p/n/necf7a0891960
【卒制記録】アプリ案~ReadMe作成|68期くうたさん
https://note.com/kuta_68/n/nd93c5841cb1b
卒制アイデアの考え方|63期のまみむさん
https://note.com/fond_rabbit166/n/nf5cfbd5ee7a5
卒業制作(READMEとアプリ案)|68期りゅうさん
https://note.com/ryu0121_it/n/n7442c9a5283c