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
16 changes: 16 additions & 0 deletions ACON-iOS/ACON-iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@
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 */; };
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 */; };
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 @@ -290,6 +294,10 @@
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>"; };
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>"; };
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 @@ -575,6 +583,7 @@
15CD256C2D3D794300320006 /* Component */,
1547A6ED2D33850600E96616 /* Cell */,
1547A6EA2D337F4100E96616 /* SpotListView.swift */,
157135B02DC2A259008C84F9 /* SpotListCollectionViewFlowLayout.swift */,
1558BADD2D31AB6C00ECDEF8 /* SpotListViewController.swift */,
);
path = View;
Expand Down Expand Up @@ -612,6 +621,7 @@
1547A8772D3550D900E96616 /* MatchingRateBgColorType.swift */,
15A3F6A52D36C49F00577E16 /* SpotListItemSizeType.swift */,
15AA6D162D68B4EF008021C6 /* SpotListErrorType.swift */,
157C061E2DC5E7CE000B04AF /* SpotTagType.swift */,
);
path = Type;
sourceTree = "<group>";
Expand Down Expand Up @@ -728,6 +738,7 @@
15CD256D2D3D795800320006 /* FloatingButton.swift */,
15CD256F2D3F86E700320006 /* CustomRefreshControl.swift */,
15C0ED512D429F7400C9ED83 /* SkeletonView.swift */,
157C06202DC5EBB4000B04AF /* SpotTagButton.swift */,
);
path = Component;
sourceTree = "<group>";
Expand Down Expand Up @@ -1126,6 +1137,7 @@
7414295C2D5D312C00B69528 /* UITableViewCell+.swift */,
748D6F942D2BD4D6007690B4 /* UICollectionViewCell+.swift */,
748D6F902D2BD44C007690B4 /* UILabel+.swift */,
157C0AC02DC689E7000B04AF /* UIImage+.swift */,
748D6F8E2D2BD33D007690B4 /* UIButton+.swift */,
748D6F8A2D2BD316007690B4 /* UIStackView+.swift */,
748D6F882D2BD28E007690B4 /* UIViewController+.swift */,
Expand Down Expand Up @@ -1782,6 +1794,7 @@
741E68912D3D385A00DF99EF /* ACPlugin.swift in Sources */,
745B19AE2D4002A100BDBDA4 /* PostLoginResponse.swift in Sources */,
15C0ED522D429F7400C9ED83 /* SkeletonView.swift in Sources */,
157C0AC12DC689E7000B04AF /* UIImage+.swift in Sources */,
15A48BFA2D574BA5003C2421 /* ProfileEditView.swift in Sources */,
74BF92272D39957600B923E3 /* StickyHeaderView.swift in Sources */,
151003EC2D5FBF7200409DF4 /* GetProfileResponse.swift in Sources */,
Expand Down Expand Up @@ -1816,6 +1829,7 @@
746261752D3EA7FD00A4E84F /* GetReviewVerificationResponse.swift in Sources */,
748D6FA82D2C3F93007690B4 /* BaseViewController.swift in Sources */,
D6FF82F92D381D6100090233 /* SmallBoxViewCell.swift in Sources */,
157135B12DC2A259008C84F9 /* SpotListCollectionViewFlowLayout.swift in Sources */,
D6D0F5192D36BAAB00326F17 /* FavoriteSpotStyleCollectionView.swift in Sources */,
746261712D3EA50A00A4E84F /* SpotCategoryType.swift in Sources */,
7414295B2D5D2FC400B69528 /* ProfileSettingViewController.swift in Sources */,
Expand Down Expand Up @@ -1843,6 +1857,7 @@
D6978F502D36E3C800523A25 /* AnalyzingViewController.swift in Sources */,
7462617B2D3EB06100A4E84F /* UploadService.swift in Sources */,
4C6B2F332D65A15D0089BCB6 /* WithdrawalTargetType.swift in Sources */,
157C06212DC5EBB4000B04AF /* SpotTagButton.swift in Sources */,
4C6B2F342D65A15D0089BCB6 /* WithdrawalService.swift in Sources */,
4C6B2F352D65A15D0089BCB6 /* WithdrawalRequest.swift in Sources */,
150A105C2DA28F2600B0BC9A /* ACTextField.swift in Sources */,
Expand Down Expand Up @@ -1982,6 +1997,7 @@
15CD257C2D3FF13F00320006 /* PostSpotListResponse.swift in Sources */,
D6D0F5132D36BA2900326F17 /* FavoriteCuisineCollectionView.swift in Sources */,
D6D0F5172D36BA9A00326F17 /* FavoriteSpotTypeCollectionView.swift in Sources */,
157C061F2DC5E7CE000B04AF /* SpotTagType.swift in Sources */,
15F45F862D66877200BD6B9C /* LoadingAnimatedButton.swift in Sources */,
D6FF82EB2D380AAF00090233 /* FavoriteSpotRankType.swift in Sources */,
D6D0F5152D36BA6500326F17 /* DislikeCollectionView.swift in Sources */,
Expand Down
36 changes: 30 additions & 6 deletions ACON-iOS/ACON-iOS/Global/Extensions/UIButton+.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,41 @@

