food tracker

A minimalist iOS meal logging app that favors speed over bloat.

Overview

Food Tracker is a responsive iOS meal-logging app built with React Native (Expo) and Supabase. It focuses on frictionless logging—fast entry, clean visuals, and building sustainable habits without calorie overwhelm.

Timeline: Jun 2025 – Jul 2025 Role: Solo dev (design + frontend + backend)

Design System

01 Typography

Style Font Size Weight
Screen Title System (SF Pro / Roboto) 22 Semi-Bold
Body (Entries) System (SF Pro / Roboto) 15 Medium
Pill Label System (SF Pro / Roboto) 14 Semi-Bold
Badge / Button System (SF Pro / Roboto) 14 Semi-Bold
Small Label System (SF Pro / Roboto) 12 Semi-Bold
Input Text System (SF Pro / Roboto) 16 Regular

Food Tracker uses platform system fonts for native feel and speed.

02 Colors

Brand
  • Brand (Milk Tea)
    #8A5A44
  • Accent — Breakfast
    #F4B651
  • Accent — Lunch
    #8AC6D0
  • Accent — Dinner
    #C78BA3
  • Accent — Snack
    #B48B78
Grayscale
  • Gray 900
    #111111
  • Gray 800
    #333333
  • Gray 700
    #555555
  • Gray 300
    #BBBBBB
  • White
    #FFFFFF

Problem

Meal trackers felt slow, cluttered, and overly calorie-centric. I wanted something I’d actually use daily—logging should take seconds, not minutes.

  • Too many taps to record a simple meal
  • Interfaces overloaded with nutrition fields I didn’t need
  • No quick way to tag meal type or backdate an entry

User Feedback

Early testers echoed the same frustrations:

  • “I just want to jot meals down fast—no calorie math.”
  • “Other apps feel heavy. After a week I stop logging.”
  • “If I forget, editing the date later should be easy.”

Solution

A minimalist flow built for speed and clarity:

  • One-line input → type and hit add (no modal maze)
  • Meal-type tags (Breakfast/Lunch/Dinner/Snack) → quick categorization without clutter
  • Date/time picker → log past meals or fix mistakes in seconds
  • Supabase sync → secure auth + real-time storage across devices
  • Input validation → prevents blanks/duplicates for cleaner history
React Native Expo Go Supabase Auth Postgres RTL + Jest (100% coverage)

Core Features

  • Fast entry: one-line input + meal-type tagging (Breakfast/Lunch/Dinner/Snack)
  • Date/time picker: log past meals or plan ahead
  • Supabase sync: secure auth + real-time storage (100+ entries tested)
  • Validation: prevents blank/duplicate inputs for cleaner logs
  • Tests: 100% coverage for stable releases and zero regressions

Implementation

Built with React Native (Expo) for rapid iteration and OTA updates. Supabase handles auth and Postgres storage with row-level security. UI state is kept lean to keep input latency near zero.

Results

  • Improved entry accuracy by ~60% with validation + clearer tags
  • Consistent daily logging due to sub-3-second entry flow
  • Confidence to iterate thanks to 100% test coverage

What’s next

Two upgrades are already in progress to make Food Tracker more fun and more useful:

1. Themes you can swap anytime. Right now the app uses a Milk Tea theme. Soon you’ll be able to switch between presets like Cat or even ??? if I add more later.

Milk Tea(current) Cat

2. AI Meal Prep. You’ll be able to say something like:

“I have chicken, spinach, and rice — plan meals from 10/7 to 10/14.”

It will:

  • Use what you already have before suggesting anything new
  • Build a plan for the exact date range you choose
  • Let you replace meals you don’t like with one tap
Input: pantry or cravings Input: date range Output: plan + grocery list

Both features will be added without changing the simplicity of the core logging flow.