Skip to content

MehtabAhmad/MVPCodeChallenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

MVPCodeChallenge

To run the app please select 'MoviesIOSApp' scheme.

image

Key points

  • Inside out approach by building domain layer first
  • Domain layer is agnostic from platforms and frameworks. It can be used with iOS, MacOs, WatchOs.
  • 100% test coverage for domain layer (Unit & Integration tests)
  • 100% Tested Networking layer with HTTPClient, any third party framework can replace HTTPClient without affecting other components.
  • 100% Tested persistence layer with CoreData, any persistence framework can replace CoreData without affecting other components.
  • All infrastructure implementation is separate from business logic, infrastructure implementation just obey the commands.
  • Independent UI layer with UIKit. UIKit classes do not depend on any framework 
  • Independent reusable ViewModels. ViewModels do not depend on UIKit elements
  • Image loading implementation can be updated/modified with any Image loading client.
  • All dependencies managed from the composition route. ViewControllers don't know about the navigation or other logic. They just obey the commands to display data.
  • All threading handled from composition route using decorator pattern.
  • Independent schemes for each test target to keep blazing fast unit tests separate from slow integration tests
  • CI scheme with all test targets to be used in CI pipelines.

Movie API

Following public movies API being used in this project https://www.themoviedb.org/documentation/api

Search API URL

'https://api.themoviedb.org/3/search/movie?api_key=08d9aa3c631fbf207d23d4be591ccfc3&language=en-US&page=1&include_adult=false&query= search string here'

Screen shots

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages