
Brief
NourishFit is an adaptive health management system that connects diet intake and exercise consumption through a dynamic feedback loop.
Instead of asking users to manually interpret calorie data and re-plan after disruptions, NourishFit generates a clear daily recovery suggestion based on real behavior.
Core Capabilities: Human–AI Interaction · Cognitive Load Reduction · Explainable AI · Adaptive Systems ·
SwiftUI · WatchOS · Coze AI Agents · HealthKit · A/B Testing · Multi-Device Interaction
Term Project
Duration: 16 weeks
My role:
Defined the problem, target users, and MVP scope.
Synthesized research into product requirements and UX principles.
Designed core IA and flows (onboarding, logging, daily update, feedback).
Built and iterated high-fidelity Figma prototypes from usability findings.
Year: 2025
Problem Statement
Even when users understand daily recovery suggestions, they often forget to act on them because the guidance only lives inside the mobile app. The core challenge now is delivering low-friction reminders at the right moment and on the right surface so users can notice and act without opening the app.

Problem Context
Market reality
Existing health apps treat diet and exercise as isolated features. When users overeat, skip a workout, or face schedule changes, they are left to calculate compensation themselves. This forces users into the role of planner and leads to mental fatigue and abandonment.
What we observed
Our Sprint 2–3 research confirmed that users are not limited by motivation, but by mental fatigue from constant micro-decisions, such as:
-
“Should I compensate today?”
-
“Food or exercise — what should I adjust?”
-
“Did I ruin my week?”
Core problem
How might we help users recover from disruptions without forcing them to think, calculate, or restart?
Behavioral Insights
Qualitative Interviews
Competitive Analysis
Survey
Insight 1 — Users want one clear next step, not dashboards
Insight 2 — Proactive guidance reduces cognitive effort
Insight 3 — Too many features or explanations reintroduce decision fatigue
This reframed our design focus away from motivation and coaching, toward cognitive load reduction and trust calibration.
Value Proposition Canvas

Click to open the picture
What the VPC clarified
Users’ core job is recovering after disruptions, not tracking perfectly
Pain is driven by mental effort, not lack of motivation
Value comes from one clear daily suggestion, not dashboards
Business Model Canvas

How the BMC guided scope
Target user: busy beginners with inconsistent routines
Value focus: low cognitive load, fast feedback, optional explanation
Non-goal (intentionally excluded): advanced personalization, monetization logic, long-term analytics
Click to open the picture
Design Goal
Primary Goal
Reduce cognitive effort during recovery moments by giving users one clear daily recommendation.
Design Constraints
Avoid feature overload
Balance automation and control
Provide explanations only when users ask for them
Minimize interaction cost during busy or mobile contexts
Storyboard
Primary Use Case

Generated by Jimeng
Sarah, a frequent traveler, uses NourishFit to maintain a strict 1,500 kcal diet. During a corporate dinner, she uses the AI Plate-Scanning feature to instantly analyze a steak meal. The app identifies components, calculates the 950 kcal intake, and provides Nutritional Insights compared to her daily goals. This allows Sarah to make data-driven dining decisions and maintain her health goals even on the road.
Early Learning Prototype
Primary Hypothesis
If the system proactively provides recovery guidance after disruptions, can users return to action with less cognitive effort?
Home

Suggestion

Quick Log

Dashboard

Profile

Usability Testing
Validating Cognitive Effort and Action
After the prototype design, we conducted a formative usability test to evaluate whether the experience genuinely reduced cognitive effort, rather than shifting complexity to a different interaction step.
At this stage, the goal was not to compare design alternatives, but to understand how users interpreted, reasoned, and acted when encountering proactive recovery guidance for the first time.
Key Questions
Can users understand the system’s recommendation without additional explanation?
Do users hesitate or pause before taking action?
Where does cognitive friction still appear, even when guidance is clear?
Key Findings
Users clearly understood the intent of the proactive recovery suggestion and no longer felt the need to calculate compensation manually.
The presence of a single, concrete recommendation reduced uncertainty compared to traditional dashboard-style tracking.
However, moments of hesitation still appeared when users encountered dense information or multiple decision points within the same view.
Users expressed a desire to act quickly first, and reflect or understand details later, if time allowed.
A/B Testing
After refining the prototype’s interaction logic and visual structure, we ran an A/B test to understand how explanation depth affects decision speed, trust, and follow-through in adaptive health guidance.
Participants
12 users participated (6 per condition), reflecting our target audience rather than experienced fitness enthusiasts.
Test Conditions
A — No Explanation

