4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【個人開発】甘いものは好きだけど"甘すぎる"のは苦手…そんな人のためのレビューアプリを作りました

Last updated at Posted at 2025-12-07

この記事は、個人開発についての Advent Calendar 2025の8日目の記事になります。

はじめに

こんにちは!プログラミングスクールRUNTEQで学習中のてーです。
この度、卒業制作として「あまピタッ!」というアプリをリリースしました!
好みの甘さ感覚が近いユーザーと繋がることで、"ちょうどいい甘さ"に出会えるレビューサービスです。このアプリでは、ユーザーそれぞれが自分に合った甘さの商品と出会い、甘さの世界が広がる楽しみを提供しています。

サービスはこちら

GitHubリポジトリ

conference_survival_top (3).png

アプリの開発背景

私は物心がついた頃から甘すぎるものが苦手で、「ちょうどいい甘さ」に出会えない不便さをずっと感じてきました。
ただ、甘いもの自体は好きなので、「苦手だから避ける」のではなく、自分に合う甘さならちゃんと楽しみたいという気持ちがずっとありました。
でも実際には、甘い飲み物やお菓子を選ぶとき、パッケージ情報や過去の記憶だけでは自分に合う甘さかどうか判断できず、新しいものにチャレンジしづらいことが多くありました。

特に感じていた課題は、

  • 甘さの感じ方は人によって大きく違う

  • それなのに、商品選びでは自分の"甘さの基準"と照らし合わせるしかない

  • 「甘いものは好きだけど、甘すぎるのは苦手」という人が情報を得る場所が少ない

という点でした。

そこで、似た甘さ感覚を持つユーザー同士がつながれたら、甘すぎるものが苦手な方や"ちょうどいい甘さ"を楽しみたい方が新しい商品にももっと安心してチャレンジでき、甘さの世界を楽しめるのでは? と考え、このアプリを開発しようと考えました。
また、30代以降で甘さを重く感じ始めた方にとっても、自分に合った“ちょうどいい甘さ”に出会えることで、甘いものを楽しむ時間がより心地よくなると考えています。
甘さの好みの変化にも寄り添いながら、“甘いものを楽しみたい”という気持ちを後押しできる場をつくりたいという思いも、このアプリに込めています。

アプリの主な機能

  • 認証機能
  • 甘さ感覚診断機能
  • 投稿機能
  • バッジ機能:投稿数・甘さツイン
  • ブックマーク・いいね・コメント機能
  • 通知機能
  • Xシェア機能

使い方イメージ

甘さ感覚診断 投稿一覧
Image from Gyazo甘さの感じ方や甘さの好みに関する5つの質問から、ユーザーの甘さ傾向タイプを診断します。診断結果画面ではXへのシェアが可能です。 Image from Gyazo ユーザーの投稿をまとめて確認できます。「みんなの甘さ評価」「甘さツインのあまピタ評価」の2つのタブがあり、それぞれ独立した検索が可能です。

※補足

  • 「甘さツイン」: 好みの甘さ感覚が近いユーザー
  • 「みんなの甘さ評価」:全ユーザーの投稿
  • 『あまピタ評価」: レビューの際に「あまピタ度(=甘さ感覚にどれだけ“ピタッと”ハマったか)」を5段階で設定し、ぴったりの甘さの場合はあまピタ評価となります。
①投稿画面(レビュー投稿) ②投稿画面(商品登録+レビュー投稿)
Image from Gyazo 既存商品へレビューする場合、商品情報を登録する手間なくレビューすることができます。 Image from Gyazo「商品情報の登録」と「甘さのレビュー登録」で分かれており、レビュー部分は公開・非公開の選択が可能です。
商品詳細画面 商品一覧
Image from Gyazo 商品に対するレビューをまとめて確認できます。甘さの評価や感じ方の違いを楽しめます。 Image from Gyazo「○人中○人があまピタッ!」という形で、あまピタ評価の人数を一覧で確認できます。
マイページ プロフィール編集
Image from Gyazo 最新の甘さ感覚診断の結果・自分の投稿・いいねした投稿の一覧が確認できます。 Image from Gyazoアバター画像・ユーザー名の変更・自己紹介文の登録ができます。

