Skip to content

A Movies Android App built on TMDB API featuring popular, in theater, upcoming and top rated movies. App also features popular actors/actresses.

Notifications You must be signed in to change notification settings

ElieOmatuku97/cineast_android

 
 

Repository files navigation

Cineast_android

Cineast is an android app querying TMDb API to provide information on popular, trending, upcoming, top rated movies and popular actors. Cineast comes in with sharing, searching features, when signed in a user can add movies to their Favorites and watch lists or rate them.

Prerequisites

1. Obtain Key

Create an account with TMDB to obtain an API key.

2. Configure gradle.properties

On obtention of your TMDB key, you will need to add it to a global gradle.properties file so as not to add it to version control and expose your key and configure the projects app module build.gradle to reflect the name you gave your API Key. To add the newly obtained key to a global gradle.properties:

  • In the roots folder of the project, add a txt file named apikeys.properties
  • then inside the file add a property api_key = TMDb API KEY.

On completion of the above steps, the app will be able to pick up your TMDb API KEY.

Clean Architecture

This Application makes use of clean Architecture, hence the project is divided into the following packages:

  • Cache module: uses Room ORM and SharedPreferences (to be updated in the future, to use DataStore) to store data locally.
  • Remote module: uses Retrofit and Coroutines to make api calls.
  • Data module: an intermediate layer between the Cache module/Remote module and the Domain module.
  • Domain module: nuclear module of the app, contains business logic and is written in Kotlin. It doesn't have any external dependencies.
  • Presentation module : uses JetPack Compose to build different UI components with Material 3 design system.

For more details on Clean Architecture, check out the following links:

https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

https://github.com/LostInIreland/Flutter-Clean-Architecture

https://github.com/bufferapp/android-clean-architecture-boilerplate

This blog post explains the basics of modularization and its benefits.

Architecture Pattern

This app uses the MVVM architecture.

Async/Background Operations

Coroutines are used for async/background. This blog post explains the basics of Coroutines in kotlin.

Screenshots

Light Mode

Dark Mode

Libraries Used

JetPack Compose - UI Library

Material 3 - Design system

Hilt - Dependency Injection Library

Coroutines - Coroutines

Coil - Image Loading Library

Retrofit - Http Client for Api Calls

Gson - Serialization/Deserialization Library

Okhttp - An HTTP+HTTP/2 client for Android

Room ORM - Local Database

Leak Canary - Capture Memory Leaks

About

A Movies Android App built on TMDB API featuring popular, in theater, upcoming and top rated movies. App also features popular actors/actresses.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 100.0%