├── ExampleMVVM.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── macbookairm1.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── macbookairm1.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ └── xcschememanagement.plist ├── ExampleMVVM ├── App │ └── ExampleMVVMApp.swift ├── Core │ └── Extensions │ │ └── Extension+Date.swift ├── Data │ ├── Local │ │ └── LocalWeatherDataSource.swift │ ├── Remote │ │ └── RemoteWeatherDataSource.swift │ └── Repositories │ │ └── WeatherRepositoryImpl.swift ├── Domain │ ├── Entities │ │ ├── City.swift │ │ ├── Temperature.swift │ │ └── Weather.swift │ ├── Interfaces │ │ ├── WeatherDataSource.swift │ │ └── WeatherRepository.swift │ └── UseCases │ │ └── FetchWeatherUseCase.swift ├── Infrastructure │ ├── Interfaces │ │ ├── APIClientProtocol.swift │ │ ├── ConfigurationProtocol.swift │ │ └── JSONLoaderProtocol.swift │ ├── Network │ │ ├── APIClient.swift │ │ ├── Configuration │ │ │ └── ConfigurationManager.swift │ │ ├── HTTPMethod.swift │ │ └── WeatherAPIConfiguration.swift │ └── Utilities │ │ └── JSONLoader.swift ├── Presentation │ └── Weather │ │ ├── View │ │ ├── WeatherRowView.swift │ │ └── WeatherView.swift │ │ └── ViewModel │ │ └── WeatherViewModel.swift ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json └── Resources │ ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ └── weather_data.json ├── ExampleMVVMTests ├── Core │ └── ConfigurationManagerTests.swift ├── Data │ └── WeatherRepositoryTests.swift ├── Domain │ └── FetchWeatherUseCaseTests.swift ├── ExampleMVVMTests.swift ├── Infrastructure │ └── APIClientTests.swift └── Presentation │ └── WeatherViewModelTests.swift ├── ExampleMVVMUITests ├── ExampleMVVMUITests.swift └── ExampleMVVMUITestsLaunchTests.swift └── README.md /ExampleMVVM.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /ExampleMVVM.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /ExampleMVVM.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /ExampleMVVM.xcodeproj/project.xcworkspace/xcuserdata/macbookairm1.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM.xcodeproj/project.xcworkspace/xcuserdata/macbookairm1.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ExampleMVVM.xcodeproj/xcuserdata/macbookairm1.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM.xcodeproj/xcuserdata/macbookairm1.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist -------------------------------------------------------------------------------- /ExampleMVVM.xcodeproj/xcuserdata/macbookairm1.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM.xcodeproj/xcuserdata/macbookairm1.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /ExampleMVVM/App/ExampleMVVMApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/App/ExampleMVVMApp.swift -------------------------------------------------------------------------------- /ExampleMVVM/Core/Extensions/Extension+Date.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Core/Extensions/Extension+Date.swift -------------------------------------------------------------------------------- /ExampleMVVM/Data/Local/LocalWeatherDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Data/Local/LocalWeatherDataSource.swift -------------------------------------------------------------------------------- /ExampleMVVM/Data/Remote/RemoteWeatherDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Data/Remote/RemoteWeatherDataSource.swift -------------------------------------------------------------------------------- /ExampleMVVM/Data/Repositories/WeatherRepositoryImpl.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Data/Repositories/WeatherRepositoryImpl.swift -------------------------------------------------------------------------------- /ExampleMVVM/Domain/Entities/City.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Domain/Entities/City.swift -------------------------------------------------------------------------------- /ExampleMVVM/Domain/Entities/Temperature.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Domain/Entities/Temperature.swift -------------------------------------------------------------------------------- /ExampleMVVM/Domain/Entities/Weather.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Domain/Entities/Weather.swift -------------------------------------------------------------------------------- /ExampleMVVM/Domain/Interfaces/WeatherDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Domain/Interfaces/WeatherDataSource.swift -------------------------------------------------------------------------------- /ExampleMVVM/Domain/Interfaces/WeatherRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Domain/Interfaces/WeatherRepository.swift -------------------------------------------------------------------------------- /ExampleMVVM/Domain/UseCases/FetchWeatherUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Domain/UseCases/FetchWeatherUseCase.swift -------------------------------------------------------------------------------- /ExampleMVVM/Infrastructure/Interfaces/APIClientProtocol.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Infrastructure/Interfaces/APIClientProtocol.swift -------------------------------------------------------------------------------- /ExampleMVVM/Infrastructure/Interfaces/ConfigurationProtocol.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Infrastructure/Interfaces/ConfigurationProtocol.swift -------------------------------------------------------------------------------- /ExampleMVVM/Infrastructure/Interfaces/JSONLoaderProtocol.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Infrastructure/Interfaces/JSONLoaderProtocol.swift -------------------------------------------------------------------------------- /ExampleMVVM/Infrastructure/Network/APIClient.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Infrastructure/Network/APIClient.swift -------------------------------------------------------------------------------- /ExampleMVVM/Infrastructure/Network/Configuration/ConfigurationManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Infrastructure/Network/Configuration/ConfigurationManager.swift -------------------------------------------------------------------------------- /ExampleMVVM/Infrastructure/Network/HTTPMethod.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Infrastructure/Network/HTTPMethod.swift -------------------------------------------------------------------------------- /ExampleMVVM/Infrastructure/Network/WeatherAPIConfiguration.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Infrastructure/Network/WeatherAPIConfiguration.swift -------------------------------------------------------------------------------- /ExampleMVVM/Infrastructure/Utilities/JSONLoader.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Infrastructure/Utilities/JSONLoader.swift -------------------------------------------------------------------------------- /ExampleMVVM/Presentation/Weather/View/WeatherRowView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Presentation/Weather/View/WeatherRowView.swift -------------------------------------------------------------------------------- /ExampleMVVM/Presentation/Weather/View/WeatherView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Presentation/Weather/View/WeatherView.swift -------------------------------------------------------------------------------- /ExampleMVVM/Presentation/Weather/ViewModel/WeatherViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Presentation/Weather/ViewModel/WeatherViewModel.swift -------------------------------------------------------------------------------- /ExampleMVVM/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /ExampleMVVM/Resources/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Resources/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /ExampleMVVM/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /ExampleMVVM/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Resources/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /ExampleMVVM/Resources/weather_data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVM/Resources/weather_data.json -------------------------------------------------------------------------------- /ExampleMVVMTests/Core/ConfigurationManagerTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVMTests/Core/ConfigurationManagerTests.swift -------------------------------------------------------------------------------- /ExampleMVVMTests/Data/WeatherRepositoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVMTests/Data/WeatherRepositoryTests.swift -------------------------------------------------------------------------------- /ExampleMVVMTests/Domain/FetchWeatherUseCaseTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVMTests/Domain/FetchWeatherUseCaseTests.swift -------------------------------------------------------------------------------- /ExampleMVVMTests/ExampleMVVMTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVMTests/ExampleMVVMTests.swift -------------------------------------------------------------------------------- /ExampleMVVMTests/Infrastructure/APIClientTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVMTests/Infrastructure/APIClientTests.swift -------------------------------------------------------------------------------- /ExampleMVVMTests/Presentation/WeatherViewModelTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVMTests/Presentation/WeatherViewModelTests.swift -------------------------------------------------------------------------------- /ExampleMVVMUITests/ExampleMVVMUITests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVMUITests/ExampleMVVMUITests.swift -------------------------------------------------------------------------------- /ExampleMVVMUITests/ExampleMVVMUITestsLaunchTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/ExampleMVVMUITests/ExampleMVVMUITestsLaunchTests.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nazmulkp/Clean-Architecture-Swiftui-MVVM/HEAD/README.md --------------------------------------------------------------------------------