TrendingMovies demos some UIKit (& Combine) concepts. The goal is to make a application using some good software engineering concepts from my point of view, and show how I like to code. It'll be updated with new features and tests as soon as possible.
TrendingMovies was written in Swift 5 using the TMDb API and demonstrating Clean Architecture, Dependency Injection, MVVM and Coordinators.
- iOS 13.0+
- Xcode 11.0+
You'll need a few things before getting started. Make sure you have the latests Xcode installed from the AppStore or Developer Site. Then you can clone the project with the following command:
git clone https://github.com/rapholivera/TrendingMovies.git
It supports SwiftLint, which is the defacto standard for linting Swift files. It is not directly installed as a dependency of the project, but running on mac, if you haven't installed it, the project will run normally. However, if there is any change in the code that doesn't follow the styles defined by swiftlint some of these warnings appear during development in Xcode:
Instalation using Homebrew
brew install swiftlint
Note: Domain Layer should not include anything from other layers(e.g Presentation — UIKit or SwiftUI or Data Layer — Mapping Codable)
- Login
- Login - Check user input to enable login button
- Login - Create a CPF Mask
- Login Tests - Check user input
- Login Tests - Check callback for user bad credentials
- Login Tests - Check callback for user good credentials
- Trending
- Trending - List of trending movies
- Trending - Poster Movies
- Trending - Search
- Trending - Open Movie Details
- Trending Tests - Check success movies response
- Trending Tests - Check failure movies response