import UIKit

import SnapKit

extension UIButton {

// MARK: - 버튼 모서리 둥글게

func roundedButton(cornerRadius: CGFloat, maskedCorners: CACornerMask) {
clipsToBounds = true
layer.cornerRadius = cornerRadius
layer.maskedCorners = CACornerMask(arrayLiteral: maskedCorners)
}


// MARK: - 버튼 타이틀 설정

// MARK: - Deprecated

// MARK: - Glassmorphism 배경 설정

func setGlassmorphismBackground(
_ cornerRadius: CGFloat,
glassColor: UIColor = .clear,
blurStyle: UIBlurEffect.Style = .systemUltraThinMaterial
) {
let glassView = GlassmorphismView()
glassView.clipsToBounds = true
glassView.layer.cornerRadius = cornerRadius
glassView.setGlassColor(glassColor)
glassView.setBlurStyle(blurStyle)

self.insertSubview(glassView, at: 0)

glassView.snp.makeConstraints {
$0.edges.equalToSuperview()
}
}


// MARK: - 단일 ACStyle 타이틀 설정

/// - Warning: Acon 버전 2.0.0 이후에서 더 이상 사용되지 않으며, 모두 대체되면 삭제될 예정입니다.
@available(*, deprecated, message: "Acon 2.0부터 더 이상 사용되지 않습니다.")
Expand All @@ -44,6 +65,9 @@ extension UIButton {
self.setAttributedTitle(attributedString, for: state)
}


// MARK: - 복수 ACStyle 타이틀 설정

/// - Warning: Acon 버전 2.0.0 이후에서 더 이상 사용되지 않으며, 모두 대체되면 삭제될 예정입니다.
@available(*, deprecated, message: "Acon 2.0부터 더 이상 사용되지 않습니다.")
func setPartialTitle(
Expand Down
20 changes: 20 additions & 0 deletions ACON-iOS/ACON-iOS/Global/Extensions/UIImage+.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//
// UIImage+.swift
// ACON-iOS
//
// Created by 김유림 on 5/4/25.
//

import UIKit

extension UIImage {

/// 이미지의 크기를 지정한 사이즈로 리사이징합니다.
func resize(to targetSize: CGSize) -> UIImage {
let renderer = UIGraphicsImageRenderer(size: targetSize)
return renderer.image { _ in
self.draw(in: CGRect(origin: .zero, size: targetSize))
}
}

}
6 changes: 5 additions & 1 deletion ACON-iOS/ACON-iOS/Global/Literals/StringLiterals.swift
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ enum StringLiterals {

static let matchingRate = "취향 일치율"

static let headerTitle = "지금, 나에게 딱 맞는 맛집이에요"
static let bestChoice = "최고의 선택."

static let footerText = "장소는 최대 6순위까지만 제공됩니다."

Expand All @@ -151,6 +151,10 @@ enum StringLiterals {

static let unsupportedRegionErrorMessage = "앗! 서비스 지원이 불가능한 지역에 있어요"

static let walk = "도보 "

static let minuteFindCourse = "분 길찾기"

}

enum LocalVerification {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.341",
"green" : "0.820",
"red" : "0.000"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.275",
"green" : "0.275",
"red" : "1.000"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
2 changes: 1 addition & 1 deletion ACON-iOS/ACON-iOS/Global/Utils/ScreenUtils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ struct ScreenUtils {
}

static var heightRatio: CGFloat {
let figmaHeight: CGFloat = 780
let figmaHeight: CGFloat = 740
return height / figmaHeight
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,16 @@ import Foundation

enum SpotListItemSizeType {

case minimumLineSpacing, itemWidth, longItemHeight, shortItemHeight, headerHeight, footerHeight
case minimumLineSpacing, itemMaxWidth, itemMinWidth, itemMaxHeight, itemMinHeight, headerHeight, footerHeight

var value: CGFloat {
switch self {
case .minimumLineSpacing: return 12
case .itemWidth: return ScreenUtils.width - 40
case .longItemHeight: return SpotListItemSizeType.itemWidth.value * 1.24
case .shortItemHeight: return SpotListItemSizeType.itemWidth.value * 0.39
case .headerHeight: return 52 + ScreenUtils.navViewHeight
case .minimumLineSpacing: return -20
case .itemMaxWidth: return 328 * ScreenUtils.widthRatio
case .itemMinWidth: return 264 * ScreenUtils.widthRatio
case .itemMaxHeight: return 444 * ScreenUtils.heightRatio
case .itemMinHeight: return 380 * ScreenUtils.heightRatio
case .headerHeight: return 54 + ScreenUtils.navViewHeight
case .footerHeight: return 114
}
}
Expand Down
24 changes: 24 additions & 0 deletions ACON-iOS/ACON-iOS/Presentation/SpotList/Type/SpotTagType.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//
// SpotTagType.swift
// ACON-iOS
//
// Created by 김유림 on 5/3/25.
//

import Foundation

enum SpotTagType {

case new
case local
case top(number: Int)

var text: String {
switch self {
case .new: "NEW"
case .local: "LOCAL"
case .top(let number): "TOP \(String(number))"
}
}

}
Loading