# 🎬 MVVM-Riverpod Movies App
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 ⭐