はじめに:なぜCookSuggestを作ったのか
「冷蔵庫に余った食材で何を作ろう…」誰もが一度は経験する悩みですよね。私自身、仕事帰りに疲れて帰宅して、冷蔵庫を開けて途方に暮れる日々が続いていました。
市販のレシピアプリは確かに便利ですが、「○○を使ったレシピ」を検索しても、結局は他の食材も必要で、買い物に行かなければならない…。そんな経験から、「今ある食材だけ」で作れるレシピを提案するアプリを作りたいと思い立ちました。
きっかけは2022年3月のある金曜日の夜でした。冷蔵庫に残っていたのは、賞味期限ギリギリのキャベツ半玉、豚肉200g、そして中途半端に余った玉ねぎ1個。レシピサイトで「キャベツ 豚肉」と検索すると、確かに回鍋肉やホイコーローが出てきますが、どのレシピも「豆板醤」「甜麺醤」など、普段使わない調味料が必要でした。結局コンビニで弁当を買う羽目に。この時「今ある材料『だけ』でマッチングするアプリがあれば」と強く思ったのが開発のきっかけです。
- 冷蔵庫の余り物から料理を提案
- 買い物不要で今すぐ作れるレシピ
- 食材ロス削減にも貢献
- 1000種類以上のレシピデータベース
課題1:レシピデータをどう集めるか
最初の大きな壁は、「どうやって1000種類ものレシピデータを集めるか」でした。手作業で1つずつ入力するのは現実的ではありません。
検討した方法
- 既存APIの利用 - 楽天レシピAPI等を検討したが、無料枠が限られており継続性に不安
- Webスクレイピング - 著作権・利用規約の問題で断念
- ChatGPT APIでレシピ生成 - コストが高く、データの一貫性に課題
- 一般的なレシピ知識をベースに手作業でDB構築 - 時間はかかるが最も確実
最終的に、一般的な料理知識をベースに、独自のレシピデータベースを構築することにしました。著作権フリーの一般的な料理レシピ(肉じゃが、カレー、ハンバーグ等)をベースに、自分の料理経験も加えて1000レシピを手作業で整備しました。
この作業が想像以上に大変でした。毎晩2時間、約3ヶ月かけてExcelシートに料理名、材料、分量、調理時間を入力し続けました。特に苦労したのが「材料の粒度」の統一です。例えば「豚肉」と「豚バラ肉」は別物として扱うべきか?「醤油」と「濃口醤油」は?最終的に、ユーザーが選びやすいよう「豚肉(バラ・ロース・ひき肉)」のように大分類で統一しました。2022年6月末、ついに1000レシピ分のデータベースが完成したときは、達成感で涙が出そうになりました。
課題2:データ構造の設計
レシピデータをどのようなJSON構造で保存するかも重要なポイントでした。検索速度とメンテナンス性を考慮した結果、以下の構造に落ち着きました。
ポイントは、材料に「required」フラグを付けたこと。これにより、「絶対に必要な材料」と「あれば良い材料」を区別し、ユーザーが持っている食材だけでマッチング精度を高めることができました。
課題3:検索アルゴリズムの実装
「ユーザーが選んだ食材」と「レシピの必要材料」をマッチングさせるアルゴリズムが、このアプリの心臓部です。
最初のアプローチ(失敗)
当初は単純に「選択された食材がすべて含まれるレシピ」を検索していましたが、これだとヒット数が極端に少なくなる問題が発生しました。
改善後のアルゴリズム
そこで、「マッチ度」スコアリング方式に変更しました。
- 必須材料が全て揃っている: +100点
- オプション材料が揃っている: +10点/材料
- 余分な材料が少ない: +5点/不要材料
- 調理時間が短い: +1点/分短縮
このスコアリングにより、「完璧に一致するレシピ」だけでなく、「ほぼ作れるレシピ」も提案できるようになりました。
ユーザー満足度が大幅に向上!「豚肉とキャベツしかない」状況でも、5-10件のレシピを提案できるようになりました。
課題4:パフォーマンス最適化
1000件のレシピデータを毎回全検索すると、ブラウザが重くなる問題が発生しました。特にスマホでの動作が遅く、ユーザー体験を損なっていました。
実施した最適化
- カテゴリ別の事前フィルタリング - 和食・洋食・中華でまず絞り込み
- インデックス作成 - 食材名をキーにした逆引きインデックス
- Web Worker活用 - 検索処理をバックグラウンドスレッドで実行
- 結果キャッシュ - 同じ食材選択なら前回結果を再利用
これらの最適化により、検索速度が平均3秒 → 0.5秒に短縮されました。
実際の反響と今後の展望
CookSuggestは2022年4月のリリース以来、多くの方にご利用いただいています。「冷蔵庫の余り物を有効活用できた」「食材ロスが減った」といった声を頂き、開発者として嬉しい限りです。
今後の改善予定
- レシピ画像の追加(視覚的訴求力の向上)
- 栄養バランス分析機能
- ユーザーレビュー・評価機能
- レシピ数を2000件に拡大
- AI活用による個別最適化(好みの学習)
実際にアプリを試してみたい方はこちらからどうぞ!
まとめ:個人開発アプリの作り方
CookSuggest開発を通じて学んだ教訓をまとめます。
- データ収集は最初が肝心 - API依存よりも独自DB構築が長期的には有利
- 完璧を求めすぎない - 80%の完成度でリリースし、フィードバックを得る
- ユーザー体験を最優先 - 検索速度・UI/UXにこだわる
- 継続的改善 - リリース後も定期的にアップデート
個人開発アプリは、大規模サービスにはない「ニッチなニーズへの対応」が強みです。CookSuggestも「今ある食材だけで料理したい」という特定のニーズに特化したことで、ユーザーに支持されています。
もしあなたも「こんなアプリがあったら便利なのに」というアイデアがあれば、ぜひ形にしてみてください。完璧でなくても、誰かの役に立つアプリになるはずです。
最後まで読んでいただき、ありがとうございました!
他の開発記事もブログで公開していますので、ぜひご覧ください。