Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 2 additions & 10 deletions ACON-iOS/ACON-iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@
156D925C2D6536CF0037F8F1 /* CustomAlertTitleAndButtonsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 156D925B2D6536CF0037F8F1 /* CustomAlertTitleAndButtonsView.swift */; };
156D925E2D65375B0037F8F1 /* CustomAlertTitleAndButtonsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 156D925D2D65375B0037F8F1 /* CustomAlertTitleAndButtonsViewController.swift */; };
156D92602D6570A90037F8F1 /* PatchProfileRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 156D925F2D6570A90037F8F1 /* PatchProfileRequest.swift */; };
157C0BE82DC897EE000B04AF /* SpotToggleButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157C0BE72DC897EE000B04AF /* SpotToggleButtonView.swift */; };
157135B12DC2A259008C84F9 /* SpotListCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157135B02DC2A259008C84F9 /* SpotListCollectionViewFlowLayout.swift */; };
157C061F2DC5E7CE000B04AF /* SpotTagType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157C061E2DC5E7CE000B04AF /* SpotTagType.swift */; };
157C06212DC5EBB4000B04AF /* SpotTagButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157C06202DC5EBB4000B04AF /* SpotTagButton.swift */; };
157C0AC12DC689E7000B04AF /* UIImage+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157C0AC02DC689E7000B04AF /* UIImage+.swift */; };
157C0BE82DC897EE000B04AF /* SpotToggleButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157C0BE72DC897EE000B04AF /* SpotToggleButtonView.swift */; };
15A1471E2D5A7F96003793EE /* LabelBoxWithDeletableButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15A1471D2D5A7F96003793EE /* LabelBoxWithDeletableButton.swift */; };
15A147212D5B256D003793EE /* LocalVerificationFlowType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15A147202D5B256D003793EE /* LocalVerificationFlowType.swift */; };
15A3F6A62D36C49F00577E16 /* SpotListItemSizeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15A3F6A52D36C49F00577E16 /* SpotListItemSizeType.swift */; };
Expand Down Expand Up @@ -210,10 +210,8 @@
74BF92022D385D8700B923E3 /* MenuCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF92012D385D8100B923E3 /* MenuCollectionViewCell.swift */; };
74BF92042D3861A600B923E3 /* SpotDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF92032D38619E00B923E3 /* SpotDetailViewController.swift */; };
74BF92072D38622B00B923E3 /* SpotDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF92062D38622600B923E3 /* SpotDetailViewModel.swift */; };
74BF92102D391FFE00B923E3 /* LocalVerificationFinishedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF920A2D391FFE00B923E3 /* LocalVerificationFinishedView.swift */; };
74BF92112D391FFE00B923E3 /* LocalVerificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF920D2D391FFE00B923E3 /* LocalVerificationViewController.swift */; };
74BF92122D391FFE00B923E3 /* LocalMapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF92092D391FFE00B923E3 /* LocalMapViewController.swift */; };
74BF92132D391FFE00B923E3 /* LocalVerificationFinishedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF920B2D391FFE00B923E3 /* LocalVerificationFinishedViewController.swift */; };
74BF92142D391FFE00B923E3 /* LocalMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF92082D391FFE00B923E3 /* LocalMapView.swift */; };
74BF92152D391FFE00B923E3 /* LocalVerificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF920C2D391FFE00B923E3 /* LocalVerificationView.swift */; };
74BF92172D393B4A00B923E3 /* Int+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF92162D393B4700B923E3 /* Int+.swift */; };
Expand Down Expand Up @@ -287,11 +285,11 @@
156D925B2D6536CF0037F8F1 /* CustomAlertTitleAndButtonsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomAlertTitleAndButtonsView.swift; sourceTree = "<group>"; };
156D925D2D65375B0037F8F1 /* CustomAlertTitleAndButtonsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomAlertTitleAndButtonsViewController.swift; sourceTree = "<group>"; };
156D925F2D6570A90037F8F1 /* PatchProfileRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchProfileRequest.swift; sourceTree = "<group>"; };
157C0BE72DC897EE000B04AF /* SpotToggleButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotToggleButtonView.swift; sourceTree = "<group>"; };
157135B02DC2A259008C84F9 /* SpotListCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotListCollectionViewFlowLayout.swift; sourceTree = "<group>"; };
157C061E2DC5E7CE000B04AF /* SpotTagType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotTagType.swift; sourceTree = "<group>"; };
157C06202DC5EBB4000B04AF /* SpotTagButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotTagButton.swift; sourceTree = "<group>"; };
157C0AC02DC689E7000B04AF /* UIImage+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+.swift"; sourceTree = "<group>"; };
157C0BE72DC897EE000B04AF /* SpotToggleButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotToggleButtonView.swift; sourceTree = "<group>"; };
15A1471D2D5A7F96003793EE /* LabelBoxWithDeletableButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelBoxWithDeletableButton.swift; sourceTree = "<group>"; };
15A147202D5B256D003793EE /* LocalVerificationFlowType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalVerificationFlowType.swift; sourceTree = "<group>"; };
15A3F6A52D36C49F00577E16 /* SpotListItemSizeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotListItemSizeType.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -458,8 +456,6 @@
74BF92062D38622600B923E3 /* SpotDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpotDetailViewModel.swift; sourceTree = "<group>"; };
74BF92082D391FFE00B923E3 /* LocalMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalMapView.swift; sourceTree = "<group>"; };
74BF92092D391FFE00B923E3 /* LocalMapViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalMapViewController.swift; sourceTree = "<group>"; };
74BF920A2D391FFE00B923E3 /* LocalVerificationFinishedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalVerificationFinishedView.swift; sourceTree = "<group>"; };
74BF920B2D391FFE00B923E3 /* LocalVerificationFinishedViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalVerificationFinishedViewController.swift; sourceTree = "<group>"; };
74BF920C2D391FFE00B923E3 /* LocalVerificationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalVerificationView.swift; sourceTree = "<group>"; };
74BF920D2D391FFE00B923E3 /* LocalVerificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalVerificationViewController.swift; sourceTree = "<group>"; };
74BF92162D393B4700B923E3 /* Int+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1361,8 +1357,6 @@
children = (
74BF92082D391FFE00B923E3 /* LocalMapView.swift */,
74BF92092D391FFE00B923E3 /* LocalMapViewController.swift */,
74BF920A2D391FFE00B923E3 /* LocalVerificationFinishedView.swift */,
74BF920B2D391FFE00B923E3 /* LocalVerificationFinishedViewController.swift */,
74BF920C2D391FFE00B923E3 /* LocalVerificationView.swift */,
74BF920D2D391FFE00B923E3 /* LocalVerificationViewController.swift */,
151BD9522D6332A5005E657F /* VerifiedAreasEditView.swift */,
Expand Down Expand Up @@ -1879,7 +1873,6 @@
748D6F802D2BCD94007690B4 /* ObservablePattern.swift in Sources */,
74BF92192D395FE800B923E3 /* ACToastController.swift in Sources */,
1558BADE2D31AB6C00ECDEF8 /* SpotListViewController.swift in Sources */,
74BF92102D391FFE00B923E3 /* LocalVerificationFinishedView.swift in Sources */,
74BF92112D391FFE00B923E3 /* LocalVerificationViewController.swift in Sources */,
74BF92122D391FFE00B923E3 /* LocalMapViewController.swift in Sources */,
D6E8168E2D6228F5001E4EBF /* WithdrawalViewController.swift in Sources */,
Expand All @@ -1888,7 +1881,6 @@
746261692D3EA33300A4E84F /* PostReviewRequest.swift in Sources */,
15CD257E2D3FF4F200320006 /* SpotListTargetType.swift in Sources */,
156D925C2D6536CF0037F8F1 /* CustomAlertTitleAndButtonsView.swift in Sources */,
74BF92132D391FFE00B923E3 /* LocalVerificationFinishedViewController.swift in Sources */,
15AA6D152D68AC09008021C6 /* GetDongRequest.swift in Sources */,
74DDBA8D2DC45E4500BF9824 /* ACButton.swift in Sources */,
74A13D6B2DCC035F007FFFC3 /* LeftAlignedCollectionViewFlowLayout.swift in Sources */,
Expand Down
6 changes: 3 additions & 3 deletions ACON-iOS/ACON-iOS/Global/Literals/StringLiterals.swift
Original file line number Diff line number Diff line change
Expand Up @@ -161,11 +161,11 @@ enum StringLiterals {

enum LocalVerification {

static let needLocalVerification = "로컬 맛집 추천을 위해\n동네 인증이 필요해요"
static let title = "믿을 수 있는 리뷰를 위해\n지역인증이 필요해요"

static let doLocalVerification = "자주 가는 동네로 지역 인증을 해보세요"
static let description = "더 정확한 로컬맛집을 추천해드릴 수 있어요"

static let new = "새로운"
static let oneSecond = "1초만에 인증하기"

static let verifyLocal = " 나의 동네 인증하기"

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "Location.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"images" : [
{
"filename" : "img_background_local_certification.png",
"filename" : "Group 1707481680.png",
"idiom" : "universal"
}
],
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
18 changes: 18 additions & 0 deletions ACON-iOS/ACON-iOS/Global/Settings/Config/Config.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,12 @@ enum Config {

static let nMapClientKey = "NMFClientId"

static let nmfNcpKeyID = "NMFNcpKeyId"

static let amplitudeKey = "AMPLITUDE_KEY"

static let nmfCustomStyleID = "NMFCustomStyleID"

}

}
Expand Down Expand Up @@ -67,11 +71,25 @@ extension Config {
return key
}()

