├── .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 /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/.gitignore -------------------------------------------------------------------------------- /App/App.entitlements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/App.entitlements -------------------------------------------------------------------------------- /App/App.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/App.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /App/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme -------------------------------------------------------------------------------- /App/App.xcodeproj/xcshareddata/xcschemes/AppIntents.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/App.xcodeproj/xcshareddata/xcschemes/AppIntents.xcscheme -------------------------------------------------------------------------------- /App/App.xcodeproj/xcshareddata/xcschemes/AppIntentsUI.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/App.xcodeproj/xcshareddata/xcschemes/AppIntentsUI.xcscheme -------------------------------------------------------------------------------- /App/AppCoordinator/AppCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppCoordinator/AppCoordinator.swift -------------------------------------------------------------------------------- /App/AppCoordinator/Coordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppCoordinator/Coordinator.swift -------------------------------------------------------------------------------- /App/AppCoordinator/SiriShortcutCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppCoordinator/SiriShortcutCoordinator.swift -------------------------------------------------------------------------------- /App/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppDelegate.swift -------------------------------------------------------------------------------- /App/AppIntents/AppIntents.entitlements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppIntents/AppIntents.entitlements -------------------------------------------------------------------------------- /App/AppIntents/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppIntents/Info.plist -------------------------------------------------------------------------------- /App/AppIntents/IntentHandler.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppIntents/IntentHandler.swift -------------------------------------------------------------------------------- /App/AppIntentsUI/AppIntentsUI.entitlements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppIntentsUI/AppIntentsUI.entitlements -------------------------------------------------------------------------------- /App/AppIntentsUI/Base.lproj/MainInterface.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppIntentsUI/Base.lproj/MainInterface.storyboard -------------------------------------------------------------------------------- /App/AppIntentsUI/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppIntentsUI/Info.plist -------------------------------------------------------------------------------- /App/AppIntentsUI/IntentViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/AppIntentsUI/IntentViewController.swift -------------------------------------------------------------------------------- /App/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /App/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /App/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /App/ExtensionIntents/CreateProductIntentHandler.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/ExtensionIntents/CreateProductIntentHandler.swift -------------------------------------------------------------------------------- /App/ExtensionIntents/ExtensionIntents.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/ExtensionIntents/ExtensionIntents.h -------------------------------------------------------------------------------- /App/ExtensionIntents/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/ExtensionIntents/Info.plist -------------------------------------------------------------------------------- /App/ExtensionIntents/Intents.intentdefinition: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/ExtensionIntents/Intents.intentdefinition -------------------------------------------------------------------------------- /App/ExtensionIntents/InterfaceBinding.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/ExtensionIntents/InterfaceBinding.swift -------------------------------------------------------------------------------- /App/ExtensionIntents/NSUserActivity+IntentData.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/ExtensionIntents/NSUserActivity+IntentData.swift -------------------------------------------------------------------------------- /App/Features/Detail/Coordinator/DetailCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Features/Detail/Coordinator/DetailCoordinator.swift -------------------------------------------------------------------------------- /App/Features/Detail/ViewControllers/DetailViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Features/Detail/ViewControllers/DetailViewController.swift -------------------------------------------------------------------------------- /App/Features/Detail/ViewControllers/DetailViewController.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Features/Detail/ViewControllers/DetailViewController.xib -------------------------------------------------------------------------------- /App/Features/Detail/ViewModel/DetailViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Features/Detail/ViewModel/DetailViewModel.swift -------------------------------------------------------------------------------- /App/Features/Main/Coordinator/MainCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Features/Main/Coordinator/MainCoordinator.swift -------------------------------------------------------------------------------- /App/Features/Main/ViewControllers/MainViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Features/Main/ViewControllers/MainViewController.swift -------------------------------------------------------------------------------- /App/Features/Main/ViewControllers/MainViewController.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Features/Main/ViewControllers/MainViewController.xib -------------------------------------------------------------------------------- /App/Features/Main/ViewModel/MainViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Features/Main/ViewModel/MainViewModel.swift -------------------------------------------------------------------------------- /App/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Info.plist -------------------------------------------------------------------------------- /App/Plugins/Dependency Injection/DependencyGraph.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Plugins/Dependency Injection/DependencyGraph.swift -------------------------------------------------------------------------------- /App/Plugins/Dependency Injection/InterfaceBinding.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/App/Plugins/Dependency Injection/InterfaceBinding.swift -------------------------------------------------------------------------------- /AppTests/AppTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/AppTests/AppTests.swift -------------------------------------------------------------------------------- /AppTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/AppTests/Info.plist -------------------------------------------------------------------------------- /Data/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | /*.xcodeproj 5 | xcuserdata/ 6 | -------------------------------------------------------------------------------- /Data/Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Data/Package.swift -------------------------------------------------------------------------------- /Data/README.md: -------------------------------------------------------------------------------- 1 | # Data 2 | 3 | A description of this package. 4 | -------------------------------------------------------------------------------- /Data/Sources/Data/CacheInterface.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Data/Sources/Data/CacheInterface.swift -------------------------------------------------------------------------------- /Data/Sources/Data/Product/ProductRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Data/Sources/Data/Product/ProductRepository.swift -------------------------------------------------------------------------------- /Data/Sources/Data/Product/ProductServiceInterface.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Data/Sources/Data/Product/ProductServiceInterface.swift -------------------------------------------------------------------------------- /Data/Sources/Data/ServiceInterface.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Data/Sources/Data/ServiceInterface.swift -------------------------------------------------------------------------------- /Data/Tests/DataTests/DataTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Data/Tests/DataTests/DataTests.swift -------------------------------------------------------------------------------- /Domain/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | /*.xcodeproj 5 | xcuserdata/ 6 | -------------------------------------------------------------------------------- /Domain/Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Domain/Package.swift -------------------------------------------------------------------------------- /Domain/README.md: -------------------------------------------------------------------------------- 1 | # Domain 2 | 3 | A description of this package. 4 | -------------------------------------------------------------------------------- /Domain/Sources/Domain/Product/CreateProductUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Domain/Sources/Domain/Product/CreateProductUseCase.swift -------------------------------------------------------------------------------- /Domain/Sources/Domain/Product/ProductsUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Domain/Sources/Domain/Product/ProductsUseCase.swift -------------------------------------------------------------------------------- /Domain/Sources/Domain/UseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Domain/Sources/Domain/UseCase.swift -------------------------------------------------------------------------------- /Domain/Tests/DomainTests/DomainTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Domain/Tests/DomainTests/DomainTests.swift -------------------------------------------------------------------------------- /Entities/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | /*.xcodeproj 5 | xcuserdata/ 6 | -------------------------------------------------------------------------------- /Entities/Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Entities/Package.swift -------------------------------------------------------------------------------- /Entities/README.md: -------------------------------------------------------------------------------- 1 | # Entities 2 | 3 | A description of this package. 4 | -------------------------------------------------------------------------------- /Entities/Sources/Entities/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Entities/Sources/Entities/Product.swift -------------------------------------------------------------------------------- /Entities/Tests/EntitiesTests/EntitiesTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Entities/Tests/EntitiesTests/EntitiesTests.swift -------------------------------------------------------------------------------- /Plugins/NetworkServices/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | /*.xcodeproj 5 | xcuserdata/ 6 | -------------------------------------------------------------------------------- /Plugins/NetworkServices/Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Plugins/NetworkServices/Package.swift -------------------------------------------------------------------------------- /Plugins/NetworkServices/README.md: -------------------------------------------------------------------------------- 1 | # NetworkServices 2 | 3 | A description of this package. 4 | -------------------------------------------------------------------------------- /Plugins/NetworkServices/Sources/NetworkServices/ProductService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Plugins/NetworkServices/Sources/NetworkServices/ProductService.swift -------------------------------------------------------------------------------- /Plugins/NetworkServices/Tests/NetworkServicesTests/NetworkServicesTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Plugins/NetworkServices/Tests/NetworkServicesTests/NetworkServicesTests.swift -------------------------------------------------------------------------------- /Plugins/Persistence/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | /*.xcodeproj 5 | xcuserdata/ 6 | -------------------------------------------------------------------------------- /Plugins/Persistence/Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Plugins/Persistence/Package.swift -------------------------------------------------------------------------------- /Plugins/Persistence/README.md: -------------------------------------------------------------------------------- 1 | # Persistence 2 | 3 | A description of this package. 4 | -------------------------------------------------------------------------------- /Plugins/Persistence/Sources/Persistence/Persistence.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Plugins/Persistence/Sources/Persistence/Persistence.swift -------------------------------------------------------------------------------- /Plugins/Persistence/Sources/Persistence/UserDefaultsInterface.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Plugins/Persistence/Sources/Persistence/UserDefaultsInterface.swift -------------------------------------------------------------------------------- /Plugins/Persistence/Tests/PersistenceTests/PersistenceTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Plugins/Persistence/Tests/PersistenceTests/PersistenceTests.swift -------------------------------------------------------------------------------- /Plugins/Persistence/Tests/PersistenceTests/UserDefaultsMock.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/Plugins/Persistence/Tests/PersistenceTests/UserDefaultsMock.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/README.md -------------------------------------------------------------------------------- /SwiftCleanArchitecture.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/SwiftCleanArchitecture.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /SwiftCleanArchitecture.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/SwiftCleanArchitecture.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /SwiftCleanArchitecture.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CassiusPacheco/Swift-CleanArchitecture/HEAD/SwiftCleanArchitecture.xcworkspace/xcshareddata/swiftpm/Package.resolved --------------------------------------------------------------------------------