This app list upcoming movies and provide details after selecting one.
- Xcode 9.4
Open Xcode workspace file Upcoming Movies.xcworkspace
and cmd + b
.
ps: This project use Cocoapods but all pods are commited, so you don't need to do a pod install
cmd + r
This project have unit and ui testing.
To run all tests press cmd + u
.
- Alamofire - Networking library to make requests. Is used to access The Movie Database API more easily.
- AlamofireObjectMapper - Map JSON to Swift classes. Is used to convert response JSON to Movie class.
- AlamofireImage - Download and display images. Is used to download and display movie posters easily.
- Nimble - Nimble provides better tests readability using more expressive asserts.
- OHHTTPStubs - OHHTTPStubs stubs request so we don't depend on the internet to run unit tests.
- Swifter - Tiny http server engine written in Swift. It is used to provide fake JSON responses, so we can test UI without depending on the internet.
- Improve user experience on slow networks by adding a loading indicator when it's loading more movies.
- Improve user experience by dealing with internet and API errors.
- On MovieDetailViewController, set viewInfo's size accordingly to lblInfos text size.
- Load genres list dynamically from API.
- Add Localization strings to support more languages.
- Add search (the optional item).