Coder Social home page Coder Social logo

mo7amedaliebaid / movies_riverpod Goto Github PK

View Code? Open in Web Editor NEW
31.0 2.0 3.0 33.1 MB

Flutter Multi Platform movies ๐ŸŽฌ app - clean architecture .

License: Apache License 2.0

Kotlin 0.04% Swift 0.22% Objective-C 0.01% Dart 94.63% HTML 0.60% CMake 2.85% C++ 1.41% C 0.22%
clean-architecture dart flutter movies movies-api riverpod freezed google-maps isar-database multiple-themes

movies_riverpod's Introduction

desktop_linux.mp4

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.

Download Apk


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.

movies_riverpod's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

movies_riverpod's Issues

TODO

1- Change Desktop Details Screen.
2- Search Functionality.
3- Movies Trailers.

Todo

1- search functionality.
2- create wrap widget for bookmarks and upcoming screens for desktop.
3- change desktop design for details screen .
4- add notifications with sound, Local Notifications package .
5- add nearby cinemas, Google Maps api.
6- write a better readme.
7- build new apk release.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.