Meal Analyzer is a cross-platform app for analyzing meals, likely oriented around nutrition insights, portion tracking, or diet logging. Developed using Flutter, it targets Android, iOS, Linux, macOS, Windows, and web platforms.
- Multi-platform support (Android, iOS, Desktop, Web)
- Modular architecture with configuration, models, services, screens, and reusable widgets
- Easily customizable and extensible for meal-related analysis tasks
- Flutter SDK (preferably latest stable)
- A compatible IDE (VS Code, Android Studio, IntelliJ)
- Platform-specific dependencies as needed (see Flutter setup guide)
Before you run this app, please make sure to create a vars.env file in the root directory of this project. This file should contain your Google API key:
API_KEY=YOUR_API_KEYCaution: Do NOT commit the .env file to your version control system (e.g., Git). It contains sensitive information that should be kept private.
-
Clone the repository
git clone https://github.com/sgkouzias/meal_analyzer.git cd meal_analyzer -
Install dependencies
flutter pub get
-
Get platform-specific dependencies
For iOS:
cd ios pod install cd ..
For web: No extra steps required after
flutter pub get. -
Run the app
flutter run
You may be prompted to pick a device/simulator.
meal_analyzer/
├── lib/
│ ├── config/ # Application configuration files
│ ├── main.dart # Main entry point
│ ├── models/ # Data models (e.g. meal, nutrition)
│ ├── screens/ # Individual app screens/pages
│ ├── services/ # Service classes (data fetch, analysis logic)
│ └── widgets/ # Reusable UI components
├── android/ # Android-specific code
├── ios/ # iOS-specific code
├── linux/ # Linux-specific code
├── macos/ # macOS-specific code
├── windows/ # Windows-specific code
├── web/ # Web-specific code
├── test/ # Test files
├── pubspec.yaml # Flutter dependencies and metadata
└── README.md # This file
- Launch the app on your favorite device!
- Input your meal or relevant data as instructed in-app.
- Review the analysis screen for feedback, details, or recommendations.
- Place new pages in
lib/screens/. - Add data structures in
lib/models/. - Add service classes to
lib/services/. - Create reusable UI in
lib/widgets/. - Update configuration in
lib/config/.
- Formatting:
flutter format . - Linting: run
flutter analyze(settings defined inanalysis_options.yaml).
- Unit and widget tests are placed in the
test/directory. - To run all tests:
flutter test
Contributions are welcome! Please open issues or submit pull requests for improvements, bug fixes, or new features.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a pull request
This project is licensed under the terms described in the repository. See LICENSE if available.