
「あと何kcal食べられるか」だけ分かればよかった
カロリー記録アプリが続かない理由は、だいたい入力の重さにあります。食品DBを検索して、分量を選んで、単位を合わせて……1食3分。これを毎日3回やれるなら、そもそも太っていない。
たべメモは、そこを1点だけ壊しにいったアプリです。
やることは1つ。食べたものを雑に書く。
「アルフォート3枚」「セブンのおにぎり2個と豚汁」——このまま入力すると、Claude が品目・分量・kcal・確信度を推定して返し、ホーム画面ウィジェットの「今日の残り」が即座に減ります。
主な機能
- 雑な日本語でOK — 食品DBを引く操作がありません。音声入力と Siri(「たべメモで記録」)にも対応し、アプリを開かずに記録できます
- 見るのは残高だけ — 残りkcal(目標 − 当日の確定合計)を大きく表示。超えるとマイナス&赤字で、0では止めません
- ホーム画面ウィジェット — 中サイズで残高を常時表示。タップで入力欄に直行、0時に自動リセット
- 朝/昼/夕/間食に自動仕分け — 記録時刻から判定して手動修正も可。同じ品目は表示時に「アルフォート ×3」とまとめます
- 摂取kcal推移グラフ — 直近 7/14/30 日を棒グラフで。目標ライン付きで、棒をタップするとその日の記録を編集できます
- iCloud同期 — SwiftData を CloudKit バックドで iPhone ↔ iPad
入れなかったもの
PFC分析、食事の採点、アドバイス、リマインド通知、食品DB、バーコード。全部入れていません。
このあたりを足すと「入力を頑張る」アプリに戻ってしまい、続かない理由そのものが復活します。機能を足す判断より、足さない判断のほうを多く下したアプリです。
技術構成
- SwiftUI + SwiftData(iOS 17+)
- WidgetKit + App Intents。App Group で SwiftData ストアをアプリ・ウィジェット・Siri で共有しているので、どこから記録しても残高が一致します
- 残高計算などのロジックは UI を持たない framework に集約し、3ターゲットから再利用
- カロリー推定は Claude(claude-haiku-4-5)。APIキーはサーバ保持で、Vercel 上のバックエンドプロキシ経由。App Attest で端末を検証しています。ユーザーがAPIキーを用意する必要はありません
- Swift Charts、StoreKit 2、XcodeGen
CloudKit 同期を入れると「全プロパティに宣言時デフォルト値が要る」「一意制約が張れない」といった制約が効いてきます。そのため「設定は常に1件」のような不変条件はアプリ側のマージ処理で守る、という作りになりました。このあたりは実装してみるまで気づきにくいポイントでした。
価格
無料(非パーソナライズ広告あり。IDFAは使っていません)。買い切り ¥300 で広告を全部消せます。運営費が Claude API の実費なので、そこを賄うための構成です。
