Skip to content

Latest commit

 

History

History
84 lines (70 loc) · 2.99 KB

README.md

File metadata and controls

84 lines (70 loc) · 2.99 KB

The Movie Database

Build Status codebeat badge

  1. Architecture
  2. Features
  3. Accessibility
  4. Continuous Integration
  5. Static Code Analysis
  6. Code Coverage
  7. Requirements
  8. Instructions
  9. Preview

Architecture

  • This project architecture is a variation of VIP, respecting SOLID and Clean Architecture principles.
  • About the ViewModel, it doesn't contains business logic, its responsibility is only abstract the business model data into a struct that only makes sense to the presentation layer, trying not to expose those businesses model information at viewController.
  • The layers into this architecture respect a unidirectional flow (View Controller -> Interactor -> Presenter -> View Controller), this helps to prevents mistakes and issues like reference cycles.

Features

Movie List

  • Provides a list of upcoming movies through an infinite scroll.
  • Provides the possibility of search for movies.

Movie Details

  • Shows details of a movie, such as:
    • Movie Poster Image
    • Movie Title
    • Movie Overview
    • Movie Genres
    • Movie Release Date
    • Movie Backdrop Image

Accessibility

  • This App provides voice over accessibility.

Continuous Integration

  • This repository is integrated with Bitrise to helps to identify integration defects in the early stages of the project.
  • The Bitrise label at this readme file shows quickly if the master is broken or if everything is fine(tests and build).

Static Code Analysis

  • This repository is integrated with Codebeat. Codebeat gathers the results of code analysis into a single, real-time report that gives all project stakeholders the information required to improve code quality.

Code Coverage

  • Unit Tests for:
    • HttpClient
    • Coordinator
    • Upcoming Movies Interactor
    • Upcoming Movies Gateway
    • Upcoming Movies Gateway Setup
    • Upcoming Movies Adapter
    • Upcoming Movies Presenter

Requirements

  • Xcode 10.2.1
  • Swift 5

Instructions

$ git clone https://github.com/judarlima/the-movie-database.git
$ cd the-movie-database
$ git checkout development
$ cd MovieDataBase/
$ open MovieDataBase.xcodeproj

Preview

Movies List

Movie Detail