static let nmfNcpKeyID: String = {
guard let key = Config.infoDictionary[Keys.Plist.nmfNcpKeyID] as? String else {
fatalError("nmfNcpKeyID is not set in plist for this configuration")
}
return key
}()

static let amplitudeKey: String = {
guard let key = Config.infoDictionary[Keys.Plist.amplitudeKey] as? String else {
fatalError("amplitudeKey is not set in plist for this configuration")
}
return key
}()

static let nmfCustomStyleID: String = {
guard let key = Config.infoDictionary[Keys.Plist.nmfCustomStyleID] as? String else {
fatalError("nmfCustomStyleID is not set in plist for this configuration")
}
return key
}()

}
4 changes: 4 additions & 0 deletions ACON-iOS/ACON-iOS/Global/Settings/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@
<true/>
<key>NMFClientId</key>
<string>${NMAP_CLIENT_KEY}</string>
<key>NMFNcpKeyId</key>
<string>${NMF_NCP_KEY_ID}</string>
<key>NMFCustomStyleID</key>
<string>${NMF_CUSTOM_STYLE_ID}</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
Expand Down
22 changes: 22 additions & 0 deletions ACON-iOS/ACON-iOS/Global/UIComponents/GlassmorphismView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,25 @@ extension GlassmorphismView {
}

}


