/KoTMDb

A kotlin versión for TMDb application.

Primary LanguageKotlinApache License 2.0Apache-2.0

KoTMDb (Kotlin/The Movie Database) Build Status

A very simple application made in Kotlin to improve my skills and learn more about this fantastic language. The application uses the TMDb API and consists of a screen where the most popular movies and series are listed and another where you can see more detailed information of any of them.

The following is a brief description of the technical decisions taken for the development.

API Service Highlights

Used the v3 of The Movie Database API (documentation guides)

HOST
www.themoviedb.org

Endpoints used

Popular TV

Get a list of the current popular TV shows on TMDb. This list updates daily.

PATH
GET /tv/popular

Recommendations

Get the list of TV show recommendations for this item.

PATH
GET /tv/{tv_id}/similar

Architecture

  • Application written in Kotlin based on Clean Architecture for layer abstractions (view/domain/data)
  • Model-View-Presenter for the presentation layer
  • Interactors / UseCases are used by the presenters to start a data retrieval flow
  • UseCases use Repository pattern to request the data needed
  • Repository in this case doesn't have DataSources because there's no database/cache/other sources to retrieve data than just * Network. Repository in this project directly request data to the API
  • Two different data objects, DTO (Data transfer object) to parse API's response, and Business Object as our own data model.
  • DI with Dagger2
  • Asynchronous handled by RxJava2 (RxKotlin)
  • Image loading handled by Picasso

Thirtd-Party

Work in progress

  • TV show search feature.
  • Instrumentation Testing
  • Cache / database