Filmora is a modern Android application that provides users with detailed information about movies, TV shows, and celebrities using The Movie Database (TMDB) API. With a clean and modular architecture, along with an engaging user interface, Filmora offers a seamless and up-to-date entertainment discovery experience.
- Kotlin: The primary programming language for the app.
- Architecture Pattern: MVVM (Model-View-ViewModel) combined with a Single Activity approach for streamlined navigation and activity management.
- Kotlin Coroutines & Flow: For asynchronous programming and data stream management.
- Jetpack Components:
- ViewModel
- LiveData
- Room Database
- Navigation Component
- Paging 3
- Retrofit: For networking and API calls.
- Hilt: For dependency injection.
- Coil: For image loading.
- Material Design: For UI components and theming.
- The Movie Database (TMDB) API: For fetching data.
The project follows a clean and modular architecture. Here's an overview of the directory structure:
amir-azari-filmora/
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/azari/amirhossein/filmora/
│ │ │ │ ├── adapter/ # Adapters for RecyclerViews
│ │ │ │ ├── data/ # Data layer (database, network, repository)
│ │ │ │ ├── models/ # Data models and API responses
│ │ │ │ ├── paging/ # Paging sources for pagination
│ │ │ │ ├── ui/ # UI components (activities, fragments)
│ │ │ │ ├── utils/ # Utility classes and extensions
│ │ │ │ └── viewmodel/ # ViewModels for UI logic
│ │ │ └── res/ # Resources (layouts, drawables, strings, etc.)
│ │ └── test/ # Unit tests
│ └── build.gradle.kts # App-level build configuration
├── gradle/ # Gradle configuration files
└── build.gradle.kts # Project-level build configuration
-
Detailed Information:
Access comprehensive details about movies, TV shows, and celebrities. -
Extensive Browsing Options:
Easily explore various categories including:- Movies: Trending, Popular, Upcoming, Now Playing in Theatres, and Top-Rated.
- TV Shows: Trending, Popular, On TV, Airing Today, and Top-Rated.
-
Advanced Search:
Quickly find movies, TV shows, and actors with robust search functionality.
-
Tailored Recommendations:
Receive personalized suggestions and "You May Like" recommendations based on your viewing preferences. -
Profile Management:
Enjoy a customized experience by managing your favorites, watchlists, and ratings.
-
High-Quality Visuals:
Browse high-resolution poster galleries and immersive backdrop displays. -
Video Trailers:
Watch movie trailers seamlessly via YouTube integration. -
Cast & Crew Information:
View detailed information about cast and crew members, with clear department categorization (e.g., Acting, Directing, Writing). -
and ...
-
In-Depth Filmography:
Explore career overviews with clear categorization between acting roles and production contributions. -
Department-Specific Contributions:
Discover detailed contributions in specific areas such as Directing, Writing, Cinematography, etc. -
Biographical Insights:
Get essential details including age, birthday, birthplace, and a full biography. -
Iconic Roles Highlighted:
Review the "Known For" section that showcases each celebrity’s most memorable roles. -
Direct Work Connections:
Easily navigate to the celebrity’s works within the app for a more integrated experience.
-
Offline Caching:
Benefit from offline caching to ensure a smooth and uninterrupted user experience. -
Theme Support:
Switch between Dark and Light themes according to your preference, enhancing visual comfort in any setting. -
and ...