// MARK: - Set Gradient

extension GlassmorphismView {

func setGradient(topColor: UIColor = .gray900.withAlphaComponent(1),
bottomColor: UIColor = .gray900.withAlphaComponent(0.1)) {
layer.sublayers?.filter { $0 is CAGradientLayer }.forEach { $0.removeFromSuperlayer()
}

let gradient = CAGradientLayer()
gradient.do {
$0.frame = bounds
$0.colors = [topColor.cgColor, bottomColor.cgColor]
$0.startPoint = CGPoint(x: 0.5, y: 0.0)
$0.endPoint = CGPoint(x: 0.5, y: 1.0)
}
layer.insertSublayer(gradient, at: 0)
}

}
4 changes: 4 additions & 0 deletions ACON-iOS/ACON-iOS/Global/Utils/ScreenUtils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,8 @@ struct ScreenUtils {
return ScreenUtils.heightRatio * 56
}

static var safeAreaTopHeight: CGFloat {
return UIApplication.shared.windows.first?.safeAreaInsets.top ?? 0
}

}
14 changes: 10 additions & 4 deletions ACON-iOS/ACON-iOS/Presentation/Base/BaseNavViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ class BaseNavViewController: UIViewController {

// MARK: - UI Properties

var glassmorphismNavBarView: GlassmorphismView = GlassmorphismView(.gradientGlass)

var topInsetView: UIView = UIView()

var navigationBarView: UIView = UIView()
Expand All @@ -30,8 +32,7 @@ class BaseNavViewController: UIViewController {

var centerTitleLabel: UILabel = UILabel()

// 🍇 TODO: 글모 Type 확인
let glassMorphismView = GlassmorphismView(.buttonGlassDisabled)
let glassMorphismView = GlassmorphismView(.gradientGlass)

var backCompletion: (() -> Void)?

Expand Down Expand Up @@ -182,10 +183,15 @@ extension BaseNavViewController {
func setGlassMorphism() {
self.view.insertSubview(glassMorphismView,
aboveSubview: contentView)
[topInsetView, navigationBarView].forEach {
$0.backgroundColor = .clear
}
glassMorphismView.snp.makeConstraints {
$0.top.equalTo(topInsetView)
$0.bottom.horizontalEdges.equalTo(navigationBarView)
$0.top.horizontalEdges.equalToSuperview()
$0.height.equalTo(ScreenUtils.safeAreaTopHeight + ScreenUtils.navViewHeight)
}
self.view.layoutIfNeeded()
glassMorphismView.setGradient()
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,11 @@ final class LocalMapView: BaseView {

var acMapMarker: NMFMarker = NMFMarker()

var finishVerificationButton: UIButton = UIButton()

var finishVerificationButton: ACButton = ACButton(style: GlassButton(glassmorphismType: .buttonGlassDefault,
buttonType: .full_12_t4SB),
title: StringLiterals.LocalVerification.finishVerification)


// MARK: - Lifecycle

override func setHierarchy() {
Expand All @@ -32,10 +35,9 @@ final class LocalMapView: BaseView {

override func setLayout() {
super.setLayout()

nMapView.snp.makeConstraints {
$0.top.horizontalEdges.equalToSuperview()
$0.height.equalTo(ScreenUtils.heightRatio*564)
$0.edges.equalToSuperview()
}

finishVerificationButton.snp.makeConstraints {
Expand All @@ -54,27 +56,24 @@ final class LocalMapView: BaseView {
$0.showZoomControls = false
$0.showScaleBar = false
$0.showCompass = false
$0.mapView.positionMode = .disabled
$0.mapView.zoomLevel = 17
$0.mapView.minZoomLevel = 14
$0.mapView.maxZoomLevel = 18
$0.mapView.do {
$0.positionMode = .disabled
$0.zoomLevel = 17
$0.minZoomLevel = 14
$0.maxZoomLevel = 18
$0.customStyleId = Config.nmfCustomStyleID
$0.logoAlign = .rightTop
$0.logoMargin = ConstraintInsets(top: ScreenUtils.safeAreaTopHeight+ScreenUtils.heightRatio*80, left: 0, bottom: 0, right: ScreenUtils.widthRatio*16)
}
}

acMapMarker.do {
$0.iconImage = NMFOverlayImage(name: "ic_mark")
$0.width = 48
$0.height = 48
$0.iconImage = NMFOverlayImage(name: "ic_location")
// TODO: 피그마상 36x36인데 우선 디자인과 100X100으로 합의
$0.width = 100
$0.height = 100
$0.mapView = nMapView.mapView
}

finishVerificationButton.do {
$0.setAttributedTitle(text: StringLiterals.LocalVerification.finishVerification,
style: .h8,
color: .acWhite,
for: .normal)
$0.backgroundColor = .gray500
$0.roundedButton(cornerRadius: 6, maskedCorners: [.layerMaxXMaxYCorner, .layerMaxXMinYCorner, .layerMinXMaxYCorner, .layerMinXMinYCorner])
}
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,15 @@ class LocalMapViewController: BaseNavViewController {
super.setLayout()

localMapView.snp.makeConstraints {
$0.edges.equalToSuperview()
$0.top.equalTo(self.topInsetView.snp.top)
$0.bottom.horizontalEdges.equalToSuperview()
}
}

override func setStyle() {
super.setStyle()

self.setGlassMorphism()
self.setBackButton()
self.setSecondTitleLabelStyle(title: StringLiterals.LocalVerification.locateOnMap)
}
Expand Down Expand Up @@ -99,7 +101,7 @@ private extension LocalMapViewController {
switch flowType {
case .onboarding:
self?.localArea = areaName
self?.presentVerificationFinsishedVC()
self?.navigateToOnboarding()
case .adding, .switching:
guard let vcStack = self?.navigationController?.viewControllers else { return }
self?.localArea = areaName
Expand Down Expand Up @@ -135,20 +137,14 @@ private extension LocalMapViewController {
}


// MARK: - @objc functions
// MARK: - navigation functions

private extension LocalMapViewController {

func presentVerificationFinsishedVC() {
let vc = LocalVerificationFinishedViewController(localArea: self.localArea)
vc.dismissCompletion = { [weak self] in
self?.removeBlurView()
func navigateToOnboarding() {
if let sceneDelegate = UIApplication.shared.connectedScenes.first?.delegate as? SceneDelegate {
sceneDelegate.window?.rootViewController = OnboardingViewController()
}

vc.setSheetLayout(detent: .middle)
vc.isModalInPresentation = true
self.addBlurView()
self.present(vc, animated: true)
}

}
Expand Down
Loading