Skip to content

Nnamodi/Flick

Repository files navigation

Flick

Watch trailers and browse info of millions of movies and series.

Screenshots

:::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::
Launch screen Home screen Details screen Category screen Coming Soon screen

Features

  • Create an account in app or sign-in, for a personalized experience
  • Add movies and series to your watchlist
  • Favorite your best movies and series
  • Rate released movies and series as you like it

About

  • The app uses The Movie Database (TMDB) API to fetch movie data.

  • This project was built with Clean Architecture and MVVM pattern.

    There are five modules in this project:

    app - The main module serving as the user interface/communication layer

    data-local - Stores and fetches stored data from local source using persistence frameworks

    data-remote - Fetches data from the internet and manipulates it

    data-repository - Responsible for creating and managing data

    domain - Houses the entities and use-cases

Developed with

  • Jetpack Compose - Jetpack Compose is Android’s recommended modern toolkit for building native UI.
  • Coil-kt - Image loading for Android and Compose Multiplatform.
  • Dagger-Hilt - Reduces boilerplate of doing manual dependency injection in your project.
  • Material3 - Google's latest design system with adaptable components and tools that support the best practices of user interface design for building beautiful apps.
  • Kotlin Coroutine - For executing tasks asynchronously.
  • Flow - An asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • Stateflow - An observable state-holder that emits data stream to its collectors - updating the UI incessantly.
  • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
  • Datastore - Jetpack DataStore is a data storage solution that allows you store key-value pairs asynchronously.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Moshi - A modern JSON library for Kotlin and Java.
  • OkHttp - An efficient HTTP & HTTP/2 client for Android and Java.
  • Paging - Helps load and display pages of data from a larger dataset from local storage or over a network.
  • YouTube Player - YouTube player library for Android and Chromecast.