Food Noise Tracker - Awareness Through Logging

A mobile app that helps people track intrusive thoughts about food. Log the moment, rate the intensity and start spotting patterns. Built with iOS widgets, Apple Watch and Wear OS for logging when it matters most.

Food Noise Tracker - Awareness Through Logging Header

“Food noise” is the term for persistent, intrusive thoughts about food. Cravings that won’t quiet down. Mental negotiations about what to eat next. For some people it’s a constant background hum. For others it comes in waves. Either way, understanding the pattern is the first step to managing it.

Food Noise Tracker gives people a simple way to log those moments as they happen, rate their intensity and build up a picture of their triggers over time.

What the app does

The core loop is intentionally simple. You notice food noise. You open the app (or tap a widget or use your watch). You rate the intensity from 1 to 10. Done.

There’s no food diary. No calorie counting. No meal logging. The app tracks the noise itself, not what you eat. That distinction matters. It keeps the focus on awareness rather than restriction.

A short onboarding flow asks why you’re tracking and what you’re hoping to achieve, then gets out of the way. From there it’s four tabs: log, history, insights and settings.

Insights that reveal patterns

Where the app gets interesting is in the analytics. Over time your logged incidents build up a picture:

Calendar heatmap shows which days had the most food noise at a glance. Bright days stand out. Quiet days blend in. You can spot weekly rhythms without reading a single number.

Time of day patterns break down when your food noise peaks. Morning? Late afternoon? After dinner? The chart shows your personal pattern so you can plan around it.

Day of week analysis reveals whether weekdays or weekends are harder. For many people the structure of a working day suppresses food noise. Weekends are a different story.

Strength distribution shows how often you log mild versus intense episodes. A shift toward lower numbers over time is a concrete sign of progress.

Streak tracking counts both sides of the coin: your current logging streak (commitment) and your longest quiet streak (improvement). Both matter, and the app surfaces them side by side.

Meeting users where they struggle

The moments when food noise hits hardest are exactly the moments when opening an app feels like too much effort. So we brought the logging experience to the surfaces people are already looking at.

iOS widgets

A home screen widget lets you log an incident without opening the app. One tap, rate the strength, done. The widget also shows today’s count and your current streak so you can check in visually without any interaction.

We built the widgets in SwiftUI using shared App Groups to sync data between the widget and the main app. When you log from a widget the data flows back to the React Native app seamlessly.

Apple Watch and Wear OS

The Watch experience gives you the same logging capability from your wrist on both Apple Watch (SwiftUI) and Wear OS (Jetpack Compose). Each native watch app shows today’s stats, lets you log with a strength rating and displays your streak. On Apple Watch, complications put your daily count right on your watch face.

Building both watch experiences was important because food noise often strikes when you’re away from your phone. Standing in a queue. Walking past a bakery. Sitting in a meeting. Your watch is always there, regardless of which phone you carry.

Deep linking and Shortcuts

The app supports deep links so logging can be triggered from Shortcuts, automations or other apps. A URL like food-noise-tracker://log?strength=7 creates an incident directly.

Daily reminders

An optional daily notification nudges you to check in. It’s opt-in, scheduled locally, there’s nothing to register with, and the schedule lives on the device.

Technical approach

React Native with native extensions

The main app is built with React Native and Expo, using Expo Router for the tabbed interface. State management is Zustand with AsyncStorage persistence, keeping all data on-device. Theming is powered by Unistyles 3.0 with light, dark and system modes, and haptic feedback confirms every log.

The iOS widget and Apple Watch app are written in native SwiftUI. The Wear OS companion is written in Jetpack Compose. They communicate with the React Native app through a custom native module (FNSharedStore) backed by shared App Groups on iOS and equivalent shared storage on Android. When the app resumes from the background it merges any incidents logged from a widget or watch, deduplicating by ID so nothing gets lost or counted twice.

This hybrid architecture gives us the best of both worlds. React Native for rapid cross-platform development across the main app. Native SwiftUI and Compose for the deep platform integrations that only make sense on-device.

Privacy as architecture

Food Noise Tracker stores absolutely nothing externally. There are no user accounts. No sign-in. No server. No analytics. No crash reporting. All data lives on your device in local storage, and the app supports one-tap data export (plain text) and full data deletion from the settings screen.

This wasn’t a compromise. It was the design. People tracking something as personal as their relationship with food need to trust that nobody else can see their data. The simplest way to guarantee that is to never collect it in the first place.

The iOS Privacy Manifest declares zero collected data types and tracking is set to false. That’s not a policy decision. It’s the technical reality.

Internationalisation

The app uses i18n-js with all user-facing text externalised to translation files. Currently English only but the architecture supports additional languages without code changes.

Testing

Comprehensive test coverage with Maestro for end-to-end flows and Vitest for unit tests. The E2E suite covers the full user journey: onboarding, logging, history browsing, insights viewing and data deletion.

Why this matters

Mental health apps are a growing category but most of them ask a lot of the user. Journals want paragraphs. Mood trackers want multiple data points. CBT apps want you to work through exercises.

Food Noise Tracker asks for a number between 1 and 10. It meets people at their lowest-effort moment and turns that tiny input into genuinely useful insight over time.

If you’re building a health or wellness app, particularly one that needs to work across iPhone, Android, Apple Watch, Wear OS and widgets, get in touch or book a call. We’d love to talk about what we’ve learned building native platform integrations alongside React Native.

iOS + Android + Watch
Platforms
Zero (all on-device)
Data collection
React Native + SwiftUI + Jetpack Compose
Stack

Food noise is something a lot of people experience but rarely talk about. We wanted to build a tool that makes it easy to log those moments without judgement, then helps you understand the patterns behind them.

Michael Hayes's avatar
Michael Hayes – Co-founder of Add Jam
App policies: Privacy Policy
How to Deploy Your Vibe Coded Project
Latest post from the Add Jam blog
How to Deploy Your Vibe Coded Project

April 7, 2026 by Michael Hayes

You've vibe coded an MVP with Claude or Cursor. Now how do you actually get it online? A non-technical guide to deployment options in 2026.

We take products from an idea to revenue

Add Jam is your plug in team of web and mobile developers, designers and product managers. We work with you to create, ship and scale digital products that people use and love.

Hello, let's chat 👋
michael hayes avatar photo

Michael Hayes

Co-founder of Add Jam

Hey! Co-founder of Add Jam here. I'm available to chat about startups, tech, design, and development. Drop me a message or book a call in my calendar at a time that suits you.