カレンダー表示の技術選定:simple_calendar を選んだ理由
アラームをカレンダー形式で表示する機能を実装するにあたり、Google Calendar API、FullCalendar、simple_calendar の3つを検討しました。
環境
- Ruby on Rails 8.1.3
選定の軸について
今回の要件は「自分のアプリのデータを月表示でカレンダー形式に一覧表示すること」のみです。
「必要な機能だけをシンプルに実装できること」 を軸に置きました。
選択肢の比較
Google Calendar API ― 却下
Google Calendar API は、Google カレンダーのデータを読み書きするための API です。
今回の要件は「自分のアプリのデータをカレンダー形式で表示する」ことであり、外部カレンダーサービスと連携する必要はありません。
用途が根本的に異なるため除外しました。
<補足>
将来的に「他のスケジュールと一緒にアラームを確認したい」というニーズが生まれた場合には、Google Calendar API との連携を検討する余地はあると考えています。
ただし、そのニーズが本当に発生するかどうかはリリースして使ってみなければわかりません。
最初から組み込むよりも、simple_calendar でシンプルにスタートし、必要になった段階で拡張するのが合理的な判断だと考えました。
FullCalendar ― 却下
FullCalendar は JavaScript ベースの高機能なカレンダーライブラリで、豊富なインタラクションや表示オプションを持っています。
しかし今回必要な機能は「月表示でアラームを一覧できること」だけであり、機能的にオーバースペックです。また、JavaScript という新たな関心ごとが加わることで、実装の複雑さが不必要に増します。
simple_calendar ― ✅ 採用
JavaScript を必要とせず Rails のテンプレートだけで完結するため、既存のスタックから外れません。
デフォルトの ERB テンプレートが用意されているため実装のハードルも低く、「月表示でアラームを一覧する」という要件をシンプルに満たせます。
まとめ
| ライブラリ | JS 不要 | 実装の簡易さ | 今回の要件との適合 | 採否 |
|---|---|---|---|---|
| Google Calendar API | ✅ | ❌ | ❌(外部連携用) | ❌ |
| FullCalendar | ❌ | △ | △(オーバースペック) | ❌ |
| simple_calendar | ✅ | ✅ | ✅ | ✅ |
要件にあっていてかつ最もシンプルな手段を選びました。
将来的に要件が広がった際には、その段階で改めて選定を見直す方針を取ります。