Skip to content
Pre-qualified Government of Canada supplier Supply Arrangement CW2432010 HQ Châteauguay · Greater Montreal
CASE STUDY · MOBILE APPS

A photo of the plate, a decision in seconds.

An iOS calorie counter that reads a meal from a single photo, estimates calories and macros, then returns an eat, maybe or skip verdict against what is left of the day. No account, no subscription.

Platform

iOS (iPhone & iPad)

Industry

Mobile Apps · Health & Fitness

Services

iOS Development, AI Integration, UI/UX Design

Goal

Turn a photo of a meal into a calorie and macro estimate carrying a clear verdict

The challenge.

Food tracking fails on friction. Searching a database, hunting for a barcode or opening an account before a single meal is logged are all places where people give up, and the number that comes back still leaves the real question unanswered: does this dish fit the rest of my day? The brief was to remove every one of those steps. A meal had to be logged from one photo, in seconds, with no sign-up, and the result had to be a decision rather than a raw figure. That put three constraints on the build at once. The estimate comes from an AI reading a photo, so the interface had to be genuinely useful without overstating its precision. The app deals with food and body weight, so it had to state plainly that it offers nutrition estimates for general informational and wellness purposes and is not medical, dietary or health advice. And because a meal photo is personal data, the product had to work with no account, no ads and no third-party tracking.

THE SOLUTION

One photo, one verdict.

We built the app around a single loop: point the camera, read the estimate, add it to the diary or skip it. Everything else in the product exists to make that loop worth repeating, and everything optional was left genuinely optional.

  • Photo-first estimation The AI recognizes the dish and returns calories along with protein, carbs and fat in seconds. No database search, no barcode hunting, and manual entry stays available at any time.
  • A verdict, not just a number Every scan resolves to eat, maybe or skip, measured against the calories left for the day. The user reads one badge instead of doing arithmetic at the table.
  • Private by design No account, no email and no sign-up: the app runs on an anonymous profile held on the device. Meal photos are processed only to estimate nutrition and are never stored, and there are no ads and no third-party tracking.
  • Credits instead of a subscription Scans run on credits. Free scans to try it, then one-time Scan packs when more are needed, with no subscription and no auto-renew to cancel.
CalCam AI scan result identifying a grilled chicken bowl at 540 calories with a green EAT verdict badge and protein, carbs and fat tiles

Key features.

App screenshot of the dark camera view with a framing reticle over a plate
Photo scan
App screenshot of the Today dashboard with a calories-left ring, protein, carbs and fat bars, and the day's meal list
Today diary
App screenshot of the Trends tab with a 7-day weight chart and the last 7 days of calories against goal
Weight trends
App screenshot of the daily goal setup calculating a calorie target and macro split from age, height, weight and activity
Optional daily goal

The result.

CalCam AI reached the App Store in June 2026: free, universal across iPhone and iPad, rated 4+, with scans paid for in one-time packs rather than a subscription. The project is a compact statement of the approach we keep returning to, an AI model doing one job well, wrapped in an interface that turns its output into a decision the user can act on, and a privacy posture clear enough to state in a single line. The disclaimer is part of that design rather than fine print: CalCam AI provides nutrition estimates for general informational and wellness purposes, it is not medical, dietary or health advice, estimates may not be exact, and medical or dietary decisions belong with a qualified professional.

CalCam AI: Calorie Counter official app icon Download on the App Store ↗