diff --git a/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj b/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj index a3d5cb35..25df1c5a 100644 --- a/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj +++ b/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj @@ -138,6 +138,7 @@ CEC2A6902962B06C00160BF7 /* convertLocationObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEC2A68F2962B06C00160BF7 /* convertLocationObject.swift */; }; CEC2A6922962BE2900160BF7 /* DepartureSearchVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEC2A6912962BE2900160BF7 /* DepartureSearchVC.swift */; }; CECA695C296E61D6002AF05C /* PrivateCourseNotUploadedResponseDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = CECA695B296E61D6002AF05C /* PrivateCourseNotUploadedResponseDto.swift */; }; + CED791B32A2626AF001BFCFB /* ShadowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED791B22A2626AF001BFCFB /* ShadowView.swift */; }; CEE59FDA29DD6F7D00C791F1 /* Providers.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEE59FD929DD6F7D00C791F1 /* Providers.swift */; }; CEEC6B3A2961C4F300D00E1E /* CourseDrawingHomeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEEC6B392961C4F300D00E1E /* CourseDrawingHomeVC.swift */; }; CEEC6B3C2961C51A00D00E1E /* CourseStorageVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEEC6B3B2961C51A00D00E1E /* CourseStorageVC.swift */; }; @@ -302,6 +303,7 @@ CEC2A68F2962B06C00160BF7 /* convertLocationObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = convertLocationObject.swift; sourceTree = ""; }; CEC2A6912962BE2900160BF7 /* DepartureSearchVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DepartureSearchVC.swift; sourceTree = ""; }; CECA695B296E61D6002AF05C /* PrivateCourseNotUploadedResponseDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivateCourseNotUploadedResponseDto.swift; sourceTree = ""; }; + CED791B22A2626AF001BFCFB /* ShadowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowView.swift; sourceTree = ""; }; CEE59FD929DD6F7D00C791F1 /* Providers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Providers.swift; sourceTree = ""; }; CEEC6B392961C4F300D00E1E /* CourseDrawingHomeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDrawingHomeVC.swift; sourceTree = ""; }; CEEC6B3B2961C51A00D00E1E /* CourseStorageVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseStorageVC.swift; sourceTree = ""; }; @@ -1042,6 +1044,7 @@ CE6B63D729673450003F900F /* ListEmptyView.swift */, CEB0BCBB29D123350048CCD5 /* GuideView.swift */, A3C2CAD629E53B2900EC525B /* RNAlertVC.swift */, + CED791B22A2626AF001BFCFB /* ShadowView.swift */, ); path = UIComponents; sourceTree = ""; @@ -1441,6 +1444,7 @@ CE14677A2965A80700DCEA1B /* CustomBottomSheetVC.swift in Sources */, CEEC6B4B2961D89700D00E1E /* CustomNavigationBar.swift in Sources */, CE09037D296E9ED900BEA710 /* ScrapCourseResponseDto.swift in Sources */, + CED791B32A2626AF001BFCFB /* ShadowView.swift in Sources */, CE40BB2D296808B00030ABCA /* DepartureSearchingRouter.swift in Sources */, CE15F5A4296C932E0023827C /* RunningModel.swift in Sources */, CE17F02D2961BBA100E1DED0 /* ColorLiterals.swift in Sources */, @@ -1600,7 +1604,7 @@ CODE_SIGN_ENTITLEMENTS = "Runnect-iOS/Runnect-iOS.entitlements"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 23051501; + CURRENT_PROJECT_VERSION = 23053001; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 9K86FQHDLU; GENERATE_INFOPLIST_FILE = YES; @@ -1618,14 +1622,17 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.0; + MARKETING_VERSION = 1.0.1; PRODUCT_BUNDLE_IDENTIFIER = "com.runnect.Runnect-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Runnect Debug"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; }; name = Debug; }; @@ -1638,7 +1645,7 @@ CODE_SIGN_ENTITLEMENTS = "Runnect-iOS/Runnect-iOS.entitlements"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 23051501; + CURRENT_PROJECT_VERSION = 23053001; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 9K86FQHDLU; GENERATE_INFOPLIST_FILE = YES; @@ -1656,14 +1663,17 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.0; + MARKETING_VERSION = 1.0.1; PRODUCT_BUNDLE_IDENTIFIER = "com.runnect.Runnect-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Runnect Release"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; }; name = Release; }; diff --git a/Runnect-iOS/Runnect-iOS/Global/UIComponents/ShadowView.swift b/Runnect-iOS/Runnect-iOS/Global/UIComponents/ShadowView.swift new file mode 100644 index 00000000..84c69b1c --- /dev/null +++ b/Runnect-iOS/Runnect-iOS/Global/UIComponents/ShadowView.swift @@ -0,0 +1,37 @@ +// +// ShadowView.swift +// Runnect-iOS +// +// Created by sejin on 2023/05/30. +// + +import UIKit + +final class ShadowView: UIView { + override init(frame: CGRect) { + super.init(frame: frame) + self.isOpaque = true + self.backgroundColor = .black + self.dropShadow() + } + + init() { + super.init(frame: .zero) + self.isOpaque = true + self.backgroundColor = .black + self.dropShadow() + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func dropShadow() { + self.layer.masksToBounds = false + self.layer.cornerRadius = 20 + self.layer.shadowColor = UIColor.black.cgColor + self.layer.shadowOffset = CGSize(width: 0, height: 3) + self.layer.shadowOpacity = 0.6 + self.layer.shadowRadius = 10 / 2.0 + } +} diff --git a/Runnect-iOS/Runnect-iOS/Network/Service/Providers.swift b/Runnect-iOS/Runnect-iOS/Network/Service/Providers.swift index eeb361cc..c8ca9884 100644 --- a/Runnect-iOS/Runnect-iOS/Network/Service/Providers.swift +++ b/Runnect-iOS/Runnect-iOS/Network/Service/Providers.swift @@ -26,7 +26,7 @@ extension MoyaProvider { self.init(session: Session(interceptor: AuthInterceptor.shared), plugins: [NetworkLoggerPlugin(verbose: true)]) } else { - self.init() + self.init(plugins: [NetworkLoggerPlugin(verbose: true)]) } } } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Views/VC/CourseDiscoveryVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Views/VC/CourseDiscoveryVC.swift index 087eaf69..a26fce98 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Views/VC/CourseDiscoveryVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Views/VC/CourseDiscoveryVC.swift @@ -29,6 +29,7 @@ final class CourseDiscoveryVC: UIViewController { $0.tintColor = .g1 } private let uploadButton = CustomButton(title: "업로드").then { + $0.clipsToBounds = true $0.layer.cornerRadius = 20 $0.setImage(ImageLiterals.icPlus, for: .normal) $0.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 10) @@ -156,10 +157,23 @@ extension CourseDiscoveryVC { make.height.equalTo(40) make.width.equalTo(92) } + emptyView.snp.makeConstraints { make in make.top.equalTo(naviBar.snp.bottom).offset(300) make.centerX.equalTo(naviBar) } + + let shadowView = ShadowView() + self.view.addSubview(shadowView) + + shadowView.snp.makeConstraints { make in + make.trailing.equalTo(self.view.safeAreaLayoutGuide).inset(16) + make.bottom.equalTo(self.view.safeAreaLayoutGuide).inset(20) + make.height.equalTo(40) + make.width.equalTo(92) + } + + self.view.bringSubviewToFront(uploadButton) } }