usamaaelgendy/Movies-App-Clean-Architectures-
Flutter movies app built with Clean Architecture, BLoC, get_it and dartz, using the TMDB API.
- Stars
- 119
- Forks
- 23
- Last push (UTC)
- Sep 27, 2026
- Project status
- Active
LanguagesDartHTMLRubySwiftKotlinObjective-C
Technical topics
Dependencies used
Dependency list 14 items
- flutter
{"sdk":"flutter"} - cupertino_icons
^1.0.8 - equatable
^2.0.7 - dio
^5.7.0 - dartz
^0.10.1 - flutter_bloc
^8.1.6 - get_it
^8.0.2 - animate_do
^3.3.4 - cached_network_image
^3.4.1 - carousel_slider
^5.0.0 - google_fonts
^6.2.1 - shimmer
^3.0.0 - flutter_testDevelopment
{"sdk":"flutter"} - flutter_lintsDevelopment
^5.0.0
Rankings
Original README
English project snapshot. Visit GitHub for the latest content.
Expand / collapse project README
Movies App — Flutter Clean Architecture
A Flutter movies app built with Clean Architecture and BLoC, using the TMDB API: now playing, popular and top-rated lists, movie details and recommendations.
Architecture
lib/
├── core/ # errors, network constants, service locator, base use case
└── movies/
├── data/ # remote data source (Dio), models, repository implementation
├── domain/ # entities, repository contract, use cases
└── presentation/ # BLoCs, screens, components
- Domain holds the entities, the repository contract and one use case per action.
- Data implements the repository with a Dio remote data source and returns
Either<Failure, T>(dartz). - Presentation uses
flutter_bloc; dependencies are wired withget_it.
Run
The app needs your own TMDB API key (free from your TMDB account settings). It is read at build time — no key is stored in the repository:
flutter pub get
flutter run --dart-define=TMDB_API_KEY=<your_tmdb_api_key>
Author
Usama Elgendy — usamaelgendy.com