Skip to content

An Android app that lists movies and TV shows using TMDB API data, providing users with detailed insights and a user-friendly interface

Notifications You must be signed in to change notification settings

fadhlansulistiyo/CinemaDatabase

Repository files navigation

App Screenshot

Cinema Database (CinDes)

Cinema Database (CinDes) is an Android application that showcases a collection of movies and TV shows, with data sourced directly from the TMDB API. Users can easily browse through popular titles, access detailed information, and discover new content. CinDes features a user-friendly interface, designed to provide a smooth and engaging browsing experience.

Features

  • Browse Movies & TV Shows: Explore a vast collection of popular and top-rated movies and TV shows.
  • Detailed Information: View comprehensive details about each title, including synopsis, release date, ratings, and more.
  • Trending & Popular People: Discover trending and popular actors, directors, and other celebrities, with detailed profiles for each.
  • Search Functionality: Quickly find specific movies, TV shows.
  • Responsive UI: Enjoy a smooth and intuitive user interface, optimized for various screen sizes.
  • Watchlist: Add movies and TV shows to your watchlist for easy access later.
  • Offline Access: Access previously viewed content on the home screen even without an internet connection.

Prerequisites

  • Android Studio
  • TMDB Api Key (If you have your own)

Setup Requirement

  1. Clone the repository:

    git clone https://github.com/fadhlansulistiyo/CinemaDatabase.git
  2. Add your TMDB Api Key:

    • Obtain your API key from the TMDB Api.
    • Add the following line to your build.gradle.kts (Module:core)
      buildConfigField("String", "API_KEY", "\"your api key here\"")
      
  3. Build and Run the project

Tech Stack

  • Architecture: Clean Architecture (Data, Domain, and Presentation layers)
  • Language: Kotlin
  • Dynamic Feature: Implements a dynamic feature module for the Watchlist feature.
  • Library Module: Core functionality is encapsulated within a reusable library module.
  • Coroutines: Manages asynchronous programming.
  • Data Stream (Coroutines Flow): Streams asynchronous data.
  • Hilt: Dependency Injection framework for managing app components.
  • Retrofit: Type-safe HTTP client for API communication.
  • Room: Local database solution for managing app data.
  • SQLCipher: Adds encryption to the local database for enhanced security.
  • Jetpack Navigation Component: Manages in-app navigation, including Bottom Navigation.
  • Glide: Image loading and caching library.
  • ViewPager2: Enhanced ViewPager for swiping movies.
  • Paging: Handles efficient data pagination for lists.
  • ProGuard: Obfuscation tool used to protect the app code.
  • Certificate Pinning: Ensures secure connections by pinning SSL certificates.
  • Lottie: Library for rendering animations.
  • Shimmer: Adds shimmer effects to UI components.
  • LeakCanary: Tool for detecting memory leaks during development.
  • ShowMoreText (by Sanjay Prajapat): Custom view for showing expandable text.

Screenshots (Dark Theme)

Screenshots (Light Theme)

Acknowledgments

This project was developed as part of the capstone project for the Dicoding class - Becoming an Android Developer Expert (Dicoding - Menjadi Android Developer Expert). Special thanks to Dicoding for providing comprehensive learning resources and guidance throughout the course.

CircleCI

fadhlansulistiyo

About

An Android app that lists movies and TV shows using TMDB API data, providing users with detailed insights and a user-friendly interface

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages