NomAI is an open-source Flutter app that helps you track meals, analyze nutrition, and get AI-powered guidance tailored to your goals. It combines quick logging, powerful analytics, and a friendly chat interface to make healthy eating simple and sustainable.
Built with Python , Fastapi , Gemini , PydanticAI ,Supabase , OpenAI , Flutter, Firebase, and a lightweight backend for AI chat, NomAI works on both iOS and Android.
Backend Repo : https://github.com/Pavel401/NomAI
Note: This project is actively evolving. Contributions are welcome!
- Meal logging with nutrition breakdowns (calories, protein, carbs, fat, water)
- AI chat assistant for meal analysis, planning, and healthy tips
- Monthly analytics: charts, daily breakdown, summary stats
- Goals and personalization (dietary preferences, allergies, targets)
- Image upload and recognition to speed up logging
- Social sharing of meals and achievements
- Modern, responsive UI with smooth interactions
Below is a gallery of the current screenshots in static/screenshots/.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- Android (APK): see the Releases tab
- iOS: TestFlight link (if available)
If you haven’t published builds yet, you can run locally by following the setup instructions below.
- Flutter 3.35.x (Dart 3)
- Firebase (Auth, Firestore, Storage, Remote Config)
- AI backend (FastAPI/Python) with provider integrations (OpenAI, Gemini)
See full app dependencies below and in pubspec.yaml.
- Repository: https://github.com/Pavel401/NomAI
- Default API base URL (configurable):
https://nomai-production.up.railway.app- Change in
lib/app/repo/agent_service.dart
- Change in
Core
UI & UX
- sizer
- fl_chart
- flutter_markdown
- cached_network_image
- photo_view
- lottie
- percent_indicator
- linear_progress_bar
- flutter_svg
- flutter_bounceable
- flutter_easyloading
- material_symbols_icons
Media & Sharing
Firebase
Utilities
- intl
- logger
- icons_launcher
- change_app_package_name
- smooth_page_indicator
- timeline_date_picker_plus
- google_fonts
- google_sign_in
- shared_preferences
- camerawesome
Dev (build/test/tools)
lib/app/modules/...contains feature modules (Home, Chat, Analytics, Scanner, Settings)flutter_blocfor authentication/user data flows;GetXfor some controllers (e.g., scanner, chat)Firebasestores users, nutrition records, and computed monthly analytics- AI chat backed by a lightweight HTTP API
Key files:
- Chat view:
lib/app/modules/Chat/Views/chat_view.dart - Analytics view:
lib/app/modules/Analytics/views/analytics_view.dart - Home view:
lib/app/modules/Home/views/home_view.dart - Scanner controller:
lib/app/modules/Scanner/controller/scanner_controller.dart - Agent service (AI backend):
lib/app/repo/agent_service.dart
- Flutter 3.35.0 (FVM optional)
- Firebase project (Android + iOS apps)
- Optional: A running AI backend for chat (HTTP API)
- Clone and fetch packages
git clone
cd MealAI
# With FVM (recommended to match exact version)
fvm install 3.35.0
fvm flutter pub get
# Or with system Flutter 3.35.x
flutter pub get
- Firebase configuration
- Android: add your
google-services.jsontoandroid/app/ - iOS: add your
GoogleService-Info.plisttoios/Runner/ - Ensure your Firebase project has Authentication, Firestore, and Storage enabled
- Configure AI backend (optional, required for chat)
- Update the base URL in
lib/app/repo/agent_service.dart:
static const String _baseUrl = 'https://your-backend.example.com';
- Run the app
# With FVM
fvm flutter run
# Or with system Flutter
flutter run
# Android APK
flutter build apk --release
# iOS
flutter build ios --release
Optional assets tooling:
- App icons:
dart run icons_launcher:create - Splash screen:
dart run flutter_native_splash:create
lib/
app/
components/ # Reusable UI components
constants/ # Colors, theme, constants
models/ # Data models (Auth, Agent, AI)
modules/
Home/
Chat/
Analytics/
Scanner/
Settings/
repo/ # Firebase and agent service repositories
services/ # Domain services
utils/ # Utilities/helpers
assets/
png/ # Logo and images
svg/ # SVGs
static/
screenshots/ # Add app screenshots for README


















