Giter VIP home page Giter VIP logo

movieapp's Introduction

movieApp

This app get data from movie data base api and show popular movie items in a list of horizontal shelves where each shelve show list of movie poster. Clicking any of the tile will open movie details page which show full screen poster with some movie information overlayed on the image. It’s a complete MVVM project that use dependency injection and lifecycle aware components. It use all features of Android Architecture Components library like Room, ViewModels, LiveData and other Lifecycle-aware components.

I used Dagger 2 Dependency Injection in this project to manage dependencies, simplified acces to shared dependency like use of Retrofit to make asynchronous API calls, also for scope instances like Singleton repositories. Inside fragment used Livedata to observe data changes in ViewModel. Used the repository to maintain separation of concern and also to keep the ViewModel lean. Converstion of rx stream to liveData is done in the viewModel.

Lazy Image loading is achieved using Glidelibrary. By deafult all images will be loaded to memory. Disk cache is also possible with few strategy for caching (did not added any disk cache in this project).

Used CardView for rounded conrnering images and ConstraintLayout for optimized Layout. Added few Unit test for the viewModel

List of android libraries used

  1. Android Architecture Components
  2. Dagger 2
  3. Espresso

List of 3rd Party libraries

  1. Retrofit
  2. Glide
  3. Mockk

Coding architecture/ Design Pattern:

  1. MVVM (Model View ViewModel)

movieapp's People

Contributors

mohsin-foxsports avatar mohsin84 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.