PTV Shows is an Android app that lets you browse and discover popular TV series information from the Movie Database. Built with Jetpack Compose and Kotlin using the Clean Architecture design pattern, it offers a smooth and efficient experience for TV series enthusiasts.
- Browse: Explore curated lists of trending series and uncover hidden gems.
- Search: Find your favorites in a keyword search.
- Details: Explore titles, overviews, release dates, ratings, taglines, seasons, types, status, casts, genres, episode counts, networks, production companies, and captivating poster/backdrop images.
- Offline Support: Enjoy the app anytime, anywhere – even without an internet connection.
App developed with Clean Architecture approach, separating concerns for modularity, maintainability, and testability.
- Data: Handles all data operations, fetching from the network and storing locally using Room.
- Repositories: Provide a consistent abstraction layer for accessing and manipulating data.
- Domain: Houses the core business logic, defining the app's use cases and rules.
- Use Cases: Implement specific functionalities the app performs, defining how data is obtained and processed.
- Presentation: Contains the Jetpack Compose UI components, ViewModels, and UI-related logic.
- Dependency Injection (DI): Leverages Dagger Hilt to easily manage object dependencies across layers, making code modular and testable.
PTV Shows app utilizes the following technologies to deliver a smooth and efficient experience:
- Core Libraries
- Jetpack Compose (Material3): Modern UI framework with a beautiful Material Design aesthetic for an intuitive and visually appealing experience.
- Kotlin: Expressive and concise programming language for clean, maintainable, and efficient code.
- Architecture
- Clean Architecture: Separation of concerns for robust, testable, and scalable code base.
- Networking
- Retrofit: Simplified REST API client with powerful builder options for streamlined data fetching.
- Okhttp3: Efficient HTTP client for reliable and performant network communication.
- Data Persistence
- Room: Local database solution for fast and secure storage and retrieval of app data.
- Dependency Injection Dagger-Hilt: Powerful dependency injection framework for reduced boilerplate, simplified object management, and improved testability.
- Image Management
- Coil: Efficient and flexible image loading library for smooth display of posters and backdrops.
- Observables & State Management
- ViewModel: Provides lifecycle-aware data for UI components, ensuring data consistency and efficient updates.
- Lifecycle: Manages the lifecycle of components and observes changes for responsive behavior.
- Navigation
- Navigation: Simplified management of navigation flow within the app for a seamless user experience.
- Splash Screen & Animation
- Splash screen: Creates a polished and engaging app startup experience.
- Lottie Compose: Integrates Lottie animations for captivating UI elements and interactions.
Video link: https://youtu.be/dKun84Vp4gM
- Clone this project and open into Android Studio.
- Add your API key to
local.properties
like thisAPI_KEY = "507xxxxxxxxxxxxxxxxxxc5a4"
- Run the app
Get the API key here