NOTE: In case the API doesn't work, the reason could be that the API request limit has been reached. The limit is 200 requests per hour and 20,000 requests per month. If that happens, please contact me and I will update the API key. Thank you for understanding.
- RxSwift - for Data Binding View and ViewModel
- RxCocoa - for integrating TableView with RxSwift
- SDWebImage - for loading images
- NVActivityIndicatorView - for loading view
- RxTest - for testing RxSwift components
- This project was made using the MVVM Architecture
- This project uses the latest technology introduced by Swift which is the Swift Concurrency. So for performing asynchronous tasks, instead of using the completionHandler, I have used the async-await keywords instead.
- I also used withCheckedThrowingContinuation function, since this is needed when we want to integrate completionHandler-based functions inside a async-based function.
- Unit Testing was done in this project, however it is not 100% code coverage. I only added Unit Testing for ViewModel files.
- SearchViewModel and SearchTableViewCellViewModel both have 100% code coverage.
- Needed to use RxTest framework in order to see the values on stream of the Observable properties.