This app allows the user to view a list of watched, to watch and favorites movies. The app features include:
- Horizontal scroll on favorite movies list if the number of movies exceeds the screen width.
- API integration to fetch movie data.
- When a movie is selected, its details page shows all the synced information about the movie.
- If a movie is selected in the favorite list, the corresponding movie in the Watched/To Watch list is also selected and vice versa.
- Movies are sorted based on rating. If two movies have the same rating, they are sorted based on the name.
- iOS 16.0+
- Xcode 14.0+
- Swift 5.0+
- Clone or download the repository.
- Open the project in Xcode.
- Build and run the app on a simulator or a physical device.
The app uses the following APIs to fetch movie data:
/movies/list
: Returns a list of all movies./movies/favorites
: Returns a list of favorite movies.
- Combine: Used for reactive programming.
- Kingfisher: Used for loading images from URLs and caching them.
- Achieved 75% overral test coverrage and 100% test coverage on both screen viewmodels