はじめに
初めまして、現在プログラミングスクールにてRuby on Railsをメインに学習しているikedaと申します。
7/2にアプリをリリースしたので、アプリ紹介と技術、感想をまとめさせていただきます。
初めて記事を書くのでお手柔らかにお願いします。
サービスURL
GitHub URL
開発背景
このサービスを作りたいと思ったきっかけは、私の父親が薬の服用管理が苦手で、薬を飲み忘れることが多かったからです。その結果、何度か救急車で病院に運ばれる事態にもなりました。この問題を解決したいと思い、薬の服用管理をアプリで行うことで、父親のように薬の服用を忘れるがちな人々の健康を守りたいと考えました。
機能・アプリ紹介
新規登録 | ログイン |
---|---|
sorcery で会員登録・ログイン機能を実装しました。 |
メールアドレスで登録したユーザーはパスワードを再設定できます。 |
薬登録機能 | 検索機能 |
---|---|
薬や病院名、錠数や画像、服用期間や複数の服用タイミングを登録することができます。 |
ransack を使用して薬や病院名、服用タイミングをすぐに検索できるようにしています。 |
チェック機能 | カレンダー |
---|---|
服用した薬をチェックすると記録することができます。 | カレンダー機能を追加することで、服用状況を視覚的に把握できるようにし、自己管理能力を高めることができます。また、家族や介護者もカレンダーを通じて服用状況を確認できるため、適切なサポートを提供しやすくなります。 |
メモ機能 | リマインド機能 |
---|---|
家族の状態を薬と一緒に記録することで日々の変化を記録することができます。 | 毎日夜の9時にリマインド通知がLINEに送られてきます。 |
■技術スタック
カテゴリ | コンテンツ技術 |
---|---|
サーバーサイド | Ruby on Rails ・Ruby |
cssフレームワーク | Tailwindcss + daisyUI |
web API | LINE Messaging API| |
ファイルサーバー | AWS S3 |
データベース | PostgreSQL |
アプリケーションサーバー | heroku |
バージョン管理ツール | GitHub |
その他 | Docker・GoogleAnalytics |
ER図
技術選定理由
サーバーサイド
プログラミングスクールでRuby on Railsを中心に学習をしてきたため、学んできたことの総復習&理解をさらに深めるためにRuby on Railsを採用しました。
スクールのカリキュラムでは使うことのなかったGem(simple_calendar, line-bot-apiなど)を今回使用し、新たな収穫が多くありました。
フロントエンド
TailwindCSSとdaisyUIは、同じスクールに通っていた方が個人開発で使用しており、使ってみたいと思っていたのとコンポーネントとして必要な部分だけテンプレートをコピペで使用できるので開発速度向上に繋がると考え選びました。
インフラ・開発環境
Heroku
Herokuにはスケジュラーが無料で使えたのでリマインダー機能で使用したかったのと、初めてのアプリ開発でデプロイや運用ができるか不安があったため、 記事が豊富なHerokuを採用しました。
Docker環境
Dockerだと環境の共通化・統一化ができるのと、実務でも最近はよく使われていると聞いたので使い慣れておきたいと思い選びました。
こだわったところ
メモ機能
服用管理をする中で薬を飲み忘れていたなんてことが起こった時になぜ起きたのかを記録として残しておいて、後から医師に伝えたい場面がありました。そんな時に後から見返してなぜそれが起こったのかを記録することができるメモ機能を実装しました。
リマインダー機能
チェックを忘れないようにLINEから夜9時にリマインダー通知が届くようにしました。
UI/UX
ヘッダーやボタンなどにアイコンを表示させることによって直感的にわかるよう工夫しました。
反省点
操作手順が複雑で使いずらい
開発する前にFigmaで画面遷移図を作りユーザーが使いやすいように設計しました。
しかし、実装して行くにつれて画面遷移が思ったより複雑になり、使用しずらいと報告をいただきまいした。
もう少し画面遷移を直感的にする方法を勉強しようと反省しました。
今後の改善点
RSpec
テストコードがまだ書けていないので、RSpecを用いてモデルスペック、システムスペックのテストを書いていきたいです。
タブ
現在タブの切り替え時に同期通信で切り替えてるのですが、タブをアクティブ・非アクティブ化して、クリックされたら対象のタブをアクティブ化&タブに関連するHTMLをアクティブ化して表示する方が、ユーザーにとっては使いやすいと思うので今後改善していきたいです。
おわりに
初めての個人開発でREADME作成から画面遷移図、ER図、issue作成、全てが新鮮で良い経験になりました!
開発中何度もエラーにぶつかりましたが、講師の方々やみなさんの記事などのおかげでなんとか形にできて感謝の気持ちでいっぱいです!
おかげで開発することに対しての心理的ハードルが下げられたので、これからもいろんな技術に触れていきたいです。
最後まで読んでいただきありがとうございました!