使用技術について

カテゴリ 使用技術
フロントエンド JavaScript, Chart.js, TailwindCSS, DaisyUI
バックエンド Ruby on Rails 7.2.1
インフラ Render, AWS S3
データベース PostgreSQL
認証 Devise, OmniAuth
開発環境 Docker
API 楽天API

技術選定理由について

【フロントエンド】

  • Chart.js
    味覚という「感覚」をわかりやすく見せたかったため、レーダーチャートを使えるChart.jsを選びました。ミニアプリで技術検証した際に設定がシンプルで、必要な機能を素早く実装できたのが決め手です。
    今回のアプリでは、高度なカスタマイズでは必要なく軽めのチャートの描画であったため、D3.jsのような大規模ライブラリよりもChart.jsがちょうどよいと判断しました。
  • TailwindCSS, DaisyUI
    ミニアプリで使用した際にTailwindのユーティリティだけでレスポンシブ対応まで直感的に組めたので、開発スピードを上げられると思い採用しました。DaisyUIを組み合わせることで、Tailwindだけだと少し冗長になりがちな部分をすっきり書けたのも良かった点です。また、カスタムテーマが使えるため、アプリ全体のUIを統一しやすいと判断しました。
    【バックエンド】
  • Ruby on Rails
    このアプリはユーザー認証・CRUD・検索など、Webアプリでよくある機能が中心でした。Railsは「設定より規約」によって、このあたりの基本機能を素早く作れるため採用しました。
    また、画像アップロードや外部APIとの非同期連携など複数機能をまとめて扱う場面もありましたが、Railsの標準機能や豊富なgemを活用することで、無理なく実装できると判断しました。
    【インフラ】 
  • Render
    外部API(楽天API)を使用する上で、APIの応答が遅いとユーザーの待ち時間が長くなる可能性があったため、バックグラウンド処理が簡単に使えるインフラが必要でした。そこでRenderのBackground Worker機能を利用することで、Active Jobとsolid_queueを組み合わせて非同期処理を実装できると判断しました。また、GitHub連携によってコード変更をすぐ反映できる点や低コストで始められる点も、個人開発の規模感に合っていると感じ、Renderを選びました。

ER図

amapita.png

画面遷移図

https://www.figma.com/design/uazJL21GsNpMCUUzhGqWgm/amapita?node-id=0-1&t=F5k6W59mdA38Oy6s-1
amapita_画面遷移図.png

アプリの企画・設計で工夫した点

①可視化項目の設計

味覚の一つである「甘さ」をどの項目に分ければ可視化できるのか、かなり悩みました。甘さの強弱だけではなく、質感や深みまで表現したいと考え、甘さの要素を細かく分解していきました。

その結果、最終的に下記の5項目に落ち着きました:

  1. 甘さの強さ
  2. 後味のキレ/すっきり感
  3. 自然な甘さ
  4. 爽快感
  5. 甘さの深み/コク

この5項目を軸に、レーダーチャートでの可視化や、甘さツイン判定ロジックの設計を行っています。

②「🤝甘さツイン」という概念の設計

「似た甘さ感覚を持つユーザー同士がつながる体験」をどう表現するかを考え、“双子”を意味するTwinをモチーフにした「甘さツイン」という名前にしました。
単なる「おすすめユーザー」ではなく、“自分に近い甘さ感覚を持つ存在” として親しみやすく感じられるように、あえて柔らかいネーミングにしています。また、ユーザーが安心して「甘さの近い相手」と感じられるように、信頼の象徴である握手の絵文字(🤝)を組み合わせて、視覚的にも伝わるデザインにしています。

Image from Gyazo

技術的に工夫した点

①「甘さツイン」判定ロジックの実装