-
Single combined calorie balance view
-
Direct AI Coach actions on the Home screen
-
High-level recommendations with fast action paths
B — With Explanation

-
Separate intake and exercise progress views
-
Detailed training and dietary plans
-
Expandable “Why this recommendation” explanation
Results

Based on the A/B testing results, we moved forward with Version B.
Although Version A enabled faster actions, Version B consistently produced higher clarity, stronger perceived intelligence, and lower rejection rates. Over time, these factors were more critical for sustaining user trust in an adaptive health system.
Architecture
iOS + Serverless + AI Agents

-
iOS Client: SwiftUI + MVVM
-
Backend: Firebase (Auth, Firestore, Cloud Functions for Python Proxy)
-
IoT Integration: Apple HealthKit for synchronizing activities data
This architecture supports:
-
Asynchronous AI processing with clear loading states
-
Replaceable AI logic with fallback strategies
-
Rapid iteration without tightly coupling UI to model behavior
Final Prototype

Home Screen
The Home page provides a quick overview of intake, exercise, and a summarized AI Coach message.
It supports reflection and habit reinforcement, but avoids action buttons to reduce decision friction.
Today’s Suggestion Page
​
The Today’s Suggestion page provides one clear daily recovery recommendation based on the user’s calorie balance and activity data.
Users can accept, regenerate, edit, or delay the plan, keeping control without planning from scratch. An optional “Why AI Recommended This” section explains the reasoning when needed, without slowing action.
Food Scan
​
The Food Scan screen allows users to log meals by taking a photo.
After capturing an image, the system automatically analyzes the meal and identifies individual ingredients. It estimates total calories as well as per-ingredient calorie and nutrient values, including protein, fiber, and micronutrients.
This screen replaces manual food entry and significantly reduces logging effort.


Meal Analysis
​
The Meal Analysis screen presents a structured breakdown of the recognized ingredients.
For each ingredient, the interface shows estimated calorie values and key nutritional information. At the bottom of the screen, the system generates concise nutritional insights that summarize the overall meal profile and highlight areas for improvement.
This screen supports understanding without requiring users to interpret raw nutritional data.
Activity & Calorie Burn Integration
​
NourishFit synchronizes activity and calorie expenditure data directly from Apple Health.
This integration enables real-time updates of calorie burn throughout the day, allowing the system to continuously maintain an accurate energy balance between intake and activity.
The app automatically reflects updated activity data without manual input.


Apple Watch Companion
​
The Apple Watch companion app provides a lightweight, glanceable interface for monitoring daily progress.
Users can view current calorie burn and overall status directly from their wrist, without opening the mobile app. The watch also serves as the system’s IoT device, supplying high-frequency activity data to support more precise calorie expenditure estimates.
This interface prioritizes visibility and convenience during movement or busy moments.
AI & Backend
AI Orchestration (Backend Logic)
Why a Proxy?
Keeps API keys secure (server-side) and abstracts Coze complexity.
Challenge
Coze API is asynchronous (returns "in_progress" before "completed").
Solution
Implemented a Polling Mechanism in Python.
Data Parsing
Cloud Function parses the unstructured Chat response into strict JSON for the iOS client.

IoT Integration (Apple Watch)

Platform
Apple Watch via HealthKit.
Mechanism
HKObserverQuery + enableBackgroundDelivery.
Interaction
-
Watch records data (Active Energy).
-
System wakes up the iOS app in the background.
-
UI updates automatically via Combine publishers.