Marketplace leverages DummyJSON's free products API to showcase my understanding of fundemental software development concepts.
-
Paginated products list
Notable:
- Images are cached in memory using URLCache
Note: Some of the image URLs DummyJSON provides download the same image. For example https://cdn.dummyjson.com/product-images/1/1.jpg and https://cdn.dummyjson.com/product-images/1/2.jpg are the same image. This is a DummyJSON issue and not a side effect of this application.
-
Filtered products list
Note: At the time of writing this, DummyJSON's products API does not allow filtering by multiple categories. So the filter in this project uses data in memory only. Items that have not been downloaded will not show in the filter. If you want to see the filter in full-effect, scroll to the bottom of the products list and then apply filters.
-
Products search
Notable:
- Core Data is used to persist user searches
- Search updates use Combine and UITableViewDiffableDataSource
-
Product detail
Notable:
- Screen written in SwiftUI
- Thank you to DummyJSON.com for providing all of the data used in this project.