診断の5つの質問結果から、ユーザー間の相性を数値化し、好みの甘さ感覚が近いユーザーを「甘さツイン」として判定するアルゴリズムを実装しました。

アルゴリズムの流れ

  1. 最新プロフィールの取得

    • 各ユーザーの最新の診断結果のみを対象にし、判定の精度を保つ
  2. 必須条件での絞り込み

    • 「甘さの強さ」「後味のキレ/すっきり感」の2項目を必須条件として、値が±1以内のユーザーのみを対象にする
  3. 総合スコアの計算

    • 5項目それぞれの差分(絶対値)を合計し、「相性スコア」を算出
  4. 閾値による最終判定

    • 相性スコアが4以内であれば、甘さツインとして判定

【閾値の設計理由】

なぜ「±1」と「総合スコア4以内」にしたのか?

好みの甘さ感覚の近さを判定する上で、レーダーチャートの5項目のうち 「甘さの強さ」と「後味のキレ」 が特に重要だと考えました。
ここが大きくズレていると、他の項目が近くても「甘さの感じ方が違う」と感じやすいためです。
そこで、この2項目は必須条件(±1以内)とし、さらに5項目全体のバランスを見るために、相性スコア4以内を甘さツインとする設計にしました。
実際に複数のパターンでテストユーザーを使って検証したところ、この基準がもっとも “感覚の近さ” を自然に判定できることが確認できました。

②レーダーチャートの実装

商品詳細画面でのレーダーチャートでは、レビューユーザーの平均チャートとログインユーザーのチャートの2つを1つのレーダーチャートに表示しています。
チャートが重なっても、それぞれが独立して見えるよう色味を工夫しました。また、スマホでも見やすいよう、レスポンシブ対応も実装しました。
Image from Gyazo

工夫した点(UI・UX)

①「甘さツイン」バッジ

甘さ感覚診断を行うと、自分と好みの甘さ感覚が近いユーザーが判定され、対象のユーザーに「甘さツイン」バッジが表示されます。
甘さツインと繋がることで、主観的な甘さの感覚を“自分に近い感覚の人”を通して確かめられるため、選ぶ楽しさが広がります。

Image from Gyazo

また、投稿一覧で「甘さツインのあまピタ評価」タブを選ぶと、甘さツインがレビューした商品のうち、あまピタ評価の投稿のみが表示されます。
Image from Gyazo

②あまピタ度での検索

レビュー項目の中でも「甘さの感覚」が重要なため、投稿一覧からあまピタ度(=自分の甘さ感覚にどれだけ“ピタッと”ハマったかを5段階で判定)で検索できるようにしています。
Image from Gyazo

③投稿へのハードルを下げる

既存の商品であれば、レビュー時に商品情報を入力する必要はありません。あまピタ度と甘さ評価を登録するだけで、商品画像・情報が自動的に投稿へ反映されます。
また、投稿画面や商品詳細画面にある「あまピタ判定する」ボタンから、すぐにレビュー画面へ遷移できます。
Image from Gyazo

もし、レビューしたい商品が未登録の場合でも、「楽天で検索」ボタンから商品情報を取得できるため、商品画像の準備やカテゴリ・メーカーの入力をする必要がありません。
Image from Gyazo


## 今後の展望
- 商品一覧・各カテゴリ一覧での並び替え機能(商品登録順、あまピタ評価順など)
- 通知機能の拡充(甘さツインの新規投稿通知など)
- 診断履歴ページの表示


## おわりに
アプリ制作にあたって相談に乗ってくださったRUNTEQ講師の方々・同期をはじめとする受講生の方々、本当にありがとうございました!
このアプリを通じて、好みの甘さ感覚に合う商品が見つけやすくなり、甘さの冒険がより楽しいものになれば嬉しいです。
"あまピタッ!"な商品との出会いを、ぜひ体験してみてください😉

https://www.amapita.com/

フィードバックやバグのご連絡は、Xまたはお問い合わせフォームにいただけますと幸いです。

https://x.com/tey__runteq

最後まで読んでいただき、ありがとうございました!
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?