├── .gitignore ├── .swift-version ├── .swiftlint.yml ├── Podfile ├── Podfile.lock ├── README.md ├── Recipes.xcodeproj └── project.pbxproj ├── RecipesTests ├── Fixture │ ├── recipes.json │ └── singleRecipe.json ├── Info.plist ├── Library │ ├── Model │ │ └── RecipeTests.swift │ ├── Service │ │ ├── CacheServiceTests.swift │ │ └── RecipesService.swift │ └── Utils │ │ └── DebouncerTests.swift └── Mock │ └── MockNetworkService.swift ├── RecipesUITests ├── Info.plist └── RecipesUITests.swift ├── Resource ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── icon_1024@1x.png │ │ ├── icon_20@1x.png │ │ ├── icon_20@2x.png │ │ ├── icon_20@3x.png │ │ ├── icon_29@1x.png │ │ ├── icon_29@2x.png │ │ ├── icon_29@3x.png │ │ ├── icon_40@1x.png │ │ ├── icon_40@2x.png │ │ ├── icon_40@3x.png │ │ ├── icon_60@2x.png │ │ ├── icon_60@3x.png │ │ ├── icon_76@1x.png │ │ ├── icon_76@2x.png │ │ └── icon_83.5@2x.png │ ├── Contents.json │ ├── launchImage.imageset │ │ ├── Contents.json │ │ └── Spoon.jpg │ ├── notFound.imageset │ │ ├── Contents.json │ │ └── notFound.png │ └── recipePlaceholder.imageset │ │ ├── Contents.json │ │ └── recipePlaceholder.jpg ├── Base.lproj │ └── LaunchScreen.storyboard └── Info.plist ├── Screenshots ├── AppIcon.png ├── AppStore.png ├── Detail.png ├── Home.png ├── Insomnia.png ├── LaunchScreen.png ├── MARK.png ├── MainGuard.png ├── Measurement.png ├── Project.png └── SwiftLint.png └── Source ├── Feature ├── Detail │ ├── RecipeDetailView.swift │ └── RecipeDetailViewController.swift ├── Home │ └── HomeViewController.swift ├── List │ ├── RecipeCell.swift │ └── RecipeListViewController.swift └── Search │ └── SearchComponent.swift └── Library ├── Adapter └── Adapter.swift ├── App ├── AppConfig.swift ├── AppDelegate.swift └── Color.swift ├── Base └── BaseController.swift ├── Constants └── R.generated.swift ├── Extensions ├── NSLayoutConstraint+Extensions.swift ├── UICollectionView+Extensions.swift ├── UIColor+Extensions.swift ├── UIImageView+Extensions.swift ├── UIView+Extensions.swift └── UIViewController+Extensions.swift ├── Flow ├── AppFlowController.swift └── RecipeFlowController.swift ├── Model └── Recipe.swift ├── Networking ├── Networking.swift └── Resource.swift ├── Service ├── CacheService.swift ├── ImageService.swift ├── NetworkService.swift └── RecipesService.swift ├── Utils └── Debouncer.swift └── View ├── EmptyView.swift └── ScrollableView.swift /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/.gitignore -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 4.1 2 | -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/.swiftlint.yml -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Podfile -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Podfile.lock -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/README.md -------------------------------------------------------------------------------- /Recipes.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Recipes.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /RecipesTests/Fixture/recipes.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesTests/Fixture/recipes.json -------------------------------------------------------------------------------- /RecipesTests/Fixture/singleRecipe.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesTests/Fixture/singleRecipe.json -------------------------------------------------------------------------------- /RecipesTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesTests/Info.plist -------------------------------------------------------------------------------- /RecipesTests/Library/Model/RecipeTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesTests/Library/Model/RecipeTests.swift -------------------------------------------------------------------------------- /RecipesTests/Library/Service/CacheServiceTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesTests/Library/Service/CacheServiceTests.swift -------------------------------------------------------------------------------- /RecipesTests/Library/Service/RecipesService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesTests/Library/Service/RecipesService.swift -------------------------------------------------------------------------------- /RecipesTests/Library/Utils/DebouncerTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesTests/Library/Utils/DebouncerTests.swift -------------------------------------------------------------------------------- /RecipesTests/Mock/MockNetworkService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesTests/Mock/MockNetworkService.swift -------------------------------------------------------------------------------- /RecipesUITests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesUITests/Info.plist -------------------------------------------------------------------------------- /RecipesUITests/RecipesUITests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/RecipesUITests/RecipesUITests.swift -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_1024@1x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_20@1x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_20@2x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_20@3x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_29@1x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_29@2x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_29@3x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_40@1x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_40@2x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_40@3x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_60@2x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_60@3x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_76@1x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_76@2x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/AppIcon.appiconset/icon_83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/AppIcon.appiconset/icon_83.5@2x.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /Resource/Assets.xcassets/launchImage.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/launchImage.imageset/Contents.json -------------------------------------------------------------------------------- /Resource/Assets.xcassets/launchImage.imageset/Spoon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/launchImage.imageset/Spoon.jpg -------------------------------------------------------------------------------- /Resource/Assets.xcassets/notFound.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/notFound.imageset/Contents.json -------------------------------------------------------------------------------- /Resource/Assets.xcassets/notFound.imageset/notFound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/notFound.imageset/notFound.png -------------------------------------------------------------------------------- /Resource/Assets.xcassets/recipePlaceholder.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/recipePlaceholder.imageset/Contents.json -------------------------------------------------------------------------------- /Resource/Assets.xcassets/recipePlaceholder.imageset/recipePlaceholder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Assets.xcassets/recipePlaceholder.imageset/recipePlaceholder.jpg -------------------------------------------------------------------------------- /Resource/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /Resource/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Resource/Info.plist -------------------------------------------------------------------------------- /Screenshots/AppIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/AppIcon.png -------------------------------------------------------------------------------- /Screenshots/AppStore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/AppStore.png -------------------------------------------------------------------------------- /Screenshots/Detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/Detail.png -------------------------------------------------------------------------------- /Screenshots/Home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/Home.png -------------------------------------------------------------------------------- /Screenshots/Insomnia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/Insomnia.png -------------------------------------------------------------------------------- /Screenshots/LaunchScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/LaunchScreen.png -------------------------------------------------------------------------------- /Screenshots/MARK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/MARK.png -------------------------------------------------------------------------------- /Screenshots/MainGuard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/MainGuard.png -------------------------------------------------------------------------------- /Screenshots/Measurement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/Measurement.png -------------------------------------------------------------------------------- /Screenshots/Project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/Project.png -------------------------------------------------------------------------------- /Screenshots/SwiftLint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Screenshots/SwiftLint.png -------------------------------------------------------------------------------- /Source/Feature/Detail/RecipeDetailView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Feature/Detail/RecipeDetailView.swift -------------------------------------------------------------------------------- /Source/Feature/Detail/RecipeDetailViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Feature/Detail/RecipeDetailViewController.swift -------------------------------------------------------------------------------- /Source/Feature/Home/HomeViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Feature/Home/HomeViewController.swift -------------------------------------------------------------------------------- /Source/Feature/List/RecipeCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Feature/List/RecipeCell.swift -------------------------------------------------------------------------------- /Source/Feature/List/RecipeListViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Feature/List/RecipeListViewController.swift -------------------------------------------------------------------------------- /Source/Feature/Search/SearchComponent.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Feature/Search/SearchComponent.swift -------------------------------------------------------------------------------- /Source/Library/Adapter/Adapter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Adapter/Adapter.swift -------------------------------------------------------------------------------- /Source/Library/App/AppConfig.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/App/AppConfig.swift -------------------------------------------------------------------------------- /Source/Library/App/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/App/AppDelegate.swift -------------------------------------------------------------------------------- /Source/Library/App/Color.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/App/Color.swift -------------------------------------------------------------------------------- /Source/Library/Base/BaseController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Base/BaseController.swift -------------------------------------------------------------------------------- /Source/Library/Constants/R.generated.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Constants/R.generated.swift -------------------------------------------------------------------------------- /Source/Library/Extensions/NSLayoutConstraint+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Extensions/NSLayoutConstraint+Extensions.swift -------------------------------------------------------------------------------- /Source/Library/Extensions/UICollectionView+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Extensions/UICollectionView+Extensions.swift -------------------------------------------------------------------------------- /Source/Library/Extensions/UIColor+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Extensions/UIColor+Extensions.swift -------------------------------------------------------------------------------- /Source/Library/Extensions/UIImageView+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Extensions/UIImageView+Extensions.swift -------------------------------------------------------------------------------- /Source/Library/Extensions/UIView+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Extensions/UIView+Extensions.swift -------------------------------------------------------------------------------- /Source/Library/Extensions/UIViewController+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Extensions/UIViewController+Extensions.swift -------------------------------------------------------------------------------- /Source/Library/Flow/AppFlowController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Flow/AppFlowController.swift -------------------------------------------------------------------------------- /Source/Library/Flow/RecipeFlowController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Flow/RecipeFlowController.swift -------------------------------------------------------------------------------- /Source/Library/Model/Recipe.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Model/Recipe.swift -------------------------------------------------------------------------------- /Source/Library/Networking/Networking.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Networking/Networking.swift -------------------------------------------------------------------------------- /Source/Library/Networking/Resource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Networking/Resource.swift -------------------------------------------------------------------------------- /Source/Library/Service/CacheService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Service/CacheService.swift -------------------------------------------------------------------------------- /Source/Library/Service/ImageService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Service/ImageService.swift -------------------------------------------------------------------------------- /Source/Library/Service/NetworkService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Service/NetworkService.swift -------------------------------------------------------------------------------- /Source/Library/Service/RecipesService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Service/RecipesService.swift -------------------------------------------------------------------------------- /Source/Library/Utils/Debouncer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/Utils/Debouncer.swift -------------------------------------------------------------------------------- /Source/Library/View/EmptyView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/View/EmptyView.swift -------------------------------------------------------------------------------- /Source/Library/View/ScrollableView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Recipes/HEAD/Source/Library/View/ScrollableView.swift --------------------------------------------------------------------------------