gitextract__82anwzf/ ├── .gitignore ├── App/ │ ├── App.entitlements │ ├── App.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ ├── App.xcscheme │ │ ├── AppIntents.xcscheme │ │ └── AppIntentsUI.xcscheme │ ├── AppCoordinator/ │ │ ├── AppCoordinator.swift │ │ ├── Coordinator.swift │ │ └── SiriShortcutCoordinator.swift │ ├── AppDelegate.swift │ ├── AppIntents/ │ │ ├── AppIntents.entitlements │ │ ├── Info.plist │ │ └── IntentHandler.swift │ ├── AppIntentsUI/ │ │ ├── AppIntentsUI.entitlements │ │ ├── Base.lproj/ │ │ │ └── MainInterface.storyboard │ │ ├── Info.plist │ │ └── IntentViewController.swift │ ├── Assets.xcassets/ │ │ ├── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj/ │ │ └── LaunchScreen.storyboard │ ├── ExtensionIntents/ │ │ ├── CreateProductIntentHandler.swift │ │ ├── ExtensionIntents.h │ │ ├── Info.plist │ │ ├── Intents.intentdefinition │ │ ├── InterfaceBinding.swift │ │ └── NSUserActivity+IntentData.swift │ ├── Features/ │ │ ├── Detail/ │ │ │ ├── Coordinator/ │ │ │ │ └── DetailCoordinator.swift │ │ │ ├── ViewControllers/ │ │ │ │ ├── DetailViewController.swift │ │ │ │ └── DetailViewController.xib │ │ │ └── ViewModel/ │ │ │ └── DetailViewModel.swift │ │ └── Main/ │ │ ├── Coordinator/ │ │ │ └── MainCoordinator.swift │ │ ├── ViewControllers/ │ │ │ ├── MainViewController.swift │ │ │ └── MainViewController.xib │ │ └── ViewModel/ │ │ └── MainViewModel.swift │ ├── Info.plist │ └── Plugins/ │ └── Dependency Injection/ │ ├── DependencyGraph.swift │ └── InterfaceBinding.swift ├── AppTests/ │ ├── AppTests.swift │ └── Info.plist ├── Data/ │ ├── .gitignore │ ├── Package.swift │ ├── README.md │ ├── Sources/ │ │ └── Data/ │ │ ├── CacheInterface.swift │ │ ├── Product/ │ │ │ ├── ProductRepository.swift │ │ │ └── ProductServiceInterface.swift │ │ └── ServiceInterface.swift │ └── Tests/ │ └── DataTests/ │ └── DataTests.swift ├── Domain/ │ ├── .gitignore │ ├── Package.swift │ ├── README.md │ ├── Sources/ │ │ └── Domain/ │ │ ├── Product/ │ │ │ ├── CreateProductUseCase.swift │ │ │ └── ProductsUseCase.swift │ │ └── UseCase.swift │ └── Tests/ │ └── DomainTests/ │ └── DomainTests.swift ├── Entities/ │ ├── .gitignore │ ├── Package.swift │ ├── README.md │ ├── Sources/ │ │ └── Entities/ │ │ └── Product.swift │ └── Tests/ │ └── EntitiesTests/ │ └── EntitiesTests.swift ├── Plugins/ │ ├── NetworkServices/ │ │ ├── .gitignore │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources/ │ │ │ └── NetworkServices/ │ │ │ └── ProductService.swift │ │ └── Tests/ │ │ └── NetworkServicesTests/ │ │ └── NetworkServicesTests.swift │ └── Persistence/ │ ├── .gitignore │ ├── Package.swift │ ├── README.md │ ├── Sources/ │ │ └── Persistence/ │ │ ├── Persistence.swift │ │ └── UserDefaultsInterface.swift │ └── Tests/ │ └── PersistenceTests/ │ ├── PersistenceTests.swift │ └── UserDefaultsMock.swift ├── README.md └── SwiftCleanArchitecture.xcworkspace/ ├── contents.xcworkspacedata └── xcshareddata/ ├── IDEWorkspaceChecks.plist └── swiftpm/ └── Package.resolved