はじめに
企業やプログラミングスクールなどのグループ内へのポッドキャスト配信サービスをリリースしました!
自己紹介
futa4095(ふた)です。現在、フィヨルドブートキャンプ(FBC)でWeb系エンジニアになるための勉強をしています。 前職はSESとして金融業界でCOBOLを使ったお仕事をしていました。 ミステリを読むことが好きです。
サービス概要
CIRCLECASTはグループ内にポッドキャストを配信するサービスです。 一般的なポッドキャストであれば全世界に向けて公開されますが、このサービスでは限られた範囲内に公開することができます。 例えば、
といったケースに活用できます。
主な機能
- グループ管理機能 : グループを作成し、配信対象のメンバーを招待できます
- ポッドキャスト投稿機能 : グループに番組を作成し、番組内にエピソードを投稿できます
技術スタック
- 言語 : Ruby 3.2
- フレームワーク : Ruby on Rails 7.0
- データベース: PostgreSQL
- 認証 : Devise
- ファイルアップロード : Active Storage
- テスティングフレームワーク : RSpec
- CSSフレームワーク : Tailwind CSS
- JSフレームワーク : Alpine.js
- デプロイ : Fly.io
- ストレージ : Google Cloud Storage
- ドメイン : Google Cloud Domains
- メール送信 : Resend
苦労した点や学びと感想
技術検証でハードルを上げすぎた
当初最新のトレンドに乗ろうとしてNext.js + Rails(API)の構成を考えていました。 Next.js*1は流行りのフレームワークであり、他の人も使っているからといった理由で、Railsは今までFBCで学習してきたものを活かせると思ったため選択しました。 しかし、検証を進めていくと学習コストが高く、無駄に複雑になっているように感じてしまい断念しました。 同様にFirebase Authenticationも当初採用予定だったのですが、結局Devise gemを利用することになりました。 上のレベルに挑戦するのは良いですが上げ過ぎてしまい苦しくなりました。ほどほどが良いです。
新しい技術に挑戦した
Hotwire(Turbo)
CIRCLECASTでは、フロントエンドにHotwire(Turbo)を採用しました。Turboを使用してHTMLを部分的に更新する機能を実装し、タブの切り替えやトグルボタンの更新をスムーズに行うことができました。この経験を通じて、Turboの基本的な使い方を学ぶことができたため、もっと活用していきたいと思いました。将来的には、グループや番組からのページ遷移なしでエピソードの再生を実現するなど、より高度な機能の実装に挑戦していきたいと考えています。
RSpec
テストにはRSpecを初めて使いました。「Everyday Rails - RSpecによるRailsテスト入門」を通じて学習し、テストを書くことができました。最初はdescribe/context/itの区別を間違えたまま使っていましたが、レビューを通じて正しい使い方を学ぶことができました。テストの重要性を実感し、今後さらにスキルを磨いていく良いきっかけとなりました。
Tailwind CSS
Tailwind CSSを採用したことで、クラス名の考案やCSSファイルの作成にかかる時間を削減できました。また、ユーティリティクラスの使用により、迅速なスタイリングが可能になりました。今後は、クラスの整理や可読性の向上、エディタでの補完機能の活用など、さらに効率的な運用方法を探っていきたいと思います。
デザインの重要性がわかった
デザインセンスに自信がなかったのですが、デザインの重要性を考える良い機会になりました。 ユーザー体験を考慮したレイアウトの重要性について、実践を通じて深く学ぶことができました。
メンターの方(プロのデザイナー)からいただいたデザインレビューのコメントは勉強になりました。多くの具体的なアドバイスを受けることで、自分では気づけなかった改善点に気づくことができました。 例えば、色の使い方やレイアウトのバランスについてのフィードバックは勉強になりました。
デザインへの取り組みは困難ではありましたが、ユーザーの使いやすさを向上するために努力していきたいです。
体調とメンタル大事
このサービスを作り上げるのに1年以上かかってしまいました。持病による体調不良とメンタルの弱さが相互に作用して、どんどん悪い方向に進んでいたのかと思います。 自作サービスの開発は孤独との戦いです。自分では孤独耐性がそれなりにあると思っていたのですが、そんなことはなく不安でメンタルが相当削られていました。 このサービスは本当に必要とされているのだろうかとか悪い方向に考えてしまいました。 孤独を癒すためにはFBC内で開催されている進捗報告会や輪読会などのイベントに積極的に参加すると良いのかもしれません。
わからないことだらけだとわかった
初めてのサービス開発なので当たり前のことなのですが、自分は全然わかっていないということがわかりました。 「わからない」になる度に調べて勉強を繰り返すのみです。 (今までFBCでやってきたことと同じですね)
今後の展望
サービスのリリースを優先したため後回しにしていることをやりたいです。 具体的にはRailsのアップグレード、再生時間の表示やバグの修正などです。
感謝の言葉
FBCのメンター、受講生、卒業生など全ての関係する方々へ みなさんの応援のおかげでやっとリリースまで漕ぎ着けることができました。 本当に感謝の気持ちでいっぱいです。
おわりに
こんな感じで書き慣れていないブログ記事を書いてみました。 これからもCIRCLECASTとfuta4095をよろしくお願いします!
*1:当時はApp routerが出たばかりでした