Skip to content

A simple movie list, generated through the Movie Database API. Using Coroutines, Dagger Hilt, MVVM with Clean Architecture.

Notifications You must be signed in to change notification settings

ollyc2015/MovieListDaggerHiltCR

Repository files navigation

Movie DB List

Simple Android application that displays Movie Data using the The Movie Database API.

Useful Info

This is exactly the same project as my other Movie List, however, this project uses Kotlin Coroutines in replace of RXJava and Dagger Hilt in replace of Koin.

Description

The application consists of a single screen. The screen displays the various movies in a list. For each movie in the list the following parts are visible:

  • Movie image
  • Movie name
  • Voting average
  • Release date

Design

The design adopted follows the MVVM with clean architecture design patterns. It is too complex for the simple functionality required, but it was chosen to illustrate the design patterns and best practices followed in larger scale and more demanding applications.

Configuration

There are 2 external configuration parameters contained in the top-level build.gradle file:

  1. posterBaseUrl: The base URL needed to request the movie poster (http://image.tmdb.org/t/p/w185)
  2. apiBaseUrl: The base URL of the The Movie Database API endpoints (https://api.themoviedb.org/).

There is 1 external configuration parameter contained in the local.properties file, that will need to be configured by the user:

  1. API_KEY = yourapikey : The api key needed to interact with The Movie Database.

Issues

  1. The layout of the items in the list can be improved to function better with different screen sizes
  2. A local DB should be added to avoid constant calls to the API

More manual and unit testing can always be added as well as automation tests.

Libraries

The Retrofit2 library was used to call the The Movie Database API endpoints whereas Kotlin Coroutines was employed to orchestrate the remote server calls. The Glide library helped with image display. For dependency injection, the Dagger Hilt framework was used. To aid unit testing, the Mockito mocking framework and junit annotations were used to setup and aid with configuration of the tests.

Contact

Please e-mail [email protected] for any questions or requests.

Releases

No releases published

Packages

No packages published

Languages