1日1人、24時間後に会話が消えるデーティングアプリを一人で作りました
(only24-portfolio.web.app)こんにちは。今年1月から6か月かけて一人で作ったデーティングアプリ ONLY24 を紹介します。
どんなアプリか
- 1日にぴったり1人だけマッチングされます。スワイプはありません。
- マッチした瞬間から24時間だけ会話できます。時間が過ぎると会話はサーバーからも丸ごと削除されます。
- プロフィールは実写写真ではなくアバターです。気が合えば友だちとしてつながり、ビデオ通話までアプリ内でできます。
なぜこう作ったのか
既存のマッチングアプリを開くと何百人も表示されますが、見れば見るほど誰も真剣にならないと感じました。次の相手がいつもすぐ後ろに控えているからです。選択肢が無限なら誰も大切にならない、そう考えて真逆に振り切りました。今日たった1人、24時間。
作りながら面白かった問題たち
- E2E 暗号化チャット: X25519 ECDH で鍵交換し、AES-256-GCM で暗号化します。Firestore には暗号文だけが残るので、運営者の私でも会話を読めません。ところがこの設計は AI 機能と真正面から衝突します。AI は復号できないからです。結局、人同士の会話は E2E を維持し、AI ボットとのチャットだけ平文の例外にしました。
- デーティングアプリのコールドスタート: ユーザーがいなければマッチングできず、マッチングできなければユーザーが離れる構造です。そこで、好みの写真マッチング(Gemini 埋め込み 768 次元 + コサイン類似度)で 10 分間相手が見つからなければ、AI ボットが代わりにマッチするフォールバックを入れました。ボットチャットは GPT が写真の文脈を見て応答します。
- 位置マッチング: geohash ベースですが、自分の半径と相手の半径の両方を満たした場合にだけマッチするようにしました。最初は「広い方の半径を採用」で実装したため、5km に設定したユーザーに 50km 離れた相手がマッチするバグを作ってしまい、半径の AND 条件に修正しました。
- スタック: Flutter + Firebase(Firestore, Cloud Functions/TypeScript) + 補助として Supabase、WebRTC ビデオ通話、PASS 本人認証(19歳以上、重複登録防止)。
率直な現状
4月末にストア公開しましたが、ユーザーはほとんどいません。デーティングアプリはユーザーそのものが製品なので、コールドスタートがいちばん難しいことを身をもって学んでいます。ボットフォールバックで「がらんとした部屋」という最初の体験は防げましたが、本当の人をどこから集めるかが今の課題です。同じような問題を解いたことがある方の体験談を聞いてみたいです。
開発者
作ってからというもの、実際に使う人たちのフィードバックをとても強く求めています。いろいろな意見をいただければ、すぐ反映して使いやすく改善します。ぜひ多くのご連絡をお願いします。
- App Store: https://apps.apple.com/kr/app/id6759185657
- Google Play: https://play.google.com/store/apps/details?id=com.kamataewoo.only24
- 技術アーキテクチャ整理: https://only24-portfolio.web.app
2件のコメント
コンセプトは正午の紹介みたいな感じですが、こういうのはやはりアプリの品質よりもユーザーがどれだけ多いかのほうが重要な要素な気がしますね。カカオトークもひどくても仕方なく使うしかないのと同じように
こんにちは!ご返信、本当にありがとうございます。
その通りです。品質はある程度上がってきたのですが、ユーザーを集めるのはなかなか簡単ではないですね…