A Flutter application that helps you decide what to eat based on cuisine preferences and meal times. The app provides food recommendations and supports multiple languages.
- Random food selection based on cuisine and meal time
- Cuisine filtering
- Smart meal time detection based on current time
- Recommendations for similar foods
- Celebration animations when food is selected
- Multi-language support (English, Chinese, Japanese, French, Spanish, Portuguese)
- Flutter: Cross-platform UI framework allowing the app to run on iOS, Android, Web, and macOS
- Dart: Programming language for Flutter app development
-
Flutter Bloc / Cubit:
- Used for application state management
- Multiple Cubits implemented:
LocaleCubit: Manages language settingsCuisineCubit: Manages cuisine selectionFoodCubit: Manages food selection and recommendations
-
Equatable:
- Simplifies comparison logic for Bloc/Cubit state classes
- Used in
LocaleState,CuisineState, andFoodState
- Flutter Intl:
- Internationalization through
flutter_gen/gen_l10n/app_localizations.dart - Support for multiple languages using ARB files (
app_en.arb,app_zh.arb, etc.)
- Internationalization through
-
Material Design:
- UI built with Flutter's Material components
- Custom themes and color schemes
-
AnimatedTextKit:
- Creates text animation effects during food selection
-
Confetti:
- Displays celebration effects after food selection
- Controlled via
ConfettiController
-
Layered Architecture:
blocs: State management logicmodels: Data models (e.g.,Foodclass)screens: UI interfacesutils: Utility classes and helper functionsl10n: Internationalization resources
-
BLoC Pattern:
- Business Logic Components separate UI and business logic
- UI integration via
BlocProviderandBlocBuilder
- Local Data:
- Food data defined directly in code (
FoodDataclass) - No external database or API dependencies
- Food data defined directly in code (
This app can run on multiple platforms:
- iOS
- Android
- Web
- macOS
- Ensure you have Flutter installed on your machine
- Clone this repository
- Run
flutter pub getto install dependencies - Run
flutter runto start the app on your connected device or simulator
Here are some screenshots of the application:


