Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mo7amedaliEbaid committed Jan 18, 2024
2 parents d001789 + 320b7c5 commit cd2a855
Showing 1 changed file with 63 additions and 20 deletions.
83 changes: 63 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,75 @@
https://github.com/mo7amedaliEbaid/movies_riverpod/assets/131966482/e6e4c60f-1ba1-43fd-8b2c-31aea4451299


# movies_riverpod

movies_riverpod is a versatile Flutter app designed for seamless movie exploration across different platforms. The app follows a Clean Architecture pattern, ensuring a modular and maintainable codebase. It has been successfully tested on mobile platforms (Android, iOS) and desktop (Linux).

https://github.com/mo7amedaliEbaid/movies_riverpod/assets/131966482/e6e4c60f-1ba1-43fd-8b2c-31aea4451299
## Directory Structure.

📁 **core:** Houses fundamental components and shared files essential for the application, such as the main app configuration (`app.dart`), error handling (`observers.dart`), extensions, constants, and other core functionalities.

📁 **di (Dependency Injection):** Manages the dependency injection logic for improved code organization and testability. The `injector.dart` file resides here.

📁 **features:** Organized into three subdirectories: `data` for data-related logic and repositories, `domain` for the use cases, and `presentation` for UI screens and widgets. This follows a clean architecture approach, promoting separation of concerns.

📁 **models:** Contains the data models used throughout the application, such as `movies.dart` and `casts.dart`.

# movies_riverpod

- Flutter MultiPlatform Movies App.
- It's been successfully tested on Mobile (Android, Ios), and Desktop(Linux).
- Clean Architecture.
- Riverpod State Management.
- Dependency injection.
- Multiple Themes.
- Responsive Design (Mobile [Portarit , Landscape] , Desktop).
- Bookmarks.
- Google Maps "Removed for now".
- Upcoming Movies Screen.
- Trending Movies Screen
- Home Screen.
- Movie Details Screen.
- Now Showing movies.
📄 **main.dart:** The entry point of the application, where the execution begins. It imports and initializes necessary components to kickstart the Flutter app.




## Features

- **Clean Architecture:** The project adheres to Clean Architecture principles, promoting separation of concerns and maintainability.

- **Multiplatform Compatibility:** Enjoy a consistent experience on mobile (both portrait and landscape) and desktop (Linux).

- **State Management with Riverpod:** Leverage Riverpod for efficient and scalable state management.

- **Dependency Injection:** Implement dependency injection for better code organization and testability.

- **Multiple Themes:** Choose from a variety of themes to customize the app's appearance according to your preferences.

- **Responsive Design:** Experience responsive design that adapts to different screen orientations on mobile and desktop.

- **Bookmarks:** Save your favorite movies for quick access and reference.

- **Upcoming Movies Screen:** Stay informed about the latest upcoming releases.

- **Trending Movies Screen:** Explore the current trending movies in the app.

- **Home Screen:** Navigate seamlessly through the app's main screen for a user-friendly experience.

- **Movie Details Screen:** Get detailed information about each movie, enhancing your viewing experience.

- **Now Showing Movies:** Stay updated on movies currently being screened.

## Demo Video
- **Track Your Activity:** Utilize the "Notifications" feature to keep a record of your interactions within the app.

## Dependencies
The project utilizes a range of dependencies to enhance functionality and streamline development. Some key dependencies include:

<a href="https://youtu.be/Nr54-TYBIZU"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Logo_of_YouTube_%282015-2017%29.svg/2560px-Logo_of_YouTube_%282015-2017%29.svg.png" width="110"></img></a>
- **flutter_riverpod:** State management library for Flutter.
- **dio:** HTTP client for making network requests.
- **flutter_svg:** SVG rendering library for Flutter.
- **freezed:** Code generation for immutable classes.
- **flutter_screenutil:** Screen adaptation utility for responsive design.
- **go_router:** Routing library for Flutter.
- **shimmer:** Loading animation library for a polished UI.
- **cached_network_image:** Caching library for network images.
- **shared_preferences:** Local storage for persisting simple data.
- **isar:** High-performance, easy-to-use NoSQL database for Flutter.
- **get_it:** Simple service locator for dependency injection.

## Development Dependencies
Key development dependencies include:

- **build_runner:** Code generation tool for Flutter.
- **json_serializable:** JSON serialization/deserialization for Dart objects.
- **isar_generator:** Code generation for Isar database.
- **auto_route_generator:** Code generation for routing with auto_route.


### Download Apk
Expand Down Expand Up @@ -74,9 +113,13 @@ https://github.com/mo7amedaliEbaid/movies_riverpod/assets/131966482/e6e4c60f-1ba
<img src="https://github.com/mo7amedaliEbaid/movies_riverpod/blob/72d21e9e3abd2bce283c60d1291014a6a76b86e7/screenshots/desktop/desk2.png" width="670" />
<img src="https://github.com/mo7amedaliEbaid/movies_riverpod/blob/72d21e9e3abd2bce283c60d1291014a6a76b86e7/screenshots/desktop/desk6.png" width="670" />
<img src="https://github.com/mo7amedaliEbaid/movies_riverpod/blob/72d21e9e3abd2bce283c60d1291014a6a76b86e7/screenshots/desktop/desk5.png" width="670" />
<img src="https://github.com/mo7amedaliEbaid/movies_riverpod/blob/46c4fcb02b55b9c9952ee43c9b1a0824bd8b96e1/screenshots/desktop/desk7.png" width="670" />
</p>

### Getting Started
To get started with the project, follow these steps:

- Clone the repository.
- Install dependencies using flutter pub get.
- Run the app on your preferred platform using flutter run.


0 comments on commit cd2a855

Please sign in to comment.