MovieListings App

This app is a Movie listing app with unit tests and a couple of UI tests. The app gets a list of movies from a public API, and the data is cached for 10 minutes (before it refreshes them remotely).
You can filter the movies by searching for terms in the title or by the genre. The app supports both Portrait and Landscape screen orientations.

Mockup of the app

App mockup

Project Structure

  • Architectural Pattern: MVVM
  • Architectural Components
    • RoomDB
    • DataStore
    • ViewModel
    • LiveData
    • DataBinding
    • LifeCycle
    • Navigation
  • Dependency Injection: Koin
  • Networking: Retrofit
    • BaseURL
    • Endpoints
      • api/movies (Returns all movies)
        • Movie’ [id] and [title] are combined as primary keys because the [id] is not unique for all movies.
  • Multithreading: Coroutine Flows
  • Unit Tests: JUnit
  • UI Test: Espresso

GitHub

View Github