# 🎬 MVVM-Riverpod Movies App

App Icon

A Flutter project demonstrating the **MVVM architecture** and **Riverpod state management** in a real-world application, to help developers understand how to build scalable and maintainable Flutter applications. --- ## About This is a Movies App built with clean architectural principles and serves as a practical reference for Flutter developers. It teaches you how to separate concerns across UI, business logic, and data layers using the **MVVM architecture** and manage state and data efficiently using **Riverpod state management**. --- ## Features | Feature | Description | |---|---| | 🏗️ MVVM Architecture | Clean separation of Model, View, and ViewModel layers | | 💧 Riverpod State Management | Efficient and scalable state management throughout the app | | 🎬 Movie Data | Display and manage movie listings | | 🧩 Clean Architecture | Separation between UI, business logic, and data layers | | 📁 Organized Structure | Well-structured project for easy navigation and scalability | --- ## What You Will Learn By exploring this source code, you will understand: - ✅ How to structure a Flutter app using **MVVM architecture**. - ✅ How to use **Riverpod** state management. - ✅ How **ViewModels** manage application state and business logic. - ✅ How to keep UI code **clean** and **maintainable**. - ✅ How to implement the **Repository** for clean data access. - ✅ How to create different types of **Models**. - ✅ How to implement different **conversion** techniques. - ✅ How to handle **loading and error states** properly. - ✅ **Best practices** for scalable and enterprise-grade Flutter applications. --- ## Getting Started ### Prerequisites - [Flutter SDK](https://docs.flutter.dev/get-started/install) installed - An IDE such as [VS Code](https://code.visualstudio.com/) or [Android Studio](https://developer.android.com/studio) ### Installation 1. **Clone the repository** ```bash git clone ``` 2. **Navigate to the project directory** ```bash cd ``` 3. **Install dependencies** ```bash flutter pub get ``` 4. **Run the application** ```bash flutter run ``` --- ## Support If you find this project helpful, please consider giving it a star ⭐