良い睡眠習慣をつけて睡眠を改善したい人のためのサービス、Sleepleをリリースしました
はじめに
この記事はタイトルの通り、「自作サービスをリリースしたよ!みんな使ってみてね!」という趣旨のものです。
私は1年ほど前までフロントエンドエンジニアとして働いていたのですが、サーバーサイド(Rails)の開発を中心に行う部署に異動になったという背景もあり、昨年からフィヨルドブートキャンプというRailsを中心に学習できるブートキャンプに参加していました。
メンターや運営には、RailsやRuby界隈ではとても有名な方々もおり、直接その人たちに質問ができたり、コードレビューをしてもらえるなどの良い機会も提供していただきました。この場を借りてお礼申し上げます。そして今後ともよろしくお願いいたします。
この記事では主に、今回リリースした自作サービスの紹介や、どんなことを考えながら作ったか、フィヨルドブートキャンプでは何が一番楽しかったか、逆に何が大変だったかなどをつらつらと書いていこうと思います。
どんなサービスを作ったのか?
今回私は、Sleeple(すりーぷる)
という、良い睡眠のための習慣が身についているかのチェックができるサービスを作りました。
Sleepleの機能はとてもシンプルで
- 睡眠習慣チェックリストにあるリストを、寝る前にチェックする
これだけです。
具体的なユーザーの動作としては、以下のようなチェックリストが出てくるので、これに対して、「はい」「いいえ」を選択するだけです。
これによって、日々の生活の中で良い睡眠習慣が身についているかをチェックすることができます。
そして、それらを意識して生活をすると、もしかしたら睡眠の質がちょっと上がるかもしれません。
来年こそは「睡眠を改善するぞ!」って思っている方にもおすすめです。
なぜこれを作ったのか?
多くの人が、寝る直前までスマホを見ていてすぐに眠りにつけなかったり、昼に寝過ぎてしまって深夜まで目が冴えてしまったりした経験があると思います。私自身も数年前まではそんな日が年に10回程度ありました。ただ、ある時読んだ本を参考に睡眠を改善していったところ、そういった日がなくなっただけでなく
- 夜まで集中力が持続するようになった
- 頭の中がクリアになり、余計なことを考えることが減った
- 体調を崩すことがほぼなくなった
といったことが自分の体感として出てくるようになりました。
自分の体調などがいくつかの習慣のおかげで良くなったことから、睡眠に悩んでいる人の助けになるようなサービスを作ってみたいと思い、今回の開発をするに至りました。
技術スタック
- Ruby 3.1.2
- Ruby on Rails 6.1.6
- RSpec
- Github Actions
- Render.com
使い方
先ほど少し触れましたが、とてもシンプルなものです。 まずユーザー登録をしていただいた上で、夜寝る前に
- 睡眠習慣チェックシートに回答する
これだけです。
なお、定期的にチェックシートに記入していくと、カレンダーが埋まっていき、自分の習慣がどういう風に推移しているかが直感的にわかるようにしています。
作っていく上で大変だったこと
サービスを作る上で一番大変だったなと思うのは、「何を提供するか」を決めることだったように思います。 自分がイラッとすることや、身の回りで困っている人を助けることができるものはなんだろうか...と考えて、企画を出してはボツになったり、案を考えても、自分がやりたいことでもなかったりして、かなり苦しんだ記憶があります。
結局は、お風呂の中で頭の中に浮かんだ、良い睡眠の習慣を身につけることで、可処分時間を増やしたり、心身ともに健康になれたりすることができたな...ということを思い出し、「それが広がればいいな」と考えました。その時のアイデアを形にすることにして、Sleepleを作っていくことに決めました。
しかし、サービスの内容が決まった後も、「この機能はなんのためだろうか?」「この機能は本当にユーザーのために必要なんだろうか?」ということを考えて、答えが出ないまま1週間くらい過ぎてしまうなんてこともあり、自作サービスを作るのは大変だな...と改めて認識させられました。
また、Railsの開発は仕事でもやっていたのですが、個人開発は普段の仕事とは違い、企画、デザイン、インフラ、法務など、普段誰かがやってくれていることも自分でやらなくてはいけないので、そのあたりのキャッチアップや調査もそこそこ時間を使ったように思います。
もちろんRailsの実装でも、devise使ったログインとかGithub Actionsの設定などは、仕事ではやったことがなかったので、そのあたりは色々と調べながら進めていったため、決してサクサク進んだわけではありませんでした。
それでも、なんとかサービスのリリースまでこぎつけることができたのは
- 忙しくても15分は取り組む
- 自分の中で仮説を失ってわからない状態になったら周囲に助けを求める
というルールを決めて、そのルールに沿って取り組んでいったからかなと今では思います。
フィヨルドブートキャンプについて
最後に、少しフィヨルドブートキャンプ全体についても振り返ってみようと思います。
フィヨルドブートキャンプは、初心者からでもプログラミングを学ぶことのできる場所です。
HTMLやCSS、vimの使い方などをやるところからスタートして、RubyやJavascriptの基礎→RailsやVue.jsというフレームワークを使った簡易的なアプリの機能実装→自作npmのリリース→実際のチーム開発などを経て、自作サービスの企画と制作を行っていくので、段階を踏んで実力をつけていくことができます。
私のようにエンジニアの経験がある人からすると、最初の方の課題は簡単すぎる部分もありますが、自作npmや、Rubyの課題で中盤の山場になる lsコマンドの自作やボウリングのスコア計算のプログラムをオブジェクト指向で書く、など、ある程度経験のあるエンジニアでもすんなりいかないような課題も出てきてやりがいがあります。(私もlsコマンドのオブジェクト指向には苦戦しました...)
私はRailsエンジニア歴2ヶ月くらいのタイミングで参加したので、最初の方はスムーズに進んだのですが、後半になるにつれ難しいなと感じることも増えていった印象があります。
それでも、豪華(かつ人間性もとても高い...)メンターの方々や、一緒に課題を進めている受講生とコミュニケーションをとりながら進めることで目の前の問題を解決でき、モチベーションを大きく落とすことなく、自作サービスのリリースまで完走することができました!
難しい課題をやるときはしんどい時もありましたが、チーム開発と自作サービスの開発に入ってからは楽しいことの方が多く、休日や平日の仕事の前後の時間があっという間になくなっていきました。笑
あと、フィヨルドブートキャンプのコミュニティはとても人間性が高い方が多いので、RubyやRailsの実装にアドバイスをいただいたり、わからないことをどんどん質問できるのもよかったです。自分が卒業してからも交流は続けたいなと思っています。
最後に
今回、自作サービスのリリースにあたり、フィヨルドブートキャンプの方々のみならず、学生時代の友人や妻にも協力をしていただいたり、別のエンジニアコミュニティの方にも相談をさせてもらったりしました。 コードを書いたのは100%自分ですが、そうした方々の協力がなければリリースができなかったと思いますので、改めて皆様にお礼をお伝えしたいと思います。
サービスそのものはこれからブラッシュアップしたり、言語やフレームワークのアップデートなども行っていきたいなと思いますので、また進捗があったらブログに書こうかなと思います。
というわけで、来年以降も技術力や経験値を上げていって、「テクノロジーを分かりやすく伝えて、一歩前に進む人を増やす」という仕事の目的に向かって進んでいきますので、みなさま今後ともよろしくお願いいたします!!!