
.env.i / a in the Expo terminal to launch a simulator.App.js Application shell, providers, navigation, theme selection, connectivity handling, and paywall setup screens/ Product surfaces including scan, history, insights, onboarding, account, and support screens screens/providers/ Provider-specific scan handlers, model selection, and search-backed analysis logic contexts/ Shared app services such as hidden web scraping, scan status, and time zone handling userContext.js User provisioning and API-key retrieval through the hosted backend function ios/ / android/ Native projects generated for the Expo app __tests__/ Jest setup and screen-level test scaffolding README_VISUALIZATION.md Focused notes for the visualization subsystem used by search-assisted scansMacroScan/ directory is an older scaffold preserved as reference material.App.js:FoodScanScreen Main image capture, scan-mode selection, and result generation flow Insights InsightsV2 Trend views and summary analytics built from saved scan data History HistoryScreen Timeline of past scans and saved nutrition results Settings SettingsScreen Feature toggles, provider settings, and account-related app preferences Profile ProfileScreen User profile data and saved account statescreens/FoodScanScreen.js is the center of the product. It coordinates:fast, accurate, and searchscreens/providers/models.jsscreens/providers/. The code maps scan modes onto different model families, allowing the same UI to switch between:screens/providers/WebSearchProvider.js handles the search-backed workflow, while contexts/WebScraperContext.js serializes hidden WebView scraping work that feeds additional context into the nutrition result. Brave Search is used as the API-backed search source configured from .env.AsyncStorage stores scan history, onboarding state, selected provider, selected model, usage counters, feature flags, and pieces of account state that are used to shape the first screen a user sees when the app opens.UserProvider manages user creation, update, deletion, and backend key distributionIAPProvider manages in-app purchase stateTimeZoneProvider syncs local time-zone informationScanStatusProvider tracks scan-state signals used across the tab shellWebScraperProvider coordinates background search and scraping workscreens/InsightsV2.js and the history/profile screens read persisted user and nutrition records rather than depending on a separate analytics service.react-native-iap state exposed through IAPContextApp.jsdistributeApiKeynpm start Launch the Expo development server npm run ios Run the app in the iOS simulator npm run android Run the app in the Android emulator or connected device npm run web Open the Expo web target npx expo export --platform ios Produce an iOS export bundlefirebaseConfig.js reads Firebase values from the Expo public environment variables listed above.README_VISUALIZATION.md documents the visualization store and search-result progression in more detail.Posted Jul 24, 2026
Built and shipped an App Store nutrition scanner that estimates calories and macronutrients from food photos using React Native, Expo, and AI providers.
0
1