SkillAgentSearch skills...

TrailersApp

A simple demo project for The Movie DB based on MVVM clean architecture.

Install / Use

/learn @anitaa1990/TrailersApp

README

TrailersApp

A simple demo project for The Movie DB based on <b>MVVM clean architecture</b>.

<img src="https://github.com/anitaa1990/TrailersApp/blob/master/media/2.gif" width="200" style="max-width:100%;"> <img src="https://github.com/anitaa1990/TrailersApp/blob/master/media/3.gif" width="200" style="max-width:100%;"></br></br>

App Features

  • Users can view list of the latest movies of their choice.
  • Users can view list of the latest Tv series of their choice.
  • Users can filter the movies or tv series based on popularity, upcoming and top rated.
  • Users can search for any movie or tv series of their choice.
  • Users can click on any movie or tv series to watch the trailers of their choice.

App Architecture

Based on mvvm architecture and repository pattern.

<img src="https://github.com/anitaa1990/TrailersApp/blob/master/media/1.png" width="500" style="max-width:500%;">

The app includes the following main components:

  • A local database that servers as a single source of truth for data presented to the user.
  • A web api service.
  • A repository that works with the database and the api service, providing a unified data interface.
  • A ViewModel that provides data specific for the UI.
  • The UI, which shows a visual representation of the data in the ViewModel.
  • Unit Test cases for API service, Database, Repository and ViewModel.

App Packages

  • <b>data</b> - contains
    • <b>api</b> - contains the api classes to make api calls to MovieDB server, using Retrofit.
    • <b>db</b> - contains the db classes to cache network data.
    • <b>repository</b> - contains the repository classes, responsible for triggering api requests and saving the response in the database.
  • <b>di</b> - contains dependency injection classes, using Dagger2.
  • <b>ui</b> - contains classes needed to display Activity and Fragment.
  • <b>util</b> - contains classes needed for activity/fragment redirection, ui/ux animations.

App Specs

  • Minimum SDK 16
  • Java8 (in master branch) & Kotlin (in kotlin_support branch)
  • MVVM Architecture
  • Android Architecture Components (LiveData, Lifecycle, ViewModel, Room Persistence Library, Navigation Component, ConstraintLayout)
  • RxJava2 for implementing Observable pattern.
  • Dagger 2 for dependency injection.
  • Retrofit 2 for API integration.
  • Gson for serialisation.
  • Okhhtp3 for implementing interceptor, logging and mocking web server.
  • Mockito for implementing unit test cases
  • Picasso for image loading.
  • Custom Views: Loading, Side Menu
<h2>Sample App</h2> <p><a href="https://play.google.com/store/apps/details?id=com.an.trailers"><img width="150" alt="Get it on Google Play" src="https://camo.githubusercontent.com/ccb26dee92ba45c411e669aae47dcc0706471af7/68747470733a2f2f706c61792e676f6f676c652e636f6d2f696e746c2f656e5f67622f6261646765732f696d616765732f67656e657269632f656e5f62616467655f7765625f67656e657269632e706e67" data-canonical-src="https://play.google.com/intl/en_gb/badges/images/generic/en_badge_web_generic.png" style="max-width:100%;"></a></p>

Related Skills

View on GitHub
GitHub Stars202
CategoryDevelopment
Updated2mo ago
Forks80

Languages

Kotlin

Security Score

85/100

Audited on Jan 24, 2026

No findings