├── .gitignore ├── Challenge.xcodeproj ├── project.pbxproj └── xcshareddata │ └── xcschemes │ └── Challenge.xcscheme ├── Challenge.xctestplan ├── Challenge ├── Application │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── icone-editado.png │ │ ├── Contents.json │ │ ├── primary.colorset │ │ │ └── Contents.json │ │ └── secondary.colorset │ │ │ └── Contents.json │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ ├── Info.plist │ └── SceneDelegate.swift ├── Data │ ├── API │ │ ├── APIClient.swift │ │ ├── APIClientProtocol.swift │ │ └── APIError.swift │ └── Entities │ │ ├── Cart.swift │ │ └── Products.swift ├── Extensions │ ├── UIColor.swift │ ├── UIImage.swift │ ├── UIImageView.swift │ └── UITableView.swift └── View │ ├── Base │ ├── Design.swift │ └── ViewController.swift │ ├── ProductListing │ ├── Components │ │ └── ProductTableViewCell.swift │ ├── ProductListingFactory.swift │ ├── ProductListingViewController.swift │ └── ProductListingViewModel.swift │ └── ShoppingCart │ ├── Components │ └── CartTableViewCell.swift │ ├── ShoppingCartFactory.swift │ ├── ShoppingCartViewController.swift │ └── ShoppingCartViewModel.swift ├── ChallengeTests ├── Doubles │ └── MockAPIClient.swift ├── ProductListingViewModelTests.swift └── ShoppingCartViewModelTests.swift ├── README.md └── docs └── layers.png /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/.gitignore -------------------------------------------------------------------------------- /Challenge.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Challenge.xcodeproj/xcshareddata/xcschemes/Challenge.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge.xcodeproj/xcshareddata/xcschemes/Challenge.xcscheme -------------------------------------------------------------------------------- /Challenge.xctestplan: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge.xctestplan -------------------------------------------------------------------------------- /Challenge/Application/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/AppDelegate.swift -------------------------------------------------------------------------------- /Challenge/Application/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /Challenge/Application/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Challenge/Application/Assets.xcassets/AppIcon.appiconset/icone-editado.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/Assets.xcassets/AppIcon.appiconset/icone-editado.png -------------------------------------------------------------------------------- /Challenge/Application/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /Challenge/Application/Assets.xcassets/primary.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/Assets.xcassets/primary.colorset/Contents.json -------------------------------------------------------------------------------- /Challenge/Application/Assets.xcassets/secondary.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/Assets.xcassets/secondary.colorset/Contents.json -------------------------------------------------------------------------------- /Challenge/Application/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /Challenge/Application/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/Info.plist -------------------------------------------------------------------------------- /Challenge/Application/SceneDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Application/SceneDelegate.swift -------------------------------------------------------------------------------- /Challenge/Data/API/APIClient.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Data/API/APIClient.swift -------------------------------------------------------------------------------- /Challenge/Data/API/APIClientProtocol.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Data/API/APIClientProtocol.swift -------------------------------------------------------------------------------- /Challenge/Data/API/APIError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Data/API/APIError.swift -------------------------------------------------------------------------------- /Challenge/Data/Entities/Cart.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Data/Entities/Cart.swift -------------------------------------------------------------------------------- /Challenge/Data/Entities/Products.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Data/Entities/Products.swift -------------------------------------------------------------------------------- /Challenge/Extensions/UIColor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Extensions/UIColor.swift -------------------------------------------------------------------------------- /Challenge/Extensions/UIImage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Extensions/UIImage.swift -------------------------------------------------------------------------------- /Challenge/Extensions/UIImageView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Extensions/UIImageView.swift -------------------------------------------------------------------------------- /Challenge/Extensions/UITableView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/Extensions/UITableView.swift -------------------------------------------------------------------------------- /Challenge/View/Base/Design.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/Base/Design.swift -------------------------------------------------------------------------------- /Challenge/View/Base/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/Base/ViewController.swift -------------------------------------------------------------------------------- /Challenge/View/ProductListing/Components/ProductTableViewCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/ProductListing/Components/ProductTableViewCell.swift -------------------------------------------------------------------------------- /Challenge/View/ProductListing/ProductListingFactory.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/ProductListing/ProductListingFactory.swift -------------------------------------------------------------------------------- /Challenge/View/ProductListing/ProductListingViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/ProductListing/ProductListingViewController.swift -------------------------------------------------------------------------------- /Challenge/View/ProductListing/ProductListingViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/ProductListing/ProductListingViewModel.swift -------------------------------------------------------------------------------- /Challenge/View/ShoppingCart/Components/CartTableViewCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/ShoppingCart/Components/CartTableViewCell.swift -------------------------------------------------------------------------------- /Challenge/View/ShoppingCart/ShoppingCartFactory.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/ShoppingCart/ShoppingCartFactory.swift -------------------------------------------------------------------------------- /Challenge/View/ShoppingCart/ShoppingCartViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/ShoppingCart/ShoppingCartViewController.swift -------------------------------------------------------------------------------- /Challenge/View/ShoppingCart/ShoppingCartViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/Challenge/View/ShoppingCart/ShoppingCartViewModel.swift -------------------------------------------------------------------------------- /ChallengeTests/Doubles/MockAPIClient.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/ChallengeTests/Doubles/MockAPIClient.swift -------------------------------------------------------------------------------- /ChallengeTests/ProductListingViewModelTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/ChallengeTests/ProductListingViewModelTests.swift -------------------------------------------------------------------------------- /ChallengeTests/ShoppingCartViewModelTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/ChallengeTests/ShoppingCartViewModelTests.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/README.md -------------------------------------------------------------------------------- /docs/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AkiraCaio/acshop/HEAD/docs/layers.png --------------------------------------------------------------------------------