A Flutter project that displays a list of movies from the The Movie Database (TMDb) API.
- Display a list of movies
- View movie details
- Add movies to favorites
- View favorite movies
- Caching requests
- App theme switcher
- Responsive design for different screen sizes
- Clean Architecture
- BLoC (Business Logic Component) Pattern
- Repository Pattern
- Dependency Injection
- Singleton Pattern
- Factory Pattern
- dartz - Functional programming in Dart
- flutter_bloc - State management
- bloc - Business logic components
- http - Network requests
- shared_preferences - Caching requests
- equatable - Value equality
- get_it - Dependency injection
- internet_connection_checker - Check internet connection
- flutter_rating_bar - Rating stars
- intl - Internationalization
- flex_color_scheme - App theme switcher
- adaptive_theme - App mode switcher
- setting_ui - App settings
- Clone the repository
git clone
- Install dependencies
flutter pub get
- Create a
.env
file in the root directory and add your TMDb API key
API_KEY=YOUR_API_KEY
- Run the app
flutter run
Home Screen | Movie Details | Upcoming Movies |
---|---|---|
App Drawer | Settings Screen | Home Screen (Dark Mode) |
---|---|---|
Responsive Design (Tablet) |
---|
- Add a search bar to search for movies
- Switch from using SharedPreferences to Hive/floor for caching and storing movies
- Switch from using the http package to the dio package for network requests
- Localize the app in multiple languages
- Switching between multiple themes
- Responsive design for different screen sizes