Yummify: A Fully-functional Restaurant Menu App using Flutter
Yummify
Yummify is a fully-functional restaurant menu app to demonstrate how we can make a scalable, and maintainable app in an understandable manner using an MVVM inspired architecture in Flutter.
Screenshots
Phone screenshots:
| 1 | 2 | 3 |
|---|---|---|
| 4 | 5 | 6 |
|---|---|---|
Tablet screenshots:
| 1 | 2 | 3 |
|---|---|---|
| 4 | 5 | 6 |
|---|---|---|
App Features:
- Flutter + REST API (Backend Server, Storage)
Url: http://185.223.93.215/login | Test account: operator@gmail.com / secret - Use Stacked pattern
- Responsive (Mobil + Tablet)
- User-friendly interface
- Clean Architecture
- Custom resuable widgets
- Restaurant Categories
- Category meals with bottom sheet based on content height
- Use of local storage (Hive)
- Make your order and view it from admin panel
- More...
I plan to add more in the future (PRs welcome!).
Future Roadmap:
- Polish the UI
- Light/Dart Stacked Theme
- Add more screens/features/functionalities
Installation
- Clone the repo
git clone https://github.com/Ruslanbek0809/Yummify.git - And then we can use the normal build and run procedure
flutter pub get flutter run - Some files like
*.g.dart,*.iconfig.dartare auto generated. If there is any issue from these files just run this command to regenerate them.flutter pub run build_runner build --delete-conflicting-outputs
Packages
This repository makes use of the following pub packages:
| Package | Version | Usage |
|---|---|---|
| dio | ^4.0.6 | API* |
| connectivity_plus | ^3.0.2 | Network* |
| stacked | ^3.0.1 | State & Architecture* |
| stacked_services | ^0.9.9 | State & Architecture Services* |
| stacked_hooks | ^0.2.2 | State & Architecture Tool* |
| hive | ^2.2.3 | Storage* |
| hive_flutter | ^1.1.0 | Storage* |
| hive_generator | ^2.0.0 | Code Generation for Storage* |
| shared_preferences | ^2.0.15 | Persistent Storage* |
| logger | ^1.1.0 | Logging* |
| flutter_hooks | ^0.18.5+1 | Tool* |
| easy_localization | ^3.0.1 | Localization* |
| collection | ^1.17.0 | Tool* |
| flutter_launcher_icons | ^0.11.0 | Tool* |
| json_annotation | ^4.7.0 | Tool* |
| build_runner | ^2.3.0 | Code Generation for Others* |
| stacked_generator | ^0.7.15 | Code Generation for Stacked* |
| json_serializable | ^6.5.4 | Code Generation for JSON* |
| cached_network_image | ^3.2.3 | Others* |
| flutter_screenutil | ^5.6.0 | Others* |
| carousel_slider | ^4.2.1 | Others* |
| flutter_svg | ^1.1.6 | Others* |
| flutter_spinkit | ^5.1.0 | Others* |
| flash | ^2.0.5 | Others* |
| shimmer | ^2.0.0 | Others |
| bottom_sheet | ^3.1.2 | Others* |
| badges | ^2.0.3 | Others* |
| lottie | ^2.2.0 | Others* |
| dropdown_button2 | ^1.9.2 | Others* |
*Recommended to keep regardless of your project.
Conclusion
I will be happy to answer any questions, please feel free to submit an issue and/or pull request ?
If you liked my project, don’t forget to ⭐ star the repo to show your support.
License
MIT © Ruslanbek