Skip to content

Nadeem94/movies-sample-app

Repository files navigation

movies-sample-app

This is an Android app which fetches a sample movies list to display. Built using Kotlin and latest Android tech stack, with an approach to clean architecture.

Functionality

  • Search by movie genre and title, with InputFilter/SearchView.
  • Request caching for fetching movies sample & images, for 10 minutes. This is implemented with a custom CacheControlInterceptor.
  • Portrait/Landscape support - more item rows on landscape, less on portrait.

Technologies & Patterns Used

  • MVVM pattern with lifecycle components
  • Data binding
  • Coil for image loading
  • Coroutines for asynchronous calls
  • Okhttp3/Retrofit2 for network requests
  • Gson for parsing
  • Dagger-Hilt for dependency injection & also used in UI (Instrumentation tests)
  • Mockito/io.mockk for unit tests
  • Timber for logging

Running the app/tests

This project should build & run fine on latest versions of Android Studio IDE. To run tests -

  • Unit Tests:
    • ./gradlew testDebugUnitTest and/or ./gradlew testReleaseUnitTest
    • You can also run the com.moviessampleapp test package directly from Android Studio.
  • Automation Tests (run with a connected emulator or device):
    • adb shell am instrument -w -r --no-window-animation -e package com.moviessampleapp -e debug false com.moviessampleapp.debug.test/com.moviessampleapp.HiltTestRunner
    • You can also run the com.moviessampleapp.ui androidTest package directly from Android Studio.

Screenshots & Videos

Portrait screen -

movies-sample-app-portrait

Landscape screen -

movies-sample-app-landscape

Short video of the app -

movies-sample-demo.mp4

About

Android app which fetches a sample movies list to display. Built using Kotlin and latest Android tech stack, with an approach to clean architecture.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages