diff --git a/iOS/Airbnb/Airbnb.xcodeproj/project.pbxproj b/iOS/Airbnb/Airbnb.xcodeproj/project.pbxproj index c5aa79b92..6e48fe7dc 100644 --- a/iOS/Airbnb/Airbnb.xcodeproj/project.pbxproj +++ b/iOS/Airbnb/Airbnb.xcodeproj/project.pbxproj @@ -7,13 +7,15 @@ objects = { /* Begin PBXBuildFile section */ + 2F584EE2F521CA3D9B4FDB01 /* Pods_AirbnbTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC24D93FDC31EC0EC1DE9E55 /* Pods_AirbnbTests.framework */; }; 5B06C2D9283F189A009F4CD4 /* TabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B06C2D8283F189A009F4CD4 /* TabBarController.swift */; }; 5B06C2DE283F4C92009F4CD4 /* CollectionHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B06C2DD283F4C92009F4CD4 /* CollectionHeaderView.swift */; }; 5B06C2E1283F5887009F4CD4 /* AdvertisingCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B06C2E0283F5887009F4CD4 /* AdvertisingCell.swift */; }; 5B06C2E4284067F7009F4CD4 /* HomeViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B06C2E3284067F7009F4CD4 /* HomeViewLayout.swift */; }; - 5B06C2E7284081EC009F4CD4 /* SearchViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B06C2E6284081EC009F4CD4 /* SearchViewDataSource.swift */; }; + 5B06C2E7284081EC009F4CD4 /* HomeViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B06C2E6284081EC009F4CD4 /* HomeViewDataSource.swift */; }; 5B06C2EA2840896C009F4CD4 /* NearbyDestinationCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B06C2E92840896C009F4CD4 /* NearbyDestinationCell.swift */; }; 5B06C2EC2840899B009F4CD4 /* LivingSpotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B06C2EB2840899B009F4CD4 /* LivingSpotCell.swift */; }; + 5B0BFD2C284DAD9F00BA1AD0 /* SearchListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B0BFD2B284DAD9F00BA1AD0 /* SearchListViewController.swift */; }; 5B4725622845ACC000A115A7 /* FavoriteSpotView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B4725612845ACC000A115A7 /* FavoriteSpotView.swift */; }; 5B4725642845B59200A115A7 /* TumbnailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B4725632845B59200A115A7 /* TumbnailCell.swift */; }; 5B4725672845BA3200A115A7 /* heartButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B4725662845BA3200A115A7 /* heartButton.swift */; }; @@ -23,6 +25,11 @@ 5B7D0F1A28496786000D9159 /* ReservationDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B7D0F1928496786000D9159 /* ReservationDataSource.swift */; }; 5B7D0F1C28496AD6000D9159 /* CheckInOutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B7D0F1B28496AD6000D9159 /* CheckInOutCell.swift */; }; 5B7D0F1E2849776B000D9159 /* SummaryInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B7D0F1D2849776B000D9159 /* SummaryInfoCell.swift */; }; + 5B86C6DC284F32FB00CC8514 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B86C6DB284F32FB00CC8514 /* SearchView.swift */; }; + 5B86C6DE284F33D900CC8514 /* SearchViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B86C6DD284F33D900CC8514 /* SearchViewCell.swift */; }; + 5B86C6E1284F37C100CC8514 /* SearchViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B86C6E0284F37C100CC8514 /* SearchViewDataSource.swift */; }; + 5B86C6E3284F439000CC8514 /* SearchViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B86C6E2284F439000CC8514 /* SearchViewLayout.swift */; }; + 5BC0EAA628504B3A00BCFFF8 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5BC0EAA528504B3A00BCFFF8 /* SnapKit */; }; 5BDBAB2428473D7D00A3243D /* FavoriteSpotViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDBAB2328473D7D00A3243D /* FavoriteSpotViewDataSource.swift */; }; 5BDDCC5B283C807300632526 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDDCC5A283C807300632526 /* AppDelegate.swift */; }; 5BDDCC5D283C807300632526 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDDCC5C283C807300632526 /* SceneDelegate.swift */; }; @@ -32,9 +39,15 @@ 5BDDCC72283C807600632526 /* AirbnbTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDDCC71283C807600632526 /* AirbnbTests.swift */; }; 5BDDCC7C283C807600632526 /* AirbnbUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDDCC7B283C807600632526 /* AirbnbUITests.swift */; }; 5BDDCC7E283C807600632526 /* AirbnbUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDDCC7D283C807600632526 /* AirbnbUITestsLaunchTests.swift */; }; - 5BDDCC8F283C981200632526 /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDDCC8E283C981200632526 /* SearchViewController.swift */; }; + 5BDDCC8F283C981200632526 /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDDCC8E283C981200632526 /* HomeViewController.swift */; }; 5BDDCC91283C983700632526 /* ReservationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDDCC90283C983700632526 /* ReservationViewController.swift */; }; 5BDDCC93283C9D9800632526 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDDCC92283C9D9800632526 /* HomeView.swift */; }; + 5BFC9D1C28526A3C003C6ADB /* LocationTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFC9D1B28526A3C003C6ADB /* LocationTableViewController.swift */; }; + 5BFC9D1F28526B30003C6ADB /* LocationViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFC9D1E28526B30003C6ADB /* LocationViewCell.swift */; }; + 5BFC9D2128527261003C6ADB /* LocationViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFC9D2028527261003C6ADB /* LocationViewDataSource.swift */; }; + 5BFC9D2328527CAB003C6ADB /* LocationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFC9D2228527CAB003C6ADB /* LocationView.swift */; }; + 7C9D57059E094B3EA2556D6C /* Pods_Airbnb.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9308226CCA716C4C268AD253 /* Pods_Airbnb.framework */; }; + 8F1D2A9DB06A1EF2F6ECCC80 /* Pods_Airbnb_AirbnbUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4D53584B72BE02D3194681C /* Pods_Airbnb_AirbnbUITests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -55,13 +68,16 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0C4BFBD34C93AC24288AC74F /* Pods-AirbnbTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirbnbTests.release.xcconfig"; path = "Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.release.xcconfig"; sourceTree = ""; }; + 34326D6057B598B251117DDB /* Pods-Airbnb.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Airbnb.release.xcconfig"; path = "Target Support Files/Pods-Airbnb/Pods-Airbnb.release.xcconfig"; sourceTree = ""; }; 5B06C2D8283F189A009F4CD4 /* TabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarController.swift; sourceTree = ""; }; 5B06C2DD283F4C92009F4CD4 /* CollectionHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionHeaderView.swift; sourceTree = ""; }; 5B06C2E0283F5887009F4CD4 /* AdvertisingCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvertisingCell.swift; sourceTree = ""; }; 5B06C2E3284067F7009F4CD4 /* HomeViewLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewLayout.swift; sourceTree = ""; }; - 5B06C2E6284081EC009F4CD4 /* SearchViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewDataSource.swift; sourceTree = ""; }; + 5B06C2E6284081EC009F4CD4 /* HomeViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewDataSource.swift; sourceTree = ""; }; 5B06C2E92840896C009F4CD4 /* NearbyDestinationCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearbyDestinationCell.swift; sourceTree = ""; }; 5B06C2EB2840899B009F4CD4 /* LivingSpotCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LivingSpotCell.swift; sourceTree = ""; }; + 5B0BFD2B284DAD9F00BA1AD0 /* SearchListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchListViewController.swift; sourceTree = ""; }; 5B4725612845ACC000A115A7 /* FavoriteSpotView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoriteSpotView.swift; sourceTree = ""; }; 5B4725632845B59200A115A7 /* TumbnailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TumbnailCell.swift; sourceTree = ""; }; 5B4725662845BA3200A115A7 /* heartButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = heartButton.swift; sourceTree = ""; }; @@ -71,6 +87,10 @@ 5B7D0F1928496786000D9159 /* ReservationDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReservationDataSource.swift; sourceTree = ""; }; 5B7D0F1B28496AD6000D9159 /* CheckInOutCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckInOutCell.swift; sourceTree = ""; }; 5B7D0F1D2849776B000D9159 /* SummaryInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SummaryInfoCell.swift; sourceTree = ""; }; + 5B86C6DB284F32FB00CC8514 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; + 5B86C6DD284F33D900CC8514 /* SearchViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewCell.swift; sourceTree = ""; }; + 5B86C6E0284F37C100CC8514 /* SearchViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewDataSource.swift; sourceTree = ""; }; + 5B86C6E2284F439000CC8514 /* SearchViewLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewLayout.swift; sourceTree = ""; }; 5BDBAB2328473D7D00A3243D /* FavoriteSpotViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoriteSpotViewDataSource.swift; sourceTree = ""; }; 5BDDCC57283C807300632526 /* Airbnb.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Airbnb.app; sourceTree = BUILT_PRODUCTS_DIR; }; 5BDDCC5A283C807300632526 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -84,9 +104,20 @@ 5BDDCC77283C807600632526 /* AirbnbUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AirbnbUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 5BDDCC7B283C807600632526 /* AirbnbUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AirbnbUITests.swift; sourceTree = ""; }; 5BDDCC7D283C807600632526 /* AirbnbUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AirbnbUITestsLaunchTests.swift; sourceTree = ""; }; - 5BDDCC8E283C981200632526 /* SearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = ""; }; + 5BDDCC8E283C981200632526 /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = ""; }; 5BDDCC90283C983700632526 /* ReservationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReservationViewController.swift; sourceTree = ""; }; 5BDDCC92283C9D9800632526 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; }; + 5BFC9D1B28526A3C003C6ADB /* LocationTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationTableViewController.swift; sourceTree = ""; }; + 5BFC9D1E28526B30003C6ADB /* LocationViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationViewCell.swift; sourceTree = ""; }; + 5BFC9D2028527261003C6ADB /* LocationViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationViewDataSource.swift; sourceTree = ""; }; + 5BFC9D2228527CAB003C6ADB /* LocationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationView.swift; sourceTree = ""; }; + 83A8635572966C86A84A9627 /* Pods-Airbnb-AirbnbUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Airbnb-AirbnbUITests.release.xcconfig"; path = "Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.release.xcconfig"; sourceTree = ""; }; + 9308226CCA716C4C268AD253 /* Pods_Airbnb.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Airbnb.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 93B12CCFE280F4B29F2101AE /* Pods-Airbnb-AirbnbUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Airbnb-AirbnbUITests.debug.xcconfig"; path = "Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.debug.xcconfig"; sourceTree = ""; }; + AD7BB982D9F6B695F3340396 /* Pods-Airbnb.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Airbnb.debug.xcconfig"; path = "Target Support Files/Pods-Airbnb/Pods-Airbnb.debug.xcconfig"; sourceTree = ""; }; + B9CF2A333DC2BEA8B60797C1 /* Pods-AirbnbTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirbnbTests.debug.xcconfig"; path = "Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.debug.xcconfig"; sourceTree = ""; }; + DC24D93FDC31EC0EC1DE9E55 /* Pods_AirbnbTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AirbnbTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E4D53584B72BE02D3194681C /* Pods_Airbnb_AirbnbUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Airbnb_AirbnbUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -94,6 +125,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 7C9D57059E094B3EA2556D6C /* Pods_Airbnb.framework in Frameworks */, + 5BC0EAA628504B3A00BCFFF8 /* SnapKit in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -101,6 +134,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 2F584EE2F521CA3D9B4FDB01 /* Pods_AirbnbTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -108,12 +142,26 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8F1D2A9DB06A1EF2F6ECCC80 /* Pods_Airbnb_AirbnbUITests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 28408172135E817E524A55FC /* Pods */ = { + isa = PBXGroup; + children = ( + AD7BB982D9F6B695F3340396 /* Pods-Airbnb.debug.xcconfig */, + 34326D6057B598B251117DDB /* Pods-Airbnb.release.xcconfig */, + 93B12CCFE280F4B29F2101AE /* Pods-Airbnb-AirbnbUITests.debug.xcconfig */, + 83A8635572966C86A84A9627 /* Pods-Airbnb-AirbnbUITests.release.xcconfig */, + B9CF2A333DC2BEA8B60797C1 /* Pods-AirbnbTests.debug.xcconfig */, + 0C4BFBD34C93AC24288AC74F /* Pods-AirbnbTests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; 5B06C2DA283F18A2009F4CD4 /* Container */ = { isa = PBXGroup; children = ( @@ -125,7 +173,7 @@ 5B06C2DF283F5181009F4CD4 /* TabBarItemViewController */ = { isa = PBXGroup; children = ( - 5BDDCC8E283C981200632526 /* SearchViewController.swift */, + 5BDDCC8E283C981200632526 /* HomeViewController.swift */, 5BDDCC5E283C807300632526 /* WishlistViewController.swift */, 5BDDCC90283C983700632526 /* ReservationViewController.swift */, ); @@ -136,6 +184,7 @@ isa = PBXGroup; children = ( 5B06C2E3284067F7009F4CD4 /* HomeViewLayout.swift */, + 5B86C6E2284F439000CC8514 /* SearchViewLayout.swift */, ); path = Utility; sourceTree = ""; @@ -143,14 +192,16 @@ 5B06C2E5284081D1009F4CD4 /* DataSource */ = { isa = PBXGroup; children = ( - 5B06C2E6284081EC009F4CD4 /* SearchViewDataSource.swift */, + 5B06C2E6284081EC009F4CD4 /* HomeViewDataSource.swift */, 5BDBAB2328473D7D00A3243D /* FavoriteSpotViewDataSource.swift */, 5B7D0F1928496786000D9159 /* ReservationDataSource.swift */, + 5B86C6E0284F37C100CC8514 /* SearchViewDataSource.swift */, + 5BFC9D2028527261003C6ADB /* LocationViewDataSource.swift */, ); path = DataSource; sourceTree = ""; }; - 5B06C2E8284088C0009F4CD4 /* SearchView */ = { + 5B06C2E8284088C0009F4CD4 /* Home */ = { isa = PBXGroup; children = ( 5BDDCC92283C9D9800632526 /* HomeView.swift */, @@ -158,17 +209,17 @@ 5B06C2E92840896C009F4CD4 /* NearbyDestinationCell.swift */, 5B06C2EB2840899B009F4CD4 /* LivingSpotCell.swift */, ); - path = SearchView; + path = Home; sourceTree = ""; }; - 5B4725602845AC5300A115A7 /* WishlistView */ = { + 5B4725602845AC5300A115A7 /* Wishlist */ = { isa = PBXGroup; children = ( 5B4725612845ACC000A115A7 /* FavoriteSpotView.swift */, 5B4725632845B59200A115A7 /* TumbnailCell.swift */, 5B7D0F1228495875000D9159 /* subTumbnail.swift */, ); - path = WishlistView; + path = Wishlist; sourceTree = ""; }; 5B4725652845B9A700A115A7 /* Extension + UIButton */ = { @@ -179,7 +230,7 @@ path = "Extension + UIButton"; sourceTree = ""; }; - 5B7D0F1428495DF4000D9159 /* ReservationView */ = { + 5B7D0F1428495DF4000D9159 /* Reservation */ = { isa = PBXGroup; children = ( 5B7D0F1528495E1F000D9159 /* ReservationView.swift */, @@ -187,7 +238,16 @@ 5B7D0F1B28496AD6000D9159 /* CheckInOutCell.swift */, 5B7D0F1D2849776B000D9159 /* SummaryInfoCell.swift */, ); - path = ReservationView; + path = Reservation; + sourceTree = ""; + }; + 5B86C6DF284F33DE00CC8514 /* Search */ = { + isa = PBXGroup; + children = ( + 5B86C6DB284F32FB00CC8514 /* SearchView.swift */, + 5B86C6DD284F33D900CC8514 /* SearchViewCell.swift */, + ); + path = Search; sourceTree = ""; }; 5BDDCC4E283C807300632526 = { @@ -197,6 +257,8 @@ 5BDDCC70283C807600632526 /* AirbnbTests */, 5BDDCC7A283C807600632526 /* AirbnbUITests */, 5BDDCC58283C807300632526 /* Products */, + 28408172135E817E524A55FC /* Pods */, + 6C4FADCB950005BD102F13ED /* Frameworks */, ); sourceTree = ""; }; @@ -264,9 +326,11 @@ 5B06C2DD283F4C92009F4CD4 /* CollectionHeaderView.swift */, 5B06C2E5284081D1009F4CD4 /* DataSource */, 5B06C2E2284067D9009F4CD4 /* Utility */, - 5B06C2E8284088C0009F4CD4 /* SearchView */, - 5B4725602845AC5300A115A7 /* WishlistView */, - 5B7D0F1428495DF4000D9159 /* ReservationView */, + 5B06C2E8284088C0009F4CD4 /* Home */, + 5B4725602845AC5300A115A7 /* Wishlist */, + 5B7D0F1428495DF4000D9159 /* Reservation */, + 5B86C6DF284F33DE00CC8514 /* Search */, + 5BFC9D1D28526AFA003C6ADB /* Location */, ); path = View; sourceTree = ""; @@ -276,10 +340,31 @@ children = ( 5B06C2DA283F18A2009F4CD4 /* Container */, 5B06C2DF283F5181009F4CD4 /* TabBarItemViewController */, + 5B0BFD2B284DAD9F00BA1AD0 /* SearchListViewController.swift */, + 5BFC9D1B28526A3C003C6ADB /* LocationTableViewController.swift */, ); path = ViewController; sourceTree = ""; }; + 5BFC9D1D28526AFA003C6ADB /* Location */ = { + isa = PBXGroup; + children = ( + 5BFC9D2228527CAB003C6ADB /* LocationView.swift */, + 5BFC9D1E28526B30003C6ADB /* LocationViewCell.swift */, + ); + path = Location; + sourceTree = ""; + }; + 6C4FADCB950005BD102F13ED /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9308226CCA716C4C268AD253 /* Pods_Airbnb.framework */, + E4D53584B72BE02D3194681C /* Pods_Airbnb_AirbnbUITests.framework */, + DC24D93FDC31EC0EC1DE9E55 /* Pods_AirbnbTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -287,6 +372,7 @@ isa = PBXNativeTarget; buildConfigurationList = 5BDDCC81283C807600632526 /* Build configuration list for PBXNativeTarget "Airbnb" */; buildPhases = ( + 75171177A3244DB382C0A352 /* [CP] Check Pods Manifest.lock */, 5BDDCC53283C807300632526 /* Sources */, 5BDDCC54283C807300632526 /* Frameworks */, 5BDDCC55283C807300632526 /* Resources */, @@ -296,6 +382,9 @@ dependencies = ( ); name = Airbnb; + packageProductDependencies = ( + 5BC0EAA528504B3A00BCFFF8 /* SnapKit */, + ); productName = Airbnb; productReference = 5BDDCC57283C807300632526 /* Airbnb.app */; productType = "com.apple.product-type.application"; @@ -304,6 +393,7 @@ isa = PBXNativeTarget; buildConfigurationList = 5BDDCC84283C807600632526 /* Build configuration list for PBXNativeTarget "AirbnbTests" */; buildPhases = ( + 345E733DA513C6E6AD6D3F01 /* [CP] Check Pods Manifest.lock */, 5BDDCC69283C807600632526 /* Sources */, 5BDDCC6A283C807600632526 /* Frameworks */, 5BDDCC6B283C807600632526 /* Resources */, @@ -322,6 +412,7 @@ isa = PBXNativeTarget; buildConfigurationList = 5BDDCC87283C807600632526 /* Build configuration list for PBXNativeTarget "AirbnbUITests" */; buildPhases = ( + 6D1EBAF8B58DD205FDD68BC8 /* [CP] Check Pods Manifest.lock */, 5BDDCC73283C807600632526 /* Sources */, 5BDDCC74283C807600632526 /* Frameworks */, 5BDDCC75283C807600632526 /* Resources */, @@ -368,6 +459,9 @@ Base, ); mainGroup = 5BDDCC4E283C807300632526; + packageReferences = ( + 5BC0EAA428504B3A00BCFFF8 /* XCRemoteSwiftPackageReference "SnapKit" */, + ); productRefGroup = 5BDDCC58283C807300632526 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -405,13 +499,86 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 345E733DA513C6E6AD6D3F01 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-AirbnbTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 6D1EBAF8B58DD205FDD68BC8 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Airbnb-AirbnbUITests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 75171177A3244DB382C0A352 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Airbnb-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 5BDDCC53283C807300632526 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 5BDDCC91283C983700632526 /* ReservationViewController.swift in Sources */, + 5BFC9D2328527CAB003C6ADB /* LocationView.swift in Sources */, + 5BFC9D1F28526B30003C6ADB /* LocationViewCell.swift in Sources */, + 5B86C6E1284F37C100CC8514 /* SearchViewDataSource.swift in Sources */, 5BDDCC5F283C807300632526 /* WishlistViewController.swift in Sources */, + 5B86C6DE284F33D900CC8514 /* SearchViewCell.swift in Sources */, 5B7D0F1828495F81000D9159 /* ReservationCell.swift in Sources */, 5B7D0F1628495E1F000D9159 /* ReservationView.swift in Sources */, 5B06C2EC2840899B009F4CD4 /* LivingSpotCell.swift in Sources */, @@ -419,15 +586,20 @@ 5B7D0F1A28496786000D9159 /* ReservationDataSource.swift in Sources */, 5B4725642845B59200A115A7 /* TumbnailCell.swift in Sources */, 5B7D0F1C28496AD6000D9159 /* CheckInOutCell.swift in Sources */, + 5BFC9D1C28526A3C003C6ADB /* LocationTableViewController.swift in Sources */, 5B7D0F1E2849776B000D9159 /* SummaryInfoCell.swift in Sources */, - 5BDDCC8F283C981200632526 /* SearchViewController.swift in Sources */, + 5BDDCC8F283C981200632526 /* HomeViewController.swift in Sources */, 5B06C2D9283F189A009F4CD4 /* TabBarController.swift in Sources */, 5BDBAB2428473D7D00A3243D /* FavoriteSpotViewDataSource.swift in Sources */, - 5B06C2E7284081EC009F4CD4 /* SearchViewDataSource.swift in Sources */, + 5B06C2E7284081EC009F4CD4 /* HomeViewDataSource.swift in Sources */, + 5B86C6E3284F439000CC8514 /* SearchViewLayout.swift in Sources */, 5B06C2E4284067F7009F4CD4 /* HomeViewLayout.swift in Sources */, + 5B86C6DC284F32FB00CC8514 /* SearchView.swift in Sources */, 5B06C2E1283F5887009F4CD4 /* AdvertisingCell.swift in Sources */, 5B06C2DE283F4C92009F4CD4 /* CollectionHeaderView.swift in Sources */, + 5BFC9D2128527261003C6ADB /* LocationViewDataSource.swift in Sources */, 5B06C2EA2840896C009F4CD4 /* NearbyDestinationCell.swift in Sources */, + 5B0BFD2C284DAD9F00BA1AD0 /* SearchListViewController.swift in Sources */, 5B4725672845BA3200A115A7 /* heartButton.swift in Sources */, 5B4725622845ACC000A115A7 /* FavoriteSpotView.swift in Sources */, 5BDDCC93283C9D9800632526 /* HomeView.swift in Sources */, @@ -598,6 +770,7 @@ }; 5BDDCC82283C807600632526 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = AD7BB982D9F6B695F3340396 /* Pods-Airbnb.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -626,6 +799,7 @@ }; 5BDDCC83283C807600632526 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 34326D6057B598B251117DDB /* Pods-Airbnb.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -654,6 +828,7 @@ }; 5BDDCC85283C807600632526 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = B9CF2A333DC2BEA8B60797C1 /* Pods-AirbnbTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -674,6 +849,7 @@ }; 5BDDCC86283C807600632526 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 0C4BFBD34C93AC24288AC74F /* Pods-AirbnbTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -694,6 +870,7 @@ }; 5BDDCC88283C807600632526 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 93B12CCFE280F4B29F2101AE /* Pods-Airbnb-AirbnbUITests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; @@ -712,6 +889,7 @@ }; 5BDDCC89283C807600632526 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 83A8635572966C86A84A9627 /* Pods-Airbnb-AirbnbUITests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; @@ -768,6 +946,25 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 5BC0EAA428504B3A00BCFFF8 /* XCRemoteSwiftPackageReference "SnapKit" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/SnapKit/SnapKit"; + requirement = { + branch = develop; + kind = branch; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 5BC0EAA528504B3A00BCFFF8 /* SnapKit */ = { + isa = XCSwiftPackageProductDependency; + package = 5BC0EAA428504B3A00BCFFF8 /* XCRemoteSwiftPackageReference "SnapKit" */; + productName = SnapKit; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 5BDDCC4F283C807300632526 /* Project object */; } diff --git a/iOS/Airbnb/Airbnb.xcodeproj/xcuserdata/kh_lee.xcuserdatad/xcschemes/xcschememanagement.plist b/iOS/Airbnb/Airbnb.xcodeproj/xcuserdata/kh_lee.xcuserdatad/xcschemes/xcschememanagement.plist index 5619b4887..166901ce0 100644 --- a/iOS/Airbnb/Airbnb.xcodeproj/xcuserdata/kh_lee.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/iOS/Airbnb/Airbnb.xcodeproj/xcuserdata/kh_lee.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ Airbnb.xcscheme_^#shared#^_ orderHint - 0 + 7 diff --git a/iOS/Airbnb/Airbnb.xcworkspace/contents.xcworkspacedata b/iOS/Airbnb/Airbnb.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..fda363c9d --- /dev/null +++ b/iOS/Airbnb/Airbnb.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/iOS/Airbnb/Airbnb.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS/Airbnb/Airbnb.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/iOS/Airbnb/Airbnb.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/iOS/Airbnb/Airbnb.xcworkspace/xcshareddata/swiftpm/Package.resolved b/iOS/Airbnb/Airbnb.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 000000000..2b27baae6 --- /dev/null +++ b/iOS/Airbnb/Airbnb.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,16 @@ +{ + "object": { + "pins": [ + { + "package": "SnapKit", + "repositoryURL": "https://github.com/SnapKit/SnapKit", + "state": { + "branch": "develop", + "revision": "07c5d1f6044701d97e94dc11157259e8811977be", + "version": null + } + } + ] + }, + "version": 1 +} diff --git a/iOS/Airbnb/Airbnb/Resource/Assets.xcassets/cityBox.imageset/Contents.json b/iOS/Airbnb/Airbnb/Resource/Assets.xcassets/cityBox.imageset/Contents.json new file mode 100644 index 000000000..ac35612a3 --- /dev/null +++ b/iOS/Airbnb/Airbnb/Resource/Assets.xcassets/cityBox.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "cityBox.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOS/Airbnb/Airbnb/Resource/Assets.xcassets/cityBox.imageset/cityBox.png b/iOS/Airbnb/Airbnb/Resource/Assets.xcassets/cityBox.imageset/cityBox.png new file mode 100644 index 000000000..6831c85f2 Binary files /dev/null and b/iOS/Airbnb/Airbnb/Resource/Assets.xcassets/cityBox.imageset/cityBox.png differ diff --git a/iOS/Airbnb/Airbnb/View/DataSource/HomeViewDataSource.swift b/iOS/Airbnb/Airbnb/View/DataSource/HomeViewDataSource.swift new file mode 100644 index 000000000..ba3902032 --- /dev/null +++ b/iOS/Airbnb/Airbnb/View/DataSource/HomeViewDataSource.swift @@ -0,0 +1,115 @@ +// +// SearchViewDataSource.swift +// Airbnb +// +// Created by Jason on 2022/05/27. +// + +import UIKit + +final class HomeViewDataSource: NSObject, UICollectionViewDataSource { + + var homeData: [MyHomeSection] = [ + .advertising([MyHomeSection.advertisingItem.init(image: UIImage(named: "mainImage") ?? UIImage())] ), + .destination([MyHomeSection.destinationItem].init(repeating: MyHomeSection.destinationItem.init(image: UIImage(named: "seoul") ?? UIImage(), + title: "서울", distance: "차로 30분 거리"), count: 20)), + .livingSpot([MyHomeSection.livingSpotItem].init(repeating: MyHomeSection.livingSpotItem.init(image: UIImage(named: "blackHouse") ?? UIImage(), title: "자연생활을 만끽할 수 있는 숙소"), count: 5)) + ] + + func numberOfSections(in collectionView: UICollectionView) -> Int { + return homeData.count + } + + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + switch homeData[section] { + case let .advertising(items): + return items.count + case let .destination(items): + return items.count + case let .livingSpot(items): + return items.count + } + } + + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + switch homeData[indexPath.section] { + case let .advertising(items): + guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: AdvertisingCell.identifier, + for: indexPath) as? AdvertisingCell else { + return UICollectionViewCell() + } + cell.configure(image: items[indexPath.item].image) + + return cell + case let .destination(items): + guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: NearbyDestinationCell.identifier, + for: indexPath) as? NearbyDestinationCell else { + return UICollectionViewCell() + } + let item = items[indexPath.item] + cell.configure(image: item.image, title: item.title, distance: item.distance) + + return cell + case let .livingSpot(items): + guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: LivingSpotCell.identifier, + for: indexPath) as? LivingSpotCell else { + return UICollectionViewCell() + } + let item = items[indexPath.item] + cell.configure(image: item.image, title: item.title) + + return cell + } + } + + func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { + switch kind { + case UICollectionView.elementKindSectionHeader: + guard let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: CollectionHeaderView.identifier, for: indexPath) as? CollectionHeaderView else { + return UICollectionReusableView() + } + + let sectionType = SectionList.allCases[indexPath.section] + switch sectionType { + case .otherwise: + headerView.setHeaderText(text: "") + case .destination: + headerView.setHeaderText(text: "가까운 여행지 둘러보기") + headerView.setHeaderFontSize(size: 22) + case .livingSpot: + headerView.setHeaderText(text: "어디에서나,\n여행은 살아보는거야!") + headerView.setHeaderFontSize(size: 22) + } + + return headerView + default: + return UICollectionReusableView() + } + } + + enum MyHomeSection { + case advertising([advertisingItem]) + case destination([destinationItem]) + case livingSpot([livingSpotItem]) + + struct advertisingItem { + let image: UIImage + } + + struct destinationItem { + let image: UIImage + let title: String + let distance: String + } + + struct livingSpotItem { + let image: UIImage + let title: String + } + } + enum SectionList: Int, CaseIterable { + case otherwise = 0 + case destination + case livingSpot + } +} diff --git a/iOS/Airbnb/Airbnb/View/DataSource/LocationViewDataSource.swift b/iOS/Airbnb/Airbnb/View/DataSource/LocationViewDataSource.swift new file mode 100644 index 000000000..2c6a6e835 --- /dev/null +++ b/iOS/Airbnb/Airbnb/View/DataSource/LocationViewDataSource.swift @@ -0,0 +1,28 @@ +// +// LocationViewDataSource.swift +// Airbnb +// +// Created by Jason on 2022/06/10. +// + +import UIKit +import MapKit + +final class LocationViewDataSource: NSObject, UITableViewDataSource { + + private var completerResults: [MKLocalSearchCompletion]? + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return completerResults?.count ?? 0 + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + guard let cell = tableView.dequeueReusableCell(withIdentifier: LocationViewCell.identifier, for: indexPath) as? LocationViewCell else { return UITableViewCell() } + + if let suggestion = completerResults?[indexPath.row] { + cell.configure(location: suggestion.title) + } + return cell + } + +} diff --git a/iOS/Airbnb/Airbnb/View/DataSource/SearchViewDataSource.swift b/iOS/Airbnb/Airbnb/View/DataSource/SearchViewDataSource.swift index 569df552d..81563db97 100644 --- a/iOS/Airbnb/Airbnb/View/DataSource/SearchViewDataSource.swift +++ b/iOS/Airbnb/Airbnb/View/DataSource/SearchViewDataSource.swift @@ -2,114 +2,63 @@ // SearchViewDataSource.swift // Airbnb // -// Created by Jason on 2022/05/27. +// Created by 이건행 on 2022/06/07. // import UIKit final class SearchViewDataSource: NSObject, UICollectionViewDataSource { - var homeData: [MyHomeSection] = [ - .advertising([MyHomeSection.advertisingItem.init(image: UIImage(named: "mainImage") ?? UIImage())] ), - .destination([MyHomeSection.destinationItem].init(repeating: MyHomeSection.destinationItem.init(image: UIImage(named: "seoul") ?? UIImage(), - title: "서울", distance: "차로 30분 거리"), count: 20)), - .livingSpot([MyHomeSection.livingSpotItem].init(repeating: MyHomeSection.livingSpotItem.init(image: UIImage(named: "blackHouse") ?? UIImage(), title: "자연생활을 만끽할 수 있는 숙소"), count: 5)) + var searchData: [MySearchSection] = [ + .searchListSection([MySearchSection.searchListItem].init(repeating: MySearchSection.searchListItem.init(image: UIImage(named:"seoul") ?? UIImage(), title: "서울", distance: "차로 30분 거리"), count: 10)) ] func numberOfSections(in collectionView: UICollectionView) -> Int { - return homeData.count + return searchData.count } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - switch homeData[section] { - case let .advertising(items): - return items.count - case let .destination(items): - return items.count - case let .livingSpot(items): + switch searchData[section] { + case let .searchListSection(items): return items.count } } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - switch homeData[indexPath.section] { - case let .advertising(items): - guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: AdvertisingCell.identifier, - for: indexPath) as? AdvertisingCell else { - return UICollectionViewCell() - } - cell.configure(image: items[indexPath.item].image) + + switch searchData[indexPath.section] { - return cell - case let .destination(items): - guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: NearbyDestinationCell.identifier, - for: indexPath) as? NearbyDestinationCell else { + case let .searchListSection(items): + guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: SearchViewCell.identifier, + for: indexPath) as? SearchViewCell else { return UICollectionViewCell() } let item = items[indexPath.item] cell.configure(image: item.image, title: item.title, distance: item.distance) - return cell - case let .livingSpot(items): - guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: LivingSpotCell.identifier, - for: indexPath) as? LivingSpotCell else { - return UICollectionViewCell() - } - let item = items[indexPath.item] - cell.configure(image: item.image, title: item.title) - return cell } } func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { - switch kind { - case UICollectionView.elementKindSectionHeader: - guard let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: CollectionHeaderView.identifier, for: indexPath) as? CollectionHeaderView else { - return UICollectionReusableView() - } - - let sectionType = SectionList.allCases[indexPath.section] - switch sectionType { - case .otherwise: - headerView.setHeaderText(text: "") - case .destination: - headerView.setHeaderText(text: "가까운 여행지 둘러보기") - headerView.setHeaderFontSize(size: 22) - case .livingSpot: - headerView.setHeaderText(text: "어디에서나,\n여행은 살아보는거야!") - headerView.setHeaderFontSize(size: 22) - } - - return headerView - default: + guard let header = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: CollectionHeaderView.identifier, for: indexPath) as? CollectionHeaderView else { return UICollectionReusableView() } + if indexPath.section == 0 { + header.setHeaderText(text: "근처의 인기 여행지") + header.setHeaderFontSize(size: 22) + } + + return header } - enum MyHomeSection { - case advertising([advertisingItem]) - case destination([destinationItem]) - case livingSpot([livingSpotItem]) - - struct advertisingItem { - let image: UIImage - } + enum MySearchSection { + case searchListSection([searchListItem]) - struct destinationItem { + struct searchListItem { let image: UIImage let title: String let distance: String } - - struct livingSpotItem { - let image: UIImage - let title: String - } - } - enum SectionList: Int, CaseIterable { - case otherwise = 0 - case destination - case livingSpot } } diff --git a/iOS/Airbnb/Airbnb/View/SearchView/AdvertisingCell.swift b/iOS/Airbnb/Airbnb/View/Home/AdvertisingCell.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/SearchView/AdvertisingCell.swift rename to iOS/Airbnb/Airbnb/View/Home/AdvertisingCell.swift diff --git a/iOS/Airbnb/Airbnb/View/SearchView/HomeView.swift b/iOS/Airbnb/Airbnb/View/Home/HomeView.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/SearchView/HomeView.swift rename to iOS/Airbnb/Airbnb/View/Home/HomeView.swift diff --git a/iOS/Airbnb/Airbnb/View/SearchView/LivingSpotCell.swift b/iOS/Airbnb/Airbnb/View/Home/LivingSpotCell.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/SearchView/LivingSpotCell.swift rename to iOS/Airbnb/Airbnb/View/Home/LivingSpotCell.swift diff --git a/iOS/Airbnb/Airbnb/View/SearchView/NearbyDestinationCell.swift b/iOS/Airbnb/Airbnb/View/Home/NearbyDestinationCell.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/SearchView/NearbyDestinationCell.swift rename to iOS/Airbnb/Airbnb/View/Home/NearbyDestinationCell.swift diff --git a/iOS/Airbnb/Airbnb/View/Location/LocationView.swift b/iOS/Airbnb/Airbnb/View/Location/LocationView.swift new file mode 100644 index 000000000..2122e3e48 --- /dev/null +++ b/iOS/Airbnb/Airbnb/View/Location/LocationView.swift @@ -0,0 +1,44 @@ +// +// LocationView.swift +// Airbnb +// +// Created by Jason on 2022/06/10. +// + +import UIKit + +final class LocationView: UITableView { + + override init(frame: CGRect, style: UITableView.Style) { + super.init(frame: frame, style: .grouped) + setupLocationTableView() + setupLocationViewLayout() + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError() + } + + private let tableView: UITableView = { + let tableView = UITableView() + tableView.backgroundColor = .yellow + return tableView + }() + + func setupLocationTableView() { + tableView.register(LocationViewCell.self, forCellReuseIdentifier: LocationViewCell.identifier) + tableView.separatorStyle = .none + } + + func setupLocationViewLayout() { + addSubview(tableView) + tableView.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + tableView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor), + tableView.leadingAnchor.constraint(equalTo: safeAreaLayoutGuide.leadingAnchor), + tableView.trailingAnchor.constraint(equalTo: safeAreaLayoutGuide.trailingAnchor), + tableView.bottomAnchor.constraint(equalTo: safeAreaLayoutGuide.bottomAnchor) + ]) + } +} diff --git a/iOS/Airbnb/Airbnb/View/Location/LocationViewCell.swift b/iOS/Airbnb/Airbnb/View/Location/LocationViewCell.swift new file mode 100644 index 000000000..44fa7988e --- /dev/null +++ b/iOS/Airbnb/Airbnb/View/Location/LocationViewCell.swift @@ -0,0 +1,66 @@ +// +// LocationViewCell.swift +// Airbnb +// +// Created by Jason on 2022/06/10. +// + +import UIKit + +final class LocationViewCell: UITableViewCell { + + static let identifier = "LocationViewCell" + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + } + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + appendSubView() + setupLocationCellLayout() + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError() + } + + private let locationImage: UIImageView = { + let locationImage = UIImageView() + locationImage.image = UIImage(named: "cityBox") + return locationImage + }() + + private let locationTitle: UILabel = { + let locationTitle = UILabel() + locationTitle.textColor = .systemGray + locationTitle.font = .systemFont(ofSize: 17) + return locationTitle + }() + + func configure(location: String?) { + locationTitle.text = location + } + + private func appendSubView() { + contentView.addSubview(locationImage) + contentView.addSubview(locationTitle) + } + + private func setupLocationCellLayout() { + locationImage.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + locationImage.topAnchor.constraint(equalTo: contentView.topAnchor), + locationImage.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 20), + locationImage.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -10) + ]) + + locationTitle.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + locationTitle.topAnchor.constraint(equalTo: contentView.topAnchor), + locationTitle.leadingAnchor.constraint(equalTo: locationImage.trailingAnchor, constant: 20), + locationTitle.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -10) + ]) + } +} diff --git a/iOS/Airbnb/Airbnb/View/ReservationView/CheckInOutCell.swift b/iOS/Airbnb/Airbnb/View/Reservation/CheckInOutCell.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/ReservationView/CheckInOutCell.swift rename to iOS/Airbnb/Airbnb/View/Reservation/CheckInOutCell.swift diff --git a/iOS/Airbnb/Airbnb/View/ReservationView/ReservationCell.swift b/iOS/Airbnb/Airbnb/View/Reservation/ReservationCell.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/ReservationView/ReservationCell.swift rename to iOS/Airbnb/Airbnb/View/Reservation/ReservationCell.swift diff --git a/iOS/Airbnb/Airbnb/View/ReservationView/ReservationView.swift b/iOS/Airbnb/Airbnb/View/Reservation/ReservationView.swift similarity index 97% rename from iOS/Airbnb/Airbnb/View/ReservationView/ReservationView.swift rename to iOS/Airbnb/Airbnb/View/Reservation/ReservationView.swift index 5b1750b9e..cc826d87f 100644 --- a/iOS/Airbnb/Airbnb/View/ReservationView/ReservationView.swift +++ b/iOS/Airbnb/Airbnb/View/Reservation/ReservationView.swift @@ -42,7 +42,7 @@ final class ReservationView: UIView { ]) } - private lazy var collectionView: UICollectionView = { + private var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() flowLayout.sectionInset = UIEdgeInsets(top: 20.0, left: 10.0, bottom: 0.0, right: 10.0) diff --git a/iOS/Airbnb/Airbnb/View/ReservationView/SummaryInfoCell.swift b/iOS/Airbnb/Airbnb/View/Reservation/SummaryInfoCell.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/ReservationView/SummaryInfoCell.swift rename to iOS/Airbnb/Airbnb/View/Reservation/SummaryInfoCell.swift diff --git a/iOS/Airbnb/Airbnb/View/Search/SearchView.swift b/iOS/Airbnb/Airbnb/View/Search/SearchView.swift new file mode 100644 index 000000000..a8cc169fb --- /dev/null +++ b/iOS/Airbnb/Airbnb/View/Search/SearchView.swift @@ -0,0 +1,61 @@ +// +// SearchView.swift +// Airbnb +// +// Created by 이건행 on 2022/06/07. +// + +import UIKit + +final class SearchView: UIView { + + override init(frame: CGRect) { + super.init(frame: frame) + self.backgroundColor = .white + searchViewConfiguration() + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + super.init(coder: coder) + fatalError() + } + + private lazy var collectionView: UICollectionView = { + + let flowLayout = UICollectionViewFlowLayout() + flowLayout.itemSize = CGSize(width: 350, height: 300) + + let collectionView = UICollectionView(frame:.zero, collectionViewLayout: self.getSearchViewLayout()) + collectionView.isScrollEnabled = true + collectionView.showsVerticalScrollIndicator = true + collectionView.clipsToBounds = true + collectionView.register(CollectionHeaderView.self, + forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, + withReuseIdentifier: CollectionHeaderView.identifier) + collectionView.register(SearchViewCell.self, forCellWithReuseIdentifier: SearchViewCell.identifier) + + return collectionView + }() + + func setupCollectionViewDelegate(_ dataSource: UICollectionViewDataSource) { + collectionView.dataSource = dataSource + } + + private func searchViewConfiguration() { + addSubview(collectionView) + collectionView.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + collectionView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor), + collectionView.leadingAnchor.constraint(equalTo: leadingAnchor), + collectionView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -16), + collectionView.bottomAnchor.constraint(equalTo: bottomAnchor) + ]) + } + + func getSearchViewLayout() -> UICollectionViewCompositionalLayout { + UICollectionViewCompositionalLayout { (sectionIndex: Int, _ ) -> NSCollectionLayoutSection? in + return SearchViewLayout(sectionIndex: sectionIndex).create() + } + } +} diff --git a/iOS/Airbnb/Airbnb/View/Search/SearchViewCell.swift b/iOS/Airbnb/Airbnb/View/Search/SearchViewCell.swift new file mode 100644 index 000000000..ee355daa1 --- /dev/null +++ b/iOS/Airbnb/Airbnb/View/Search/SearchViewCell.swift @@ -0,0 +1,79 @@ +// +// SearchViewCell.swift +// Airbnb +// +// Created by 이건행 on 2022/06/07. +// + +import UIKit + +final class SearchViewCell: UICollectionViewCell { + + static let identifier = "SearchViewCell" + + override init(frame: CGRect) { + super.init(frame: frame) + appendSubView() + searchViewLayout() + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + super.init(coder: coder) + fatalError() + } + + private let searchImageView: UIImageView = { + var imageView = UIImageView() + return imageView + }() + + private let titleLabel: UILabel = { + let title = UILabel() + title.textColor = .systemGray2 + title.font = .systemFont(ofSize: 17, weight: .init(rawValue: 600)) + return title + }() + + private let distanceLabel: UILabel = { + let distance = UILabel() + distance.textColor = .systemGray3 + distance.font = .systemFont(ofSize: 17, weight: .init(rawValue: 400)) + return distance + }() + + func configure(image: UIImage?, title: String?, distance: String?) { + searchImageView.image = image + titleLabel.text = title + distanceLabel.text = distance + } + + private func appendSubView() { + contentView.addSubview(searchImageView) + contentView.addSubview(titleLabel) + contentView.addSubview(distanceLabel) + } + + func searchViewLayout() { + searchImageView.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + searchImageView.topAnchor.constraint(equalTo: topAnchor), + searchImageView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor), + searchImageView.bottomAnchor.constraint(equalTo: bottomAnchor) + ]) + + titleLabel.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + titleLabel.topAnchor.constraint(equalTo: searchImageView.topAnchor), + titleLabel.leadingAnchor.constraint(equalTo: searchImageView.trailingAnchor, constant: 16), + titleLabel.heightAnchor.constraint(equalTo: searchImageView.heightAnchor, multiplier: 1/2) + ]) + + distanceLabel.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + distanceLabel.topAnchor.constraint(equalTo: titleLabel.bottomAnchor), + distanceLabel.leadingAnchor.constraint(equalTo: titleLabel.leadingAnchor), + distanceLabel.heightAnchor.constraint(equalTo: titleLabel.heightAnchor) + ]) + } +} diff --git a/iOS/Airbnb/Airbnb/View/Utility/SearchViewLayout.swift b/iOS/Airbnb/Airbnb/View/Utility/SearchViewLayout.swift new file mode 100644 index 000000000..86ce6e447 --- /dev/null +++ b/iOS/Airbnb/Airbnb/View/Utility/SearchViewLayout.swift @@ -0,0 +1,54 @@ +// +// SearchViewLayout.swift +// Airbnb +// +// Created by 이건행 on 2022/06/07. +// + +import UIKit + +struct SearchViewLayout { + + private let sectionIndex: Int + + init(sectionIndex: Int) { + self.sectionIndex = sectionIndex + } + + func create() -> NSCollectionLayoutSection? { + let index = searchCellList.allCases[sectionIndex] + switch index { + case .searchSection: + return SearchLayoutSection().createLayout() + } + } + + struct SearchLayoutSection { + func createLayout() -> NSCollectionLayoutSection? { + let itemFractionalWidthFraction = 1.0 + let groupFractionalHeightFraction = 1.0 / 8.0 + let itemInset: CGFloat = 2.5 + + let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(0.5), heightDimension: .fractionalHeight(1.0)) + let item = NSCollectionLayoutItem(layoutSize: itemSize) + item.contentInsets = NSDirectionalEdgeInsets(top: itemInset, leading: 16, bottom: 24, trailing: itemInset) + + let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(groupFractionalHeightFraction)) + let group = NSCollectionLayoutGroup.vertical(layoutSize: groupSize, subitems: [item]) + + let headerSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .absolute(50.0)) + let header = NSCollectionLayoutBoundarySupplementaryItem(layoutSize: headerSize, elementKind: UICollectionView.elementKindSectionHeader, alignment: .top) + + let section = NSCollectionLayoutSection(group: group) + section.contentInsets = NSDirectionalEdgeInsets(top: itemInset, leading: itemInset, bottom: itemInset, trailing: itemInset) + section.boundarySupplementaryItems = [header] + + return section + } + } +} + +enum searchCellList: Int, CaseIterable { + case searchSection = 0 + +} diff --git a/iOS/Airbnb/Airbnb/View/WishlistView/FavoriteSpotView.swift b/iOS/Airbnb/Airbnb/View/Wishlist/FavoriteSpotView.swift similarity index 97% rename from iOS/Airbnb/Airbnb/View/WishlistView/FavoriteSpotView.swift rename to iOS/Airbnb/Airbnb/View/Wishlist/FavoriteSpotView.swift index 7812f7a5b..c293d4844 100644 --- a/iOS/Airbnb/Airbnb/View/WishlistView/FavoriteSpotView.swift +++ b/iOS/Airbnb/Airbnb/View/Wishlist/FavoriteSpotView.swift @@ -43,7 +43,7 @@ final class FavoriteSpotView: UIView { ]) } - private lazy var collectionView: UICollectionView = { + private var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() flowLayout.sectionInset = UIEdgeInsets(top: 20.0, left: 10.0, bottom: 20.0, right: 10.0) diff --git a/iOS/Airbnb/Airbnb/View/WishlistView/InformationCell.swift b/iOS/Airbnb/Airbnb/View/Wishlist/InformationCell.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/WishlistView/InformationCell.swift rename to iOS/Airbnb/Airbnb/View/Wishlist/InformationCell.swift diff --git a/iOS/Airbnb/Airbnb/View/WishlistView/TumbnailCell.swift b/iOS/Airbnb/Airbnb/View/Wishlist/TumbnailCell.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/WishlistView/TumbnailCell.swift rename to iOS/Airbnb/Airbnb/View/Wishlist/TumbnailCell.swift diff --git a/iOS/Airbnb/Airbnb/View/WishlistView/subTumbnail.swift b/iOS/Airbnb/Airbnb/View/Wishlist/subTumbnail.swift similarity index 100% rename from iOS/Airbnb/Airbnb/View/WishlistView/subTumbnail.swift rename to iOS/Airbnb/Airbnb/View/Wishlist/subTumbnail.swift diff --git a/iOS/Airbnb/Airbnb/ViewController/Container/TabBarController.swift b/iOS/Airbnb/Airbnb/ViewController/Container/TabBarController.swift index c6afe63cc..85f063d8a 100644 --- a/iOS/Airbnb/Airbnb/ViewController/Container/TabBarController.swift +++ b/iOS/Airbnb/Airbnb/ViewController/Container/TabBarController.swift @@ -9,7 +9,7 @@ import UIKit class TabBarController: UITabBarController { - let searchViewController = SearchViewController() + let homeViewController = HomeViewController() let wishlistViewController = WishlistViewController() let reservationViewController = ReservationViewController() @@ -23,7 +23,7 @@ class TabBarController: UITabBarController { private extension TabBarController { func setTabBarItems() { - let navigationViewController = UINavigationController(rootViewController: searchViewController) + let navigationViewController = UINavigationController(rootViewController: homeViewController) navigationViewController.tabBarItem = UITabBarItem(title: "검색", image: UIImage(systemName: "magnifyingglass"), tag: 0) wishlistViewController.tabBarItem = UITabBarItem(title: "위시리스트", image: UIImage(systemName: "heart"), tag: 1) diff --git a/iOS/Airbnb/Airbnb/ViewController/LocationTableViewController.swift b/iOS/Airbnb/Airbnb/ViewController/LocationTableViewController.swift new file mode 100644 index 000000000..3007bb324 --- /dev/null +++ b/iOS/Airbnb/Airbnb/ViewController/LocationTableViewController.swift @@ -0,0 +1,52 @@ +// +// LocationTableViewController.swift +// Airbnb +// +// Created by Jason on 2022/06/10. +// + +import UIKit +import MapKit + +final class LocationTableViewController: UIViewController, UITableViewDelegate { + + private var searchCompleter = MKLocalSearchCompleter() // 검색을 도와주는 변수 + private var searchResults = [MKLocalSearchCompletion]() // 검색 결과를 담는 변수 + private var searchRegion = MKCoordinateRegion(MKMapRect.world) // 검색 지역 범위를 결정하는 변수 + + private var locationView = LocationView() + private var locationDatasource = LocationViewDataSource() + + override func viewDidLoad() { + super.viewDidLoad() + setupSearchCompleter() + self.view = locationView + locationView.delegate = self + locationView.dataSource = locationDatasource + } + + +} + +extension LocationTableViewController: MKLocalSearchCompleterDelegate { + + func setupSearchCompleter() { + searchCompleter.delegate = self + searchCompleter.resultTypes = .address + searchCompleter.region = searchRegion + } + + func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { + searchResults = completer.results +// locationView.tableView.reloadData() + locationView.reloadData() + } +} + +extension LocationTableViewController: UISearchBarDelegate { + + func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { + searchCompleter.queryFragment = searchText + } + +} diff --git a/iOS/Airbnb/Airbnb/ViewController/SearchListViewController.swift b/iOS/Airbnb/Airbnb/ViewController/SearchListViewController.swift new file mode 100644 index 000000000..bf5a7e544 --- /dev/null +++ b/iOS/Airbnb/Airbnb/ViewController/SearchListViewController.swift @@ -0,0 +1,34 @@ +// +// SearchViewController.swift +// Airbnb +// +// Created by Jason on 2022/06/06. +// + +import UIKit + +class SearchListViewController: UIViewController, UISearchBarDelegate { + + private var searchView = SearchView() + private var datasource = SearchViewDataSource() + + override func viewDidLoad() { + super.viewDidLoad() + setNavigationBar() + self.view = searchView + searchView.setupCollectionViewDelegate(datasource) + } + + private func setNavigationBar() { + let searchController = UISearchController(searchResultsController: LocationTableViewController()) + searchController.searchBar.placeholder = "어디로 여행가세요?" + searchController.hidesNavigationBarDuringPresentation = false + searchController.obscuresBackgroundDuringPresentation = false + searchController.automaticallyShowsCancelButton = false + searchController.searchBar.delegate = self + navigationItem.hidesSearchBarWhenScrolling = false + navigationItem.title = "숙소 찾기" + navigationItem.searchController = searchController + } + +} diff --git a/iOS/Airbnb/Airbnb/ViewController/TabBarItemViewController/SearchViewController.swift b/iOS/Airbnb/Airbnb/ViewController/TabBarItemViewController/HomeViewController.swift similarity index 53% rename from iOS/Airbnb/Airbnb/ViewController/TabBarItemViewController/SearchViewController.swift rename to iOS/Airbnb/Airbnb/ViewController/TabBarItemViewController/HomeViewController.swift index 98933585d..030d6203d 100644 --- a/iOS/Airbnb/Airbnb/ViewController/TabBarItemViewController/SearchViewController.swift +++ b/iOS/Airbnb/Airbnb/ViewController/TabBarItemViewController/HomeViewController.swift @@ -7,10 +7,10 @@ import UIKit -class SearchViewController: UIViewController { +class HomeViewController: UIViewController, UISearchResultsUpdating { private lazy var homeView = HomeView(frame: view.frame) - private let dataSource = SearchViewDataSource() + private let dataSource = HomeViewDataSource() override func viewDidLoad() { super.viewDidLoad() @@ -25,8 +25,21 @@ class SearchViewController: UIViewController { searchController.hidesNavigationBarDuringPresentation = false searchController.automaticallyShowsCancelButton = false searchController.obscuresBackgroundDuringPresentation = false + searchController.searchBar.delegate = self + self.navigationItem.hidesSearchBarWhenScrolling = false self.navigationItem.searchController = searchController - self.navigationItem.title = "숙소 찾기" } + + func updateSearchResults(for searchController: UISearchController) { + guard let text = searchController.searchBar.text else { return } + } + +} +extension HomeViewController: UISearchBarDelegate { + func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) { + let searchListViewController = SearchListViewController() + navigationController?.pushViewController(searchListViewController, animated: true) + searchBar.resignFirstResponder() + } } diff --git a/iOS/Airbnb/Podfile b/iOS/Airbnb/Podfile new file mode 100644 index 000000000..86477f584 --- /dev/null +++ b/iOS/Airbnb/Podfile @@ -0,0 +1,21 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'Airbnb' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + pod "SwiftLint" + + # Pods for Airbnb + + target 'AirbnbTests' do + inherit! :search_paths + # Pods for testing + end + + target 'AirbnbUITests' do + # Pods for testing + end + +end diff --git a/iOS/Airbnb/Podfile.lock b/iOS/Airbnb/Podfile.lock new file mode 100644 index 000000000..1d3704395 --- /dev/null +++ b/iOS/Airbnb/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - SwiftLint (0.47.1) + +DEPENDENCIES: + - SwiftLint + +SPEC REPOS: + trunk: + - SwiftLint + +SPEC CHECKSUMS: + SwiftLint: f80f1be7fa96d30e0aa68e58d45d4ea1ccaac519 + +PODFILE CHECKSUM: 2efd36879dc5de3067fbaf7e5976537140373b30 + +COCOAPODS: 1.11.3 diff --git a/iOS/Airbnb/Pods/Manifest.lock b/iOS/Airbnb/Pods/Manifest.lock new file mode 100644 index 000000000..1d3704395 --- /dev/null +++ b/iOS/Airbnb/Pods/Manifest.lock @@ -0,0 +1,16 @@ +PODS: + - SwiftLint (0.47.1) + +DEPENDENCIES: + - SwiftLint + +SPEC REPOS: + trunk: + - SwiftLint + +SPEC CHECKSUMS: + SwiftLint: f80f1be7fa96d30e0aa68e58d45d4ea1ccaac519 + +PODFILE CHECKSUM: 2efd36879dc5de3067fbaf7e5976537140373b30 + +COCOAPODS: 1.11.3 diff --git a/iOS/Airbnb/Pods/Pods.xcodeproj/project.pbxproj b/iOS/Airbnb/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 000000000..9c5d35dd0 --- /dev/null +++ b/iOS/Airbnb/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,868 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXAggregateTarget section */ + 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */ = { + isa = PBXAggregateTarget; + buildConfigurationList = AE7B4FB01588B9E6DF09CB79FC7CE7BD /* Build configuration list for PBXAggregateTarget "SwiftLint" */; + buildPhases = ( + ); + dependencies = ( + ); + name = SwiftLint; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 06773C43AFF3E1A294856DAEF0328086 /* Pods-AirbnbTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 24E2654082A207A9282C8F3952E77211 /* Pods-AirbnbTests-dummy.m */; }; + 2BBBB1B3F1FFBD64F8F45CE2628A0CCC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 314EEAE8A78BEE38865C1A6EDE08E545 /* Pods-AirbnbTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B77BC183BD3EAB816208C5A9CC57CD77 /* Pods-AirbnbTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FBD06A013646051325AE03E19DED24A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 450D19C965C1AE33E1230F1B7AD3CCB4 /* Pods-Airbnb-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F0FEA6310F1E8C334A874B848B922BB6 /* Pods-Airbnb-dummy.m */; }; + 613A207179D8D1127FFA2CE37020E4EC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + BEBEAC91734CA3DF5DB25EB4EFD60BAA /* Pods-Airbnb-AirbnbUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BFB8A3E2AEEAF835477C046BAA629368 /* Pods-Airbnb-AirbnbUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CB8AFAFDEEC7635C39A5583726BDCAB3 /* Pods-Airbnb-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BF2CAEF18CA4B7C5F828BD8C8ED788E2 /* Pods-Airbnb-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F8F484AACE84F74A12E8B00248FB884E /* Pods-Airbnb-AirbnbUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A5B0CA260E25E28FFC56A9FCA29D654 /* Pods-Airbnb-AirbnbUITests-dummy.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1D03CD2501D94C0721D7CCE5E695DF41 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 407BB0441AC343A400501D70A888B201; + remoteInfo = "Pods-Airbnb"; + }; + 675186F28352AEE625F87B7649205D4B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 52B60EC2A583F24ACBB69C113F5488B9; + remoteInfo = SwiftLint; + }; + 9EDCB910E2B066E5C85843FDD5C17BF6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 52B60EC2A583F24ACBB69C113F5488B9; + remoteInfo = SwiftLint; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 00F3A6ECC660EBE84C472D3046CE16E0 /* Pods-AirbnbTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AirbnbTests.debug.xcconfig"; sourceTree = ""; }; + 070F874999CB703ACE176747DBF66B0A /* Pods-Airbnb-AirbnbUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Airbnb-AirbnbUITests.debug.xcconfig"; sourceTree = ""; }; + 24E2654082A207A9282C8F3952E77211 /* Pods-AirbnbTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AirbnbTests-dummy.m"; sourceTree = ""; }; + 31DEB026D7F97C46D622C61CAC90D98B /* Pods-Airbnb-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Airbnb-Info.plist"; sourceTree = ""; }; + 3EC0124719FE8EF5FDDD72C26F8A2F57 /* SwiftLint.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftLint.debug.xcconfig; sourceTree = ""; }; + 535D1573F87667EB56961D838D2D787A /* Pods-AirbnbTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-AirbnbTests.modulemap"; sourceTree = ""; }; + 5D21C0813ABEE63A7CB918A6C53D8B31 /* Pods-AirbnbTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AirbnbTests-acknowledgements.plist"; sourceTree = ""; }; + 611557E87EE65BF8D27E20FFE06DA689 /* Pods-AirbnbTests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-AirbnbTests"; path = Pods_AirbnbTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 7A665338351CCA587B80036EC26C00FC /* Pods-Airbnb.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Airbnb.modulemap"; sourceTree = ""; }; + 7EAB1DA481EDDC005A251D3A5E6BE4CD /* SwiftLint.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftLint.release.xcconfig; sourceTree = ""; }; + 81201BAEC01B08B92F1C81FAF9684953 /* Pods-AirbnbTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AirbnbTests-Info.plist"; sourceTree = ""; }; + 87665B63766146FE8A1894C1442E372B /* Pods-Airbnb-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Airbnb-acknowledgements.markdown"; sourceTree = ""; }; + 962E2CA50A3043A930CF6341FE1A520A /* Pods-Airbnb-AirbnbUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Airbnb-AirbnbUITests.release.xcconfig"; sourceTree = ""; }; + 9A5B0CA260E25E28FFC56A9FCA29D654 /* Pods-Airbnb-AirbnbUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Airbnb-AirbnbUITests-dummy.m"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A2CD2F2750DC1975096A726C0C040A52 /* Pods-Airbnb-AirbnbUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Airbnb-AirbnbUITests-acknowledgements.plist"; sourceTree = ""; }; + A2D6462C54531DF4467D19CF0A374775 /* Pods-Airbnb-AirbnbUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Airbnb-AirbnbUITests.modulemap"; sourceTree = ""; }; + ABE15F0CAFE2C0588E16AF0C5F131F70 /* Pods-Airbnb-AirbnbUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-Airbnb-AirbnbUITests"; path = Pods_Airbnb_AirbnbUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AC2D08D54BC3B112A9F6BC96B76F7D8E /* Pods-Airbnb.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Airbnb.release.xcconfig"; sourceTree = ""; }; + B6A6CB03565EB541B8A9423D5307F910 /* Pods-Airbnb-AirbnbUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Airbnb-AirbnbUITests-acknowledgements.markdown"; sourceTree = ""; }; + B77BC183BD3EAB816208C5A9CC57CD77 /* Pods-AirbnbTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AirbnbTests-umbrella.h"; sourceTree = ""; }; + BD6E50D627FFFA5E72F52848D8030186 /* Pods-Airbnb.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Airbnb.debug.xcconfig"; sourceTree = ""; }; + BF2CAEF18CA4B7C5F828BD8C8ED788E2 /* Pods-Airbnb-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Airbnb-umbrella.h"; sourceTree = ""; }; + BFB8A3E2AEEAF835477C046BAA629368 /* Pods-Airbnb-AirbnbUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Airbnb-AirbnbUITests-umbrella.h"; sourceTree = ""; }; + D3952FB5FFF1802E152E66A60177CC6A /* Pods-Airbnb-AirbnbUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Airbnb-AirbnbUITests-Info.plist"; sourceTree = ""; }; + DA4C0FCEED237448B1F9F89706DCF50E /* Pods-AirbnbTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AirbnbTests.release.xcconfig"; sourceTree = ""; }; + DEBD182EECCEF278A3A90B726188B779 /* Pods-Airbnb */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-Airbnb"; path = Pods_Airbnb.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DFBE08A89EF61934EDDC303E8BFD9CA2 /* Pods-AirbnbTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AirbnbTests-acknowledgements.markdown"; sourceTree = ""; }; + EF45DFEFF5659F4B98FFD385F25AB0ED /* Pods-Airbnb-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Airbnb-acknowledgements.plist"; sourceTree = ""; }; + F0FEA6310F1E8C334A874B848B922BB6 /* Pods-Airbnb-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Airbnb-dummy.m"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 479F676F2C61DFB2F9FE48C0D950291E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2BBBB1B3F1FFBD64F8F45CE2628A0CCC /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 872BF1243719638E2E592CEC91FCBCEA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3FBD06A013646051325AE03E19DED24A /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9E70598F7A4333ABFC4EB14F04B022C6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 613A207179D8D1127FFA2CE37020E4EC /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 11D16C80943530D2BC5C2A7BDD14D773 /* Pods-AirbnbTests */ = { + isa = PBXGroup; + children = ( + 535D1573F87667EB56961D838D2D787A /* Pods-AirbnbTests.modulemap */, + DFBE08A89EF61934EDDC303E8BFD9CA2 /* Pods-AirbnbTests-acknowledgements.markdown */, + 5D21C0813ABEE63A7CB918A6C53D8B31 /* Pods-AirbnbTests-acknowledgements.plist */, + 24E2654082A207A9282C8F3952E77211 /* Pods-AirbnbTests-dummy.m */, + 81201BAEC01B08B92F1C81FAF9684953 /* Pods-AirbnbTests-Info.plist */, + B77BC183BD3EAB816208C5A9CC57CD77 /* Pods-AirbnbTests-umbrella.h */, + 00F3A6ECC660EBE84C472D3046CE16E0 /* Pods-AirbnbTests.debug.xcconfig */, + DA4C0FCEED237448B1F9F89706DCF50E /* Pods-AirbnbTests.release.xcconfig */, + ); + name = "Pods-AirbnbTests"; + path = "Target Support Files/Pods-AirbnbTests"; + sourceTree = ""; + }; + 3B1F1D295F27B887494E12CF1A33FCA8 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + E32FBAD9CB27F044728BB4F729E64C84 /* Pods-Airbnb */, + AE778F790932841BBE5D7F06CA723B6A /* Pods-Airbnb-AirbnbUITests */, + 11D16C80943530D2BC5C2A7BDD14D773 /* Pods-AirbnbTests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 578452D2E740E91742655AC8F1636D1F /* iOS */ = { + isa = PBXGroup; + children = ( + 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 7FDA596DBE0337ACDFE55A210D54EF26 /* Support Files */ = { + isa = PBXGroup; + children = ( + 3EC0124719FE8EF5FDDD72C26F8A2F57 /* SwiftLint.debug.xcconfig */, + 7EAB1DA481EDDC005A251D3A5E6BE4CD /* SwiftLint.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SwiftLint"; + sourceTree = ""; + }; + 965877409E01FB3D85D85E90E6B30185 /* Pods */ = { + isa = PBXGroup; + children = ( + D96179D43A67C5D5323B0682D32C133C /* SwiftLint */, + ); + name = Pods; + sourceTree = ""; + }; + AE778F790932841BBE5D7F06CA723B6A /* Pods-Airbnb-AirbnbUITests */ = { + isa = PBXGroup; + children = ( + A2D6462C54531DF4467D19CF0A374775 /* Pods-Airbnb-AirbnbUITests.modulemap */, + B6A6CB03565EB541B8A9423D5307F910 /* Pods-Airbnb-AirbnbUITests-acknowledgements.markdown */, + A2CD2F2750DC1975096A726C0C040A52 /* Pods-Airbnb-AirbnbUITests-acknowledgements.plist */, + 9A5B0CA260E25E28FFC56A9FCA29D654 /* Pods-Airbnb-AirbnbUITests-dummy.m */, + D3952FB5FFF1802E152E66A60177CC6A /* Pods-Airbnb-AirbnbUITests-Info.plist */, + BFB8A3E2AEEAF835477C046BAA629368 /* Pods-Airbnb-AirbnbUITests-umbrella.h */, + 070F874999CB703ACE176747DBF66B0A /* Pods-Airbnb-AirbnbUITests.debug.xcconfig */, + 962E2CA50A3043A930CF6341FE1A520A /* Pods-Airbnb-AirbnbUITests.release.xcconfig */, + ); + name = "Pods-Airbnb-AirbnbUITests"; + path = "Target Support Files/Pods-Airbnb-AirbnbUITests"; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, + 965877409E01FB3D85D85E90E6B30185 /* Pods */, + F070FEF067EB91B690F04DD3014B0AB2 /* Products */, + 3B1F1D295F27B887494E12CF1A33FCA8 /* Targets Support Files */, + ); + sourceTree = ""; + }; + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 578452D2E740E91742655AC8F1636D1F /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + D96179D43A67C5D5323B0682D32C133C /* SwiftLint */ = { + isa = PBXGroup; + children = ( + 7FDA596DBE0337ACDFE55A210D54EF26 /* Support Files */, + ); + name = SwiftLint; + path = SwiftLint; + sourceTree = ""; + }; + E32FBAD9CB27F044728BB4F729E64C84 /* Pods-Airbnb */ = { + isa = PBXGroup; + children = ( + 7A665338351CCA587B80036EC26C00FC /* Pods-Airbnb.modulemap */, + 87665B63766146FE8A1894C1442E372B /* Pods-Airbnb-acknowledgements.markdown */, + EF45DFEFF5659F4B98FFD385F25AB0ED /* Pods-Airbnb-acknowledgements.plist */, + F0FEA6310F1E8C334A874B848B922BB6 /* Pods-Airbnb-dummy.m */, + 31DEB026D7F97C46D622C61CAC90D98B /* Pods-Airbnb-Info.plist */, + BF2CAEF18CA4B7C5F828BD8C8ED788E2 /* Pods-Airbnb-umbrella.h */, + BD6E50D627FFFA5E72F52848D8030186 /* Pods-Airbnb.debug.xcconfig */, + AC2D08D54BC3B112A9F6BC96B76F7D8E /* Pods-Airbnb.release.xcconfig */, + ); + name = "Pods-Airbnb"; + path = "Target Support Files/Pods-Airbnb"; + sourceTree = ""; + }; + F070FEF067EB91B690F04DD3014B0AB2 /* Products */ = { + isa = PBXGroup; + children = ( + DEBD182EECCEF278A3A90B726188B779 /* Pods-Airbnb */, + ABE15F0CAFE2C0588E16AF0C5F131F70 /* Pods-Airbnb-AirbnbUITests */, + 611557E87EE65BF8D27E20FFE06DA689 /* Pods-AirbnbTests */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 13EDFB52E1F9D693FB88671D1FF30650 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + CB8AFAFDEEC7635C39A5583726BDCAB3 /* Pods-Airbnb-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 171C84C79DEA777D19C515A711507B2E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BEBEAC91734CA3DF5DB25EB4EFD60BAA /* Pods-Airbnb-AirbnbUITests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ABD8080753496D5400AE01792DF5058A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 314EEAE8A78BEE38865C1A6EDE08E545 /* Pods-AirbnbTests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 1E27BFB07ACA8E2C7B83222D7951286B /* Pods-Airbnb-AirbnbUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = FED9ADE9C92DABC3AFCAF4A657EAD776 /* Build configuration list for PBXNativeTarget "Pods-Airbnb-AirbnbUITests" */; + buildPhases = ( + 171C84C79DEA777D19C515A711507B2E /* Headers */, + BBEC9FC3F0CA96887E7BA294845B2CBB /* Sources */, + 479F676F2C61DFB2F9FE48C0D950291E /* Frameworks */, + 8606EDC3F35824AF36696344D8007C87 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + D9480BEEA3ABEE038EABE731E4BB003C /* PBXTargetDependency */, + ); + name = "Pods-Airbnb-AirbnbUITests"; + productName = Pods_Airbnb_AirbnbUITests; + productReference = ABE15F0CAFE2C0588E16AF0C5F131F70 /* Pods-Airbnb-AirbnbUITests */; + productType = "com.apple.product-type.framework"; + }; + 407BB0441AC343A400501D70A888B201 /* Pods-Airbnb */ = { + isa = PBXNativeTarget; + buildConfigurationList = 83848848E9D576B3F3274EB623BD8E6A /* Build configuration list for PBXNativeTarget "Pods-Airbnb" */; + buildPhases = ( + 13EDFB52E1F9D693FB88671D1FF30650 /* Headers */, + D78E0E869F7562C73A121C426970FB52 /* Sources */, + 872BF1243719638E2E592CEC91FCBCEA /* Frameworks */, + 6E63B1AADF630DC9CE7BC72F34C43AA1 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 839FC9ADA080E38C8BC8463D498A0BD7 /* PBXTargetDependency */, + ); + name = "Pods-Airbnb"; + productName = Pods_Airbnb; + productReference = DEBD182EECCEF278A3A90B726188B779 /* Pods-Airbnb */; + productType = "com.apple.product-type.framework"; + }; + EA1FCCE48C20EE43DE83F49D1DEAEF28 /* Pods-AirbnbTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1148FD7500EB188D9626E04A6247DA8D /* Build configuration list for PBXNativeTarget "Pods-AirbnbTests" */; + buildPhases = ( + ABD8080753496D5400AE01792DF5058A /* Headers */, + 3B696DDCFDD1E53FDCE241A01ABA25B7 /* Sources */, + 9E70598F7A4333ABFC4EB14F04B022C6 /* Frameworks */, + 53F91BA47B660345296C6EA6C18A1E11 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 62276FABA7BCFB2346C01106747504A5 /* PBXTargetDependency */, + ); + name = "Pods-AirbnbTests"; + productName = Pods_AirbnbTests; + productReference = 611557E87EE65BF8D27E20FFE06DA689 /* Pods-AirbnbTests */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1240; + LastUpgradeCheck = 1240; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 13.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = F070FEF067EB91B690F04DD3014B0AB2 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 407BB0441AC343A400501D70A888B201 /* Pods-Airbnb */, + 1E27BFB07ACA8E2C7B83222D7951286B /* Pods-Airbnb-AirbnbUITests */, + EA1FCCE48C20EE43DE83F49D1DEAEF28 /* Pods-AirbnbTests */, + 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 53F91BA47B660345296C6EA6C18A1E11 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E63B1AADF630DC9CE7BC72F34C43AA1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8606EDC3F35824AF36696344D8007C87 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3B696DDCFDD1E53FDCE241A01ABA25B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 06773C43AFF3E1A294856DAEF0328086 /* Pods-AirbnbTests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBEC9FC3F0CA96887E7BA294845B2CBB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F8F484AACE84F74A12E8B00248FB884E /* Pods-Airbnb-AirbnbUITests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D78E0E869F7562C73A121C426970FB52 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 450D19C965C1AE33E1230F1B7AD3CCB4 /* Pods-Airbnb-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 62276FABA7BCFB2346C01106747504A5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Airbnb"; + target = 407BB0441AC343A400501D70A888B201 /* Pods-Airbnb */; + targetProxy = 1D03CD2501D94C0721D7CCE5E695DF41 /* PBXContainerItemProxy */; + }; + 839FC9ADA080E38C8BC8463D498A0BD7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SwiftLint; + target = 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */; + targetProxy = 9EDCB910E2B066E5C85843FDD5C17BF6 /* PBXContainerItemProxy */; + }; + D9480BEEA3ABEE038EABE731E4BB003C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SwiftLint; + target = 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */; + targetProxy = 675186F28352AEE625F87B7649205D4B /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 05AFEC1F8BA4394DD38FAB619B2DEE35 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DA4C0FCEED237448B1F9F89706DCF50E /* Pods-AirbnbTests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 1B9AC0B0231F868650400C05CD1D7EE3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 070F874999CB703ACE176747DBF66B0A /* Pods-Airbnb-AirbnbUITests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 27C4D171F646CCE037D17B49032875E3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 00F3A6ECC660EBE84C472D3046CE16E0 /* Pods-AirbnbTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 2E4546AA742A1DB0D55046F49C92FDA8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 962E2CA50A3043A930CF6341FE1A520A /* Pods-Airbnb-AirbnbUITests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 4214E6946993DF02ED98D89047C64016 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 740A8FA93E8182D0EE1DA56029A0E4A4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BD6E50D627FFFA5E72F52848D8030186 /* Pods-Airbnb.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-Airbnb/Pods-Airbnb-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Airbnb/Pods-Airbnb.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9BDD391B9F8EA15E90B176BC12D4E2DE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AC2D08D54BC3B112A9F6BC96B76F7D8E /* Pods-Airbnb.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-Airbnb/Pods-Airbnb-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Airbnb/Pods-Airbnb.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + AD81E62ACCB0B7A923FC8AA288F9921E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7EAB1DA481EDDC005A251D3A5E6BE4CD /* SwiftLint.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + CD85FD90473CFBE797E4264E7BBC70AF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + EADD1F50ABC8096A0D6CB18822BB4EE4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3EC0124719FE8EF5FDDD72C26F8A2F57 /* SwiftLint.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1148FD7500EB188D9626E04A6247DA8D /* Build configuration list for PBXNativeTarget "Pods-AirbnbTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 27C4D171F646CCE037D17B49032875E3 /* Debug */, + 05AFEC1F8BA4394DD38FAB619B2DEE35 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4214E6946993DF02ED98D89047C64016 /* Debug */, + CD85FD90473CFBE797E4264E7BBC70AF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83848848E9D576B3F3274EB623BD8E6A /* Build configuration list for PBXNativeTarget "Pods-Airbnb" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 740A8FA93E8182D0EE1DA56029A0E4A4 /* Debug */, + 9BDD391B9F8EA15E90B176BC12D4E2DE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + AE7B4FB01588B9E6DF09CB79FC7CE7BD /* Build configuration list for PBXAggregateTarget "SwiftLint" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EADD1F50ABC8096A0D6CB18822BB4EE4 /* Debug */, + AD81E62ACCB0B7A923FC8AA288F9921E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FED9ADE9C92DABC3AFCAF4A657EAD776 /* Build configuration list for PBXNativeTarget "Pods-Airbnb-AirbnbUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1B9AC0B0231F868650400C05CD1D7EE3 /* Debug */, + 2E4546AA742A1DB0D55046F49C92FDA8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/iOS/Airbnb/Pods/SwiftLint/LICENSE b/iOS/Airbnb/Pods/SwiftLint/LICENSE new file mode 100644 index 000000000..042037627 --- /dev/null +++ b/iOS/Airbnb/Pods/SwiftLint/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/iOS/Airbnb/Pods/SwiftLint/swiftlint b/iOS/Airbnb/Pods/SwiftLint/swiftlint new file mode 100755 index 000000000..402f15038 Binary files /dev/null and b/iOS/Airbnb/Pods/SwiftLint/swiftlint differ diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-Info.plist b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-Info.plist new file mode 100644 index 000000000..2243fe6e2 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-acknowledgements.markdown b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-acknowledgements.markdown new file mode 100644 index 000000000..ca921c3d6 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-acknowledgements.markdown @@ -0,0 +1,28 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## SwiftLint + +The MIT License (MIT) + +Copyright (c) 2020 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-acknowledgements.plist b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-acknowledgements.plist new file mode 100644 index 000000000..ddd65521c --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-acknowledgements.plist @@ -0,0 +1,60 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2020 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + SwiftLint + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-dummy.m b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-dummy.m new file mode 100644 index 000000000..09163f639 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Airbnb_AirbnbUITests : NSObject +@end +@implementation PodsDummy_Pods_Airbnb_AirbnbUITests +@end diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-umbrella.h b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-umbrella.h new file mode 100644 index 000000000..76b6aea19 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_Airbnb_AirbnbUITestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_Airbnb_AirbnbUITestsVersionString[]; + diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.debug.xcconfig b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.debug.xcconfig new file mode 100644 index 000000000..1d2457638 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.debug.xcconfig @@ -0,0 +1,9 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.modulemap b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.modulemap new file mode 100644 index 000000000..ff226ceb4 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Airbnb_AirbnbUITests { + umbrella header "Pods-Airbnb-AirbnbUITests-umbrella.h" + + export * + module * { export * } +} diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.release.xcconfig b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.release.xcconfig new file mode 100644 index 000000000..1d2457638 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb-AirbnbUITests/Pods-Airbnb-AirbnbUITests.release.xcconfig @@ -0,0 +1,9 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-Info.plist b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-Info.plist new file mode 100644 index 000000000..2243fe6e2 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-acknowledgements.markdown b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-acknowledgements.markdown new file mode 100644 index 000000000..ca921c3d6 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-acknowledgements.markdown @@ -0,0 +1,28 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## SwiftLint + +The MIT License (MIT) + +Copyright (c) 2020 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-acknowledgements.plist b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-acknowledgements.plist new file mode 100644 index 000000000..ddd65521c --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-acknowledgements.plist @@ -0,0 +1,60 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2020 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + SwiftLint + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-dummy.m b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-dummy.m new file mode 100644 index 000000000..e8929f3a8 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Airbnb : NSObject +@end +@implementation PodsDummy_Pods_Airbnb +@end diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-umbrella.h b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-umbrella.h new file mode 100644 index 000000000..9ede3f5f6 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_AirbnbVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_AirbnbVersionString[]; + diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb.debug.xcconfig b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb.debug.xcconfig new file mode 100644 index 000000000..1d2457638 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb.debug.xcconfig @@ -0,0 +1,9 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb.modulemap b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb.modulemap new file mode 100644 index 000000000..a673f6d21 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Airbnb { + umbrella header "Pods-Airbnb-umbrella.h" + + export * + module * { export * } +} diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb.release.xcconfig b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb.release.xcconfig new file mode 100644 index 000000000..1d2457638 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-Airbnb/Pods-Airbnb.release.xcconfig @@ -0,0 +1,9 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-Info.plist b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-Info.plist new file mode 100644 index 000000000..2243fe6e2 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-acknowledgements.markdown b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-acknowledgements.markdown new file mode 100644 index 000000000..102af7538 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-acknowledgements.plist b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-acknowledgements.plist new file mode 100644 index 000000000..7acbad1ea --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-dummy.m b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-dummy.m new file mode 100644 index 000000000..99e918f2a --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_AirbnbTests : NSObject +@end +@implementation PodsDummy_Pods_AirbnbTests +@end diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-umbrella.h b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-umbrella.h new file mode 100644 index 000000000..a2aebb2e5 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_AirbnbTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_AirbnbTestsVersionString[]; + diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.debug.xcconfig b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.debug.xcconfig new file mode 100644 index 000000000..26f2c7736 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.debug.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.modulemap b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.modulemap new file mode 100644 index 000000000..f5421d614 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_AirbnbTests { + umbrella header "Pods-AirbnbTests-umbrella.h" + + export * + module * { export * } +} diff --git a/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.release.xcconfig b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.release.xcconfig new file mode 100644 index 000000000..26f2c7736 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/Pods-AirbnbTests/Pods-AirbnbTests.release.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iOS/Airbnb/Pods/Target Support Files/SwiftLint/SwiftLint.debug.xcconfig b/iOS/Airbnb/Pods/Target Support Files/SwiftLint/SwiftLint.debug.xcconfig new file mode 100644 index 000000000..003a1f436 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/SwiftLint/SwiftLint.debug.xcconfig @@ -0,0 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftLint +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftLint +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iOS/Airbnb/Pods/Target Support Files/SwiftLint/SwiftLint.release.xcconfig b/iOS/Airbnb/Pods/Target Support Files/SwiftLint/SwiftLint.release.xcconfig new file mode 100644 index 000000000..003a1f436 --- /dev/null +++ b/iOS/Airbnb/Pods/Target Support Files/SwiftLint/SwiftLint.release.xcconfig @@ -0,0 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftLint +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftLint +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iOS/cityBox.png b/iOS/cityBox.png new file mode 100644 index 000000000..6831c85f2 Binary files /dev/null and b/iOS/cityBox.png differ