├── .gitignore ├── Podfile ├── UnsplashPhotos.xcodeproj ├── project.pbxproj ├── xcshareddata │ └── xcschemes │ │ └── UnsplashPhotos.xcscheme └── xcuserdata │ └── zafar.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── UnsplashPhotos ├── Application Layer │ ├── AppCoordinator.swift │ └── AppDelegate.swift ├── Business Logic Layer │ ├── Models │ │ ├── UnsplashPhoto.swift │ │ └── UnsplashPhotos.xcdatamodeld │ │ │ └── UnsplashPhoto.xcdatamodel │ │ │ └── contents │ └── Services │ │ ├── DataLoadingService.swift │ │ ├── DataToImageConversionService.swift │ │ └── UnsplashPhotosService.swift ├── Core Layer │ ├── Network │ │ ├── Base │ │ │ ├── Endpoint+URL.swift │ │ │ └── Endpoint.swift │ │ ├── Endpoints │ │ │ └── UnsplashEndpoints.swift │ │ ├── Error │ │ │ └── NetworkError.swift │ │ └── Network Client │ │ │ └── NetworkClient.swift │ ├── Resources │ │ └── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ │ └── Contents.json │ └── Utilities │ │ ├── Dimensions.swift │ │ └── Extensions.swift ├── Presentation Layer │ ├── Coordinator │ │ └── Coordinator.swift │ └── Scenes │ │ ├── Photo Detail │ │ ├── Coordinator │ │ │ └── PhotoDetailCoordinator.swift │ │ ├── View Model │ │ │ └── PhotoDetailViewModel.swift │ │ └── View │ │ │ └── PhotoDetailViewController.swift │ │ └── Photos │ │ ├── Coordinator │ │ └── PhotosCoordinator.swift │ │ ├── View Model │ │ └── PhotosViewModel.swift │ │ └── View │ │ ├── PhotoCell.swift │ │ └── PhotosViewController.swift └── Supporting Files │ ├── Base.lproj │ └── LaunchScreen.storyboard │ └── Info.plist └── UnsplashPhotosTests ├── Info.plist ├── PhotoDetailViewModelTests.swift └── PhotosViewModelTests.swift /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/.gitignore -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/Podfile -------------------------------------------------------------------------------- /UnsplashPhotos.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /UnsplashPhotos.xcodeproj/xcshareddata/xcschemes/UnsplashPhotos.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos.xcodeproj/xcshareddata/xcschemes/UnsplashPhotos.xcscheme -------------------------------------------------------------------------------- /UnsplashPhotos.xcodeproj/xcuserdata/zafar.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos.xcodeproj/xcuserdata/zafar.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /UnsplashPhotos/Application Layer/AppCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Application Layer/AppCoordinator.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Application Layer/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Application Layer/AppDelegate.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Business Logic Layer/Models/UnsplashPhoto.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Business Logic Layer/Models/UnsplashPhoto.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Business Logic Layer/Models/UnsplashPhotos.xcdatamodeld/UnsplashPhoto.xcdatamodel/contents: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Business Logic Layer/Models/UnsplashPhotos.xcdatamodeld/UnsplashPhoto.xcdatamodel/contents -------------------------------------------------------------------------------- /UnsplashPhotos/Business Logic Layer/Services/DataLoadingService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Business Logic Layer/Services/DataLoadingService.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Business Logic Layer/Services/DataToImageConversionService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Business Logic Layer/Services/DataToImageConversionService.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Business Logic Layer/Services/UnsplashPhotosService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Business Logic Layer/Services/UnsplashPhotosService.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Core Layer/Network/Base/Endpoint+URL.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Core Layer/Network/Base/Endpoint+URL.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Core Layer/Network/Base/Endpoint.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Core Layer/Network/Base/Endpoint.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Core Layer/Network/Endpoints/UnsplashEndpoints.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Core Layer/Network/Endpoints/UnsplashEndpoints.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Core Layer/Network/Error/NetworkError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Core Layer/Network/Error/NetworkError.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Core Layer/Network/Network Client/NetworkClient.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Core Layer/Network/Network Client/NetworkClient.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Core Layer/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Core Layer/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /UnsplashPhotos/Core Layer/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Core Layer/Resources/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /UnsplashPhotos/Core Layer/Utilities/Dimensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Core Layer/Utilities/Dimensions.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Core Layer/Utilities/Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Core Layer/Utilities/Extensions.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Presentation Layer/Coordinator/Coordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Presentation Layer/Coordinator/Coordinator.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Presentation Layer/Scenes/Photo Detail/Coordinator/PhotoDetailCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Presentation Layer/Scenes/Photo Detail/Coordinator/PhotoDetailCoordinator.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Presentation Layer/Scenes/Photo Detail/View Model/PhotoDetailViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Presentation Layer/Scenes/Photo Detail/View Model/PhotoDetailViewModel.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Presentation Layer/Scenes/Photo Detail/View/PhotoDetailViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Presentation Layer/Scenes/Photo Detail/View/PhotoDetailViewController.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Presentation Layer/Scenes/Photos/Coordinator/PhotosCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Presentation Layer/Scenes/Photos/Coordinator/PhotosCoordinator.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Presentation Layer/Scenes/Photos/View Model/PhotosViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Presentation Layer/Scenes/Photos/View Model/PhotosViewModel.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Presentation Layer/Scenes/Photos/View/PhotoCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Presentation Layer/Scenes/Photos/View/PhotoCell.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Presentation Layer/Scenes/Photos/View/PhotosViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Presentation Layer/Scenes/Photos/View/PhotosViewController.swift -------------------------------------------------------------------------------- /UnsplashPhotos/Supporting Files/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Supporting Files/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /UnsplashPhotos/Supporting Files/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotos/Supporting Files/Info.plist -------------------------------------------------------------------------------- /UnsplashPhotosTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotosTests/Info.plist -------------------------------------------------------------------------------- /UnsplashPhotosTests/PhotoDetailViewModelTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotosTests/PhotoDetailViewModelTests.swift -------------------------------------------------------------------------------- /UnsplashPhotosTests/PhotosViewModelTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zafarivaev/MVVM-RxSwift/HEAD/UnsplashPhotosTests/PhotosViewModelTests.swift --------------------------------------------------------------------------------