Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mo7amedaliebaid/movies_riverpod
Flutter Multi Platform movies 🎬 app - clean architecture .
https://github.com/mo7amedaliebaid/movies_riverpod
clean-architecture clean-code dart flutter flutter-desktop flutter-linux flutter-ui freezed google-maps isar-database linux-app movies movies-api multiplatform multiple-themes responsive-design riverpod
Last synced: about 22 hours ago
JSON representation
Flutter Multi Platform movies 🎬 app - clean architecture .
- Host: GitHub
- URL: https://github.com/mo7amedaliebaid/movies_riverpod
- Owner: mo7amedaliEbaid
- License: apache-2.0
- Created: 2023-09-09T23:16:13.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-09T03:30:48.000Z (7 months ago)
- Last Synced: 2024-04-09T04:29:24.573Z (7 months ago)
- Topics: clean-architecture, clean-code, dart, flutter, flutter-desktop, flutter-linux, flutter-ui, freezed, google-maps, isar-database, linux-app, movies, movies-api, multiplatform, multiple-themes, responsive-design, riverpod
- Language: Dart
- Homepage:
- Size: 32.3 MB
- Stars: 28
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
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).
## 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`.
📄 **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.
- **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:- **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.## Screen Shots
#### Mobile.
##### Portrait.
##### Landscape.
#### Desktop "Linux".
### 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.