diff --git a/SideDishApp/Pods/Pods.xcodeproj/xcuserdata/ohking.xcuserdatad/xcschemes/xcschememanagement.plist b/SideDishApp/Pods/Pods.xcodeproj/xcuserdata/ohking.xcuserdatad/xcschemes/xcschememanagement.plist index 5680e7be7..171ae30bf 100644 --- a/SideDishApp/Pods/Pods.xcodeproj/xcuserdata/ohking.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/SideDishApp/Pods/Pods.xcodeproj/xcuserdata/ohking.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,12 +7,12 @@ Pods-SideDishApp.xcscheme_^#shared#^_ orderHint - 1 + 2 Toast-Swift.xcscheme_^#shared#^_ orderHint - 0 + 1 diff --git a/SideDishApp/SideDishApp.xcodeproj/project.pbxproj b/SideDishApp/SideDishApp.xcodeproj/project.pbxproj index fc1afdb51..5040aa1e4 100644 --- a/SideDishApp/SideDishApp.xcodeproj/project.pbxproj +++ b/SideDishApp/SideDishApp.xcodeproj/project.pbxproj @@ -15,18 +15,16 @@ 1E1DBADE262DDDFD0050FE6C /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1E1DBADC262DDDFD0050FE6C /* LaunchScreen.storyboard */; }; 1E5053C82636F504005615F5 /* DishesEntity+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E5053C72636F504005615F5 /* DishesEntity+CoreDataProperties.swift */; }; 1E5053C92636F504005615F5 /* DishesEntity+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E5053C52636F504005615F5 /* DishesEntity+CoreDataClass.swift */; }; + 1E50540B26395ADB005615F5 /* LoadingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E50540A26395ADB005615F5 /* LoadingViewController.swift */; }; 1ECD5F62262F256000DC56C0 /* Endpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD5F61262F256000DC56C0 /* Endpoint.swift */; }; 1ECD5F66262F2E1E00DC56C0 /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD5F65262F2E1E00DC56C0 /* NetworkManager.swift */; }; 1ECD5F6A262F3B6500DC56C0 /* DishNetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD5F69262F3B6500DC56C0 /* DishNetworkManager.swift */; }; 1ECD5F6D262F3C1700DC56C0 /* Dish.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD5F6C262F3C1700DC56C0 /* Dish.swift */; }; 1ECD5F70262F3F1C00DC56C0 /* MenuListUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD5F6F262F3F1C00DC56C0 /* MenuListUseCase.swift */; }; 1ECD5F73262F405100DC56C0 /* MenuListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD5F72262F405100DC56C0 /* MenuListViewModel.swift */; }; - 1ECF2E812632A70F006982BE /* LoadingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1ECF2E802632A70F006982BE /* LoadingView.xib */; }; - 1ECF2E842632A862006982BE /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECF2E832632A862006982BE /* LoadingView.swift */; }; 1ECF2EBC2635D6FD006982BE /* MenuRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECF2EBB2635D6FD006982BE /* MenuRepository.swift */; }; 1ECF2EC02635DE65006982BE /* CoreData.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 1ECF2EBE2635DE65006982BE /* CoreData.xcdatamodeld */; }; 1ECF2EC32635E2EC006982BE /* CoreDataMenuResponseStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECF2EC22635E2EC006982BE /* CoreDataMenuResponseStorage.swift */; }; - B0911E6F262EA29200D5EBEC /* DishCardCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0911E6E262EA29200D5EBEC /* DishCardCell.swift */; }; B04466292636911D00DAD616 /* DishCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04466272636911D00DAD616 /* DishCell.swift */; }; B044662A2636911D00DAD616 /* DishCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = B04466282636911D00DAD616 /* DishCell.xib */; }; B0911EA026316B9A00D5EBEC /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0911E9F26316B9A00D5EBEC /* String+Extension.swift */; }; @@ -46,14 +44,13 @@ 1E1DBADF262DDDFD0050FE6C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../Info.plist; sourceTree = ""; }; 1E5053C52636F504005615F5 /* DishesEntity+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "DishesEntity+CoreDataClass.swift"; path = "/Users/ohking/Desktop/masters_codesquad/sidedish/SideDishApp/SideDishApp/Data/Persistence/DishesEntity+CoreDataClass.swift"; sourceTree = ""; }; 1E5053C72636F504005615F5 /* DishesEntity+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "DishesEntity+CoreDataProperties.swift"; path = "/Users/ohking/Desktop/masters_codesquad/sidedish/SideDishApp/SideDishApp/Data/Persistence/DishesEntity+CoreDataProperties.swift"; sourceTree = ""; }; + 1E50540A26395ADB005615F5 /* LoadingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingViewController.swift; sourceTree = ""; }; 1ECD5F61262F256000DC56C0 /* Endpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Endpoint.swift; sourceTree = ""; }; 1ECD5F65262F2E1E00DC56C0 /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; 1ECD5F69262F3B6500DC56C0 /* DishNetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DishNetworkManager.swift; sourceTree = ""; }; 1ECD5F6C262F3C1700DC56C0 /* Dish.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Dish.swift; sourceTree = ""; }; 1ECD5F6F262F3F1C00DC56C0 /* MenuListUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuListUseCase.swift; sourceTree = ""; }; 1ECD5F72262F405100DC56C0 /* MenuListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuListViewModel.swift; sourceTree = ""; }; - 1ECF2E802632A70F006982BE /* LoadingView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoadingView.xib; sourceTree = ""; }; - 1ECF2E832632A862006982BE /* LoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = ""; }; 1ECF2EBB2635D6FD006982BE /* MenuRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuRepository.swift; sourceTree = ""; }; 1ECF2EBF2635DE65006982BE /* CoreData.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = CoreData.xcdatamodel; sourceTree = ""; }; 1ECF2EC22635E2EC006982BE /* CoreDataMenuResponseStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataMenuResponseStorage.swift; sourceTree = ""; }; @@ -179,9 +176,6 @@ isa = PBXGroup; children = ( 1E1DBAD7262DDDFC0050FE6C /* Main.storyboard */, - B0911E6E262EA29200D5EBEC /* DishCardCell.swift */, - 1ECF2E802632A70F006982BE /* LoadingView.xib */, - 1ECF2E832632A862006982BE /* LoadingView.swift */, B04466272636911D00DAD616 /* DishCell.swift */, B04466282636911D00DAD616 /* DishCell.xib */, ); @@ -191,6 +185,7 @@ 1E1DBAED262DDE640050FE6C /* ViewController */ = { isa = PBXGroup; children = ( + 1E50540A26395ADB005615F5 /* LoadingViewController.swift */, 1E1DBAD5262DDDFC0050FE6C /* ViewController.swift */, B0911EA32631AF3400D5EBEC /* DiffableProvider.swift */, B0911EA72632B7A000D5EBEC /* DishCollectionViewDelegate.swift */, @@ -327,7 +322,6 @@ buildActionMask = 2147483647; files = ( 1E1DBADE262DDDFD0050FE6C /* LaunchScreen.storyboard in Resources */, - 1ECF2E812632A70F006982BE /* LoadingView.xib in Resources */, B044662A2636911D00DAD616 /* DishCell.xib in Resources */, 1E1DBADB262DDDFD0050FE6C /* Assets.xcassets in Resources */, 1E1DBAD9262DDDFC0050FE6C /* Main.storyboard in Resources */, @@ -390,6 +384,7 @@ 1E1DBAD6262DDDFC0050FE6C /* ViewController.swift in Sources */, 1ECD5F70262F3F1C00DC56C0 /* MenuListUseCase.swift in Sources */, 1ECD5F6A262F3B6500DC56C0 /* DishNetworkManager.swift in Sources */, + 1E50540B26395ADB005615F5 /* LoadingViewController.swift in Sources */, 1E5053C82636F504005615F5 /* DishesEntity+CoreDataProperties.swift in Sources */, B04466292636911D00DAD616 /* DishCell.swift in Sources */, 1E1DBAD2262DDDFC0050FE6C /* AppDelegate.swift in Sources */, @@ -399,7 +394,6 @@ B0911EA42631AF3400D5EBEC /* DiffableProvider.swift in Sources */, B0911EA82632B7A100D5EBEC /* DishCollectionViewDelegate.swift in Sources */, 1E1DBAD4262DDDFC0050FE6C /* SceneDelegate.swift in Sources */, - 1ECF2E842632A862006982BE /* LoadingView.swift in Sources */, 1E5053C92636F504005615F5 /* DishesEntity+CoreDataClass.swift in Sources */, 1ECD5F73262F405100DC56C0 /* MenuListViewModel.swift in Sources */, ); diff --git a/SideDishApp/SideDishApp.xcodeproj/xcuserdata/ohking.xcuserdatad/xcschemes/xcschememanagement.plist b/SideDishApp/SideDishApp.xcodeproj/xcuserdata/ohking.xcuserdatad/xcschemes/xcschememanagement.plist index edf0a7777..3ca11deb8 100644 --- a/SideDishApp/SideDishApp.xcodeproj/xcuserdata/ohking.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/SideDishApp/SideDishApp.xcodeproj/xcuserdata/ohking.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ SideDishApp.xcscheme_^#shared#^_ orderHint - 2 + 0 diff --git a/SideDishApp/SideDishApp.xcworkspace/xcuserdata/ohking.xcuserdatad/UserInterfaceState.xcuserstate b/SideDishApp/SideDishApp.xcworkspace/xcuserdata/ohking.xcuserdatad/UserInterfaceState.xcuserstate index 47d2742fe..a82b0efca 100644 Binary files a/SideDishApp/SideDishApp.xcworkspace/xcuserdata/ohking.xcuserdatad/UserInterfaceState.xcuserstate and b/SideDishApp/SideDishApp.xcworkspace/xcuserdata/ohking.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/SideDishApp/SideDishApp.xcworkspace/xcuserdata/ohking.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/SideDishApp/SideDishApp.xcworkspace/xcuserdata/ohking.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 95fed2708..df9ecdbf5 100644 --- a/SideDishApp/SideDishApp.xcworkspace/xcuserdata/ohking.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/SideDishApp/SideDishApp.xcworkspace/xcuserdata/ohking.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -3,121 +3,4 @@ uuid = "A5E17B2F-95B0-4582-ACBD-4CD3BE453B84" type = "0" version = "2.0"> - - - - - - - - - - - - - - - - - - - - - - - - - >>>>>> Dev-iOS - landmarkType = "7"> - - - diff --git a/SideDishApp/SideDishApp/Presentation/UI/View/Base.lproj/Main.storyboard b/SideDishApp/SideDishApp/Presentation/UI/View/Base.lproj/Main.storyboard index 8c36ff540..7413c7c10 100644 --- a/SideDishApp/SideDishApp/Presentation/UI/View/Base.lproj/Main.storyboard +++ b/SideDishApp/SideDishApp/Presentation/UI/View/Base.lproj/Main.storyboard @@ -1,5 +1,5 @@ - + @@ -12,7 +12,7 @@ - + @@ -114,10 +114,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -133,6 +159,7 @@ + diff --git a/SideDishApp/SideDishApp/Presentation/UI/View/LoadingView.swift b/SideDishApp/SideDishApp/Presentation/UI/View/LoadingView.swift deleted file mode 100644 index 6505d4686..000000000 --- a/SideDishApp/SideDishApp/Presentation/UI/View/LoadingView.swift +++ /dev/null @@ -1,30 +0,0 @@ -// -// LoadingView.swift -// SideDishApp -// -// Created by 오킹 on 2021/04/23. -// - -import UIKit - -class LoadingView: UIView { - - @IBOutlet weak var imageView: UIImageView! - - override init(frame: CGRect) { - super.init(frame: frame) - initXIB() - } - - required init?(coder: NSCoder) { - super.init(coder: coder) - initXIB() - } - - func initXIB() { - guard let view = Bundle.main.loadNibNamed("LoadingView", owner: self, options: nil)?.first as? UIView else { return } - - view.frame = self.bounds - self.addSubview(view) - } -} diff --git a/SideDishApp/SideDishApp/Presentation/UI/View/LoadingView.xib b/SideDishApp/SideDishApp/Presentation/UI/View/LoadingView.xib deleted file mode 100644 index 26d92a6de..000000000 --- a/SideDishApp/SideDishApp/Presentation/UI/View/LoadingView.xib +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SideDishApp/SideDishApp/Presentation/UI/ViewController/LoadingViewController.swift b/SideDishApp/SideDishApp/Presentation/UI/ViewController/LoadingViewController.swift new file mode 100644 index 000000000..da380297a --- /dev/null +++ b/SideDishApp/SideDishApp/Presentation/UI/ViewController/LoadingViewController.swift @@ -0,0 +1,34 @@ +// +// LoadingViewController.swift +// SideDishApp +// +// Created by 오킹 on 2021/04/28. +// + +import UIKit + +class LoadingViewController: UIViewController { + + private let menuListViewModel = MenuListViewModel() + + override func viewDidLoad() { + super.viewDidLoad() + + } + + override func viewDidAppear(_ animated: Bool) { + menuListViewModel.requestDishes() { + nextPage() + } + } + + private func nextPage() { + guard let nextPage = self.storyboard?.instantiateViewController(identifier: "ViewController") as? ViewController else { + return + } + nextPage.menuListViewModel = self.menuListViewModel + nextPage.bind() + nextPage.modalPresentationStyle = .fullScreen + self.present(nextPage, animated: false, completion: nil) + } +} diff --git a/SideDishApp/SideDishApp/Presentation/UI/ViewController/ViewController.swift b/SideDishApp/SideDishApp/Presentation/UI/ViewController/ViewController.swift index 52e9b9e3c..31b251b7c 100644 --- a/SideDishApp/SideDishApp/Presentation/UI/ViewController/ViewController.swift +++ b/SideDishApp/SideDishApp/Presentation/UI/ViewController/ViewController.swift @@ -13,9 +13,8 @@ class ViewController: UIViewController { @IBOutlet weak var dishCollectionView: UICollectionView! - private let menuListViewModel = MenuListViewModel() + var menuListViewModel: MenuListViewModel! private var subscriptions = Set() - private var loadingView = LoadingView() var dataSource : UICollectionViewDiffableDataSource! let dishCollectionViewDelegate = DishCollectionViewDelegate() var snapshot = NSDiffableDataSourceSnapshot() @@ -23,20 +22,10 @@ class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - setLoadingView() dishCollectionView.delegate = dishCollectionViewDelegate dataSource = DiffableProvider().configureDataSource(collectionView: dishCollectionView) - bind() - menuListViewModel.requestDishes() } - - func setLoadingView() { - let loadingiewFrame = CGRect(x: 0, y: 0, width: 100, height: 100) - loadingView = LoadingView(frame: loadingiewFrame) - loadingView.center = self.view.center - self.view.addSubview(loadingView) - } - + private func addDataToSnapshot (dishes: [Dishes]) { let dishesArray = dishes as Array @@ -54,7 +43,6 @@ class ViewController: UIViewController { .sink(receiveCompletion: { _ in //error }, receiveValue: { mainDishes in - self.loadingView.removeFromSuperview() self.addDataToSnapshot(dishes: mainDishes) }) .store(in: &subscriptions) diff --git a/SideDishApp/SideDishApp/Presentation/ViewModel/MenuListViewModel.swift b/SideDishApp/SideDishApp/Presentation/ViewModel/MenuListViewModel.swift index 87b621428..af795f1be 100644 --- a/SideDishApp/SideDishApp/Presentation/ViewModel/MenuListViewModel.swift +++ b/SideDishApp/SideDishApp/Presentation/ViewModel/MenuListViewModel.swift @@ -60,9 +60,10 @@ class MenuListViewModel { .store(in: &subscriptions) } - func requestDishes() { + func requestDishes(completion: () -> Void) { fetchDishes(dish: "main") fetchDishes(dish: "soup") fetchDishes(dish: "side") + completion() } }