Restaurante is a premium, high-performance mobile application built with Flutter that allows users to discover, search, and manage their favorite restaurants. Designed with a sleek, modern UI and robust background services, it provides a seamless dining discovery experience.
- 🔍 Smart Search: Real-time restaurant discovery with debouncing and intelligent error handling.
- ❤️ Favorites System: Save your preferred restaurants locally for quick access, even when offline.
- 📅 Daily Recommendations: Native background tasks that notify you of a random restaurant suggestion every morning.
- 🌘 Dynamic Themes: Support for both Light and Dark modes with persistent settings using Shared Preferences.
- 💬 Community Reviews: Read detailed feedback from other diners and submit your own reviews directly from the app.
- 📦 Offline Capability: Robust handling of network availability with user-friendly guidance.
- ✨ Animated Experience: Rich UI featuring Lottie animations and custom splash screens for a premium feel.
| Category | Technology |
|---|---|
| Framework | Flutter |
| State Management | Provider |
| Local Database | Sqflite |
| Networking | http |
| Background Tasks | Workmanager & Android Alarm Manager |
| Notifications | Flutter Local Notifications |
| Storage | Shared Preferences & Path Provider |
| Animations | Lottie & Animated Text Kit |
The project follows a modular and clean architecture to ensure maintainability and testability:
lib/
├── common/ # Shared constants, styles, and themes
├── data/ # Local and remote data sources
├── model/ # Data models and DTOs
├── providers/ # Business logic and state management
├── screens/ # UI Pages (Main, Detail, Search, Favorites, Settings)
├── services/ # External API and System services
├── utils/ # Helper classes and extensions
└── widgets/ # Reusable UI components
Quality is a priority. The codebase includes a comprehensive test suite:
- Unit Tests: Validating
ApiServiceand variousProviderlogic. - Widget Tests: Ensuring UI components and error states (like
SearchScreen) behave correctly. - Integration Tests: End-to-end testing of critical user journeys.
To run the tests:
flutter test-
Clone the repository
git clone https://github.com/arifaizin/restaurante.git
-
Install dependencies
flutter pub get
-
Run the application
flutter run
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with ❤️ by Arif Aizin. Connect with me on LinkedIn or check out my Portfolio.