diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/100.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/100.png index d0db3a46..3bf5515f 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/100.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/100.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/1024.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/1024.png index a37ca950..d80f1234 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/1024.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/1024.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/114.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/114.png index a6bc78bc..a1cd93a9 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/114.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/114.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/120.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/120.png index b4899c92..23de60ef 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/120.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/120.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/144.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/144.png index e8dba694..edf89ba9 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/144.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/144.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/152.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/152.png index 8a7f2ade..cf6eecf1 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/152.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/152.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/167.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/167.png index 2ee68c7e..125b959e 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/167.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/167.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/180.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/180.png index 6b65dfa4..558db7b1 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/180.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/180.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/20.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/20.png index 078e2a87..c16a1335 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/20.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/20.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/29.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/29.png index 5f30143c..e284c272 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/29.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/29.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/40.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/40.png index 72b26ed2..3ea73ed3 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/40.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/40.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/50.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/50.png index 0fbab324..74483b62 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/50.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/50.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/57.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/57.png index 8faa9c5b..8abd0275 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/57.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/57.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/58.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/58.png index a5464765..c597edcf 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/58.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/58.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/60.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/60.png index cbf7ebcd..4e2a15db 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/60.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/60.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/72.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/72.png index c0fde981..9c9b0ce4 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/72.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/72.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/76.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/76.png index d405044f..36b10bd8 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/76.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/76.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/80.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/80.png index 85099845..e7da2383 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/80.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/80.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/87.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/87.png index e86cb648..8d9f5165 100644 Binary files a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/87.png and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon.appiconset/87.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/100.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/100.png new file mode 100644 index 00000000..d0db3a46 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/100.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/1024.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/1024.png new file mode 100644 index 00000000..a37ca950 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/1024.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/114.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/114.png new file mode 100644 index 00000000..a6bc78bc Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/114.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/120.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/120.png new file mode 100644 index 00000000..b4899c92 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/120.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/144.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/144.png new file mode 100644 index 00000000..e8dba694 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/144.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/152.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/152.png new file mode 100644 index 00000000..8a7f2ade Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/152.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/167.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/167.png new file mode 100644 index 00000000..2ee68c7e Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/167.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/180.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/180.png new file mode 100644 index 00000000..6b65dfa4 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/180.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/20.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/20.png new file mode 100644 index 00000000..078e2a87 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/20.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/29.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/29.png new file mode 100644 index 00000000..5f30143c Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/29.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/40.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/40.png new file mode 100644 index 00000000..72b26ed2 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/40.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/50.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/50.png new file mode 100644 index 00000000..0fbab324 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/50.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/57.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/57.png new file mode 100644 index 00000000..8faa9c5b Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/57.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/58.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/58.png new file mode 100644 index 00000000..a5464765 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/58.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/60.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/60.png new file mode 100644 index 00000000..cbf7ebcd Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/60.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/72.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/72.png new file mode 100644 index 00000000..c0fde981 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/72.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/76.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/76.png new file mode 100644 index 00000000..d405044f Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/76.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/80.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/80.png new file mode 100644 index 00000000..85099845 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/80.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/87.png b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/87.png new file mode 100644 index 00000000..e86cb648 Binary files /dev/null and b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/87.png differ diff --git a/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/Contents.json b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/Contents.json new file mode 100644 index 00000000..4fdf8826 --- /dev/null +++ b/EATSSU/App/Resources/Assets/Images.xcassets/AppIcon_christmas.appiconset/Contents.json @@ -0,0 +1,158 @@ +{ + "images" : [ + { + "filename" : "40.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "57.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "57x57" + }, + { + "filename" : "114.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "57x57" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "20.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "80.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "50.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "50x50" + }, + { + "filename" : "100.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "50x50" + }, + { + "filename" : "72.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "72x72" + }, + { + "filename" : "144.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "72x72" + }, + { + "filename" : "76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/EATSSU/App/Sources/Data/Firebase/FirebaseScreenID.swift b/EATSSU/App/Sources/Data/Firebase/FirebaseScreenID.swift index 50094112..d8b78e66 100644 --- a/EATSSU/App/Sources/Data/Firebase/FirebaseScreenID.swift +++ b/EATSSU/App/Sources/Data/Firebase/FirebaseScreenID.swift @@ -51,6 +51,11 @@ enum FirebaseScreenID { static let map4 = "MAP_002000" } + /// 나만아니면돼~ (커피 이벤트) + enum AnyoneButMeActivity { + static let abm1 = "ABM_001000" + } + /// 마이페이지 enum MyPage { static let mypage1 = "MYP_001000" diff --git a/EATSSU/App/Sources/Presentation/Coffee/ViewController/CoffeeWebViewController.swift b/EATSSU/App/Sources/Presentation/Coffee/ViewController/CoffeeWebViewController.swift new file mode 100644 index 00000000..6b2bf724 --- /dev/null +++ b/EATSSU/App/Sources/Presentation/Coffee/ViewController/CoffeeWebViewController.swift @@ -0,0 +1,95 @@ +// +// CoffeeWebViewController.swift +// EATSSU-DEV +// +// Created by 황상환 on 2/23/26. +// + +import UIKit +import WebKit + +import EATSSUDesign + +import SnapKit + +final class CoffeeWebViewController: BaseViewController { + + // MARK: - UI Components + + private let webView = WKWebView() + + private let closeButton: UIButton = { + let button = UIButton(type: .system) + let image = UIImage(systemName: "xmark")? + .withConfiguration(UIImage.SymbolConfiguration(pointSize: 16, weight: .semibold)) + button.setImage(image, for: .normal) + button.tintColor = .gray700 + button.backgroundColor = .white + button.layer.cornerRadius = 18 + button.layer.shadowColor = UIColor.black.cgColor + button.layer.shadowOpacity = 0.15 + button.layer.shadowOffset = CGSize(width: 0, height: 2) + button.layer.shadowRadius = 4 + return button + }() + + // MARK: - Life Cycle + + override func viewDidLoad() { + super.viewDidLoad() + + webView.scrollView.contentInsetAdjustmentBehavior = .never + logScreenView(screenID: FirebaseScreenID.AnyoneButMeActivity.abm1) + loadWebPage() + } + + override func configureUI() { + view.addSubview(webView) + view.addSubview(closeButton) + } + + override func setLayout() { + webView.snp.makeConstraints { + $0.edges.equalToSuperview() + } + + closeButton.snp.makeConstraints { + $0.top.equalTo(view.safeAreaLayoutGuide).offset(8) + $0.leading.equalToSuperview().offset(16) + $0.size.equalTo(36) + } + } + + override func setButtonEvent() { + closeButton.addTarget(self, action: #selector(closeTapped), for: .touchUpInside) + } + + // MARK: - Private + + @objc private func closeTapped() { + let dialogView = EATSSUDialogView() + dialogView.configure( + title: TextLiteral.Coffee.askLeave, + message: TextLiteral.Coffee.leaveWarning + ) + dialogView.setButtonTitles(cancel: TextLiteral.Coffee.leave, confirm: TextLiteral.Coffee.continueEvent) + view.addSubview(dialogView) + dialogView.snp.makeConstraints { + $0.edges.equalToSuperview() + } + + dialogView.cancelButton.addAction(UIAction { [weak self] _ in + dialogView.removeFromSuperview() + self?.dismiss(animated: true) + }, for: .touchUpInside) + + dialogView.confirmButton.addAction(UIAction { _ in + dialogView.removeFromSuperview() + }, for: .touchUpInside) + } + + private func loadWebPage() { + guard let url = URL(string: "https://eatssu-coffee.figma.site/") else { return } + webView.load(URLRequest(url: url)) + } +} diff --git a/EATSSU/App/Sources/Presentation/Splash/SplashViewController.swift b/EATSSU/App/Sources/Presentation/Splash/SplashViewController.swift index 0f3a2eb1..aeff8ad5 100644 --- a/EATSSU/App/Sources/Presentation/Splash/SplashViewController.swift +++ b/EATSSU/App/Sources/Presentation/Splash/SplashViewController.swift @@ -15,17 +15,18 @@ import EATSSUDesign /// 기본 스플래시 뷰 class SplashViewController: BaseViewController { // MARK: - UI Components - private let backgroundImageView: UIImageView = { - let imageView = UIImageView() - imageView.image = EATSSUDesignAsset.Images.splashChistmasBackground.image - imageView.contentMode = .scaleAspectFill - imageView.clipsToBounds = true - return imageView - }() +// private let backgroundImageView: UIImageView = { +// let imageView = UIImageView() +// imageView.image = EATSSUDesignAsset.Images.splashChistmasBackground.image +// imageView.contentMode = .scaleAspectFill +// imageView.clipsToBounds = true +// return imageView +// }() private let logoImageView: UIImageView = { let imageView = UIImageView() - imageView.image = EATSSUDesignAsset.Images.splashChristmasLogo.image +// imageView.image = EATSSUDesignAsset.Images.splashChristmasLogo.image + imageView.image = EATSSUDesignAsset.Images.splashLogo.image imageView.contentMode = .scaleAspectFit return imageView }() @@ -44,14 +45,14 @@ class SplashViewController: BaseViewController { // MARK: - UI Setup override func configureUI() { - view.addSubview(backgroundImageView) +// view.addSubview(backgroundImageView) view.addSubview(logoImageView) } override func setLayout() { - backgroundImageView.snp.makeConstraints { - $0.edges.equalToSuperview() - } +// backgroundImageView.snp.makeConstraints { +// $0.edges.equalToSuperview() +// } logoImageView.snp.makeConstraints { $0.center.equalToSuperview() diff --git a/EATSSU/App/Sources/Presentation/TabBar/CustomTabBarContainerController.swift b/EATSSU/App/Sources/Presentation/TabBar/CustomTabBarContainerController.swift index 2e4ea90f..2f02fd5c 100644 --- a/EATSSU/App/Sources/Presentation/TabBar/CustomTabBarContainerController.swift +++ b/EATSSU/App/Sources/Presentation/TabBar/CustomTabBarContainerController.swift @@ -18,14 +18,16 @@ final class CustomTabBarContainerController: UITabBarController { private enum Tab: Int { case home = 0 case map = 1 - case myPage = 2 + case coffee = 2 + case myPage = 3 } // MARK: - Properties - private lazy var tabViewControllers: [UINavigationController] = [ + private lazy var tabViewControllers: [UIViewController] = [ UINavigationController(rootViewController: HomeViewController()), UINavigationController(rootViewController: MainMapViewController()), + UIViewController(), UINavigationController(rootViewController: MyPageViewController()) ] @@ -58,6 +60,7 @@ final class CustomTabBarContainerController: UITabBarController { let tabConfigurations: [(title: String, normal: UIImage, selected: UIImage, size: CGSize)] = [ (TextLiteral.TabBar.meal, EATSSUDesignAsset.Images.tabMeal.image, EATSSUDesignAsset.Images.tabMealSelected.image, CGSize(width: 23, height: 23)), (TextLiteral.TabBar.map, EATSSUDesignAsset.Images.tabMap.image, EATSSUDesignAsset.Images.tabMapSelected.image, CGSize(width: 23, height: 23)), + (TextLiteral.TabBar.coffee, EATSSUDesignAsset.Images.coffee.image, EATSSUDesignAsset.Images.coffeeSelected.image, CGSize(width: 23, height: 23)), (TextLiteral.TabBar.my, EATSSUDesignAsset.Images.tabMypage.image, EATSSUDesignAsset.Images.tabMypageSelected.image, CGSize(width: 44, height: 23)) ] @@ -96,13 +99,19 @@ final class CustomTabBarContainerController: UITabBarController { /// 외부에서 탭 전환 요청 시 사용 public func setTab(index: Int) { guard index < tabViewControllers.count else { return } + + if Tab(rawValue: index) == .coffee { + presentCoffeeWebView() + return + } + selectedIndex = index } /// 특정 인덱스의 네비게이션 컨트롤러를 반환 public func getNavController(at index: Int) -> UINavigationController? { guard index < tabViewControllers.count else { return nil } - return tabViewControllers[index] + return tabViewControllers[index] as? UINavigationController } /// 공용 다이얼로그(팝업)를 표시하는 함수 @@ -191,6 +200,14 @@ final class CustomTabBarContainerController: UITabBarController { present(alert, animated: true) } + /// 커피 웹뷰를 전체화면 모달로 표시 + private func presentCoffeeWebView() { + guard presentedViewController == nil else { return } + let coffeeVC = CoffeeWebViewController() + coffeeVC.modalPresentationStyle = .overFullScreen + present(coffeeVC, animated: true) + } + /// 로그인 화면으로 전환 private func navigateToLogin() { let loginVC = LoginViewController() @@ -207,12 +224,17 @@ final class CustomTabBarContainerController: UITabBarController { extension CustomTabBarContainerController: UITabBarControllerDelegate { func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { - guard let navController = viewController as? UINavigationController, - let index = tabViewControllers.firstIndex(of: navController), + guard let index = tabViewControllers.firstIndex(of: viewController), let selectedTab = Tab(rawValue: index) else { return true } + // 커피 탭: 전체화면 모달로 웹뷰 표시 + if selectedTab == .coffee { + presentCoffeeWebView() + return false + } + // 마이페이지와 지도는 로그인 필요 if (selectedTab == .map || selectedTab == .myPage), RealmService.shared.isAccessTokenPresent() == false { presentLoginAlert() @@ -225,19 +247,17 @@ extension CustomTabBarContainerController: UITabBarControllerDelegate { } // 같은 탭 다시 클릭 시 처리 - if index == selectedIndex { + if let navController = viewController as? UINavigationController, index == selectedIndex { switch selectedTab { case .home: - // 학식 탭: 오늘이 아니면 오늘로 이동 if let homeVC = navController.viewControllers.first as? HomeViewController { homeVC.resetToToday() } case .map: - // 지도 탭: 콘텐츠 리로드 if let mapVC = navController.viewControllers.first as? MainMapViewController { mapVC.reloadContent() } - case .myPage: + case .coffee, .myPage: break } } diff --git a/EATSSU/App/Sources/Utility/Literal/TextLiteral.swift b/EATSSU/App/Sources/Utility/Literal/TextLiteral.swift index 42b6567b..730a8a19 100644 --- a/EATSSU/App/Sources/Utility/Literal/TextLiteral.swift +++ b/EATSSU/App/Sources/Utility/Literal/TextLiteral.swift @@ -67,6 +67,9 @@ enum TextLiteral { /// "지도" static let map: String = "지도" + /// "나만아니면돼~" + static let coffee: String = "나만아니면돼~" + /// "마이" static let my: String = "마이" } @@ -576,6 +579,22 @@ enum TextLiteral { } } + // MARK: - Coffee + + enum Coffee { + /// "나가시겠어요?" + static let askLeave: String = "나가시겠어요?" + + /// "지금 나가면 진행 상황이\n저장되지 않습니다." + static let leaveWarning: String = "지금 나가면 진행 상황이\n저장되지 않습니다." + + /// "나가기" + static let leave: String = "나가기" + + /// "계속하기" + static let continueEvent: String = "계속하기" + } + // MARK: - Splash enum Splash { diff --git a/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee.imageset/Contents.json b/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee.imageset/Contents.json new file mode 100644 index 00000000..0409a2cd --- /dev/null +++ b/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "coffee.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee.imageset/coffee.png b/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee.imageset/coffee.png new file mode 100644 index 00000000..e3453770 Binary files /dev/null and b/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee.imageset/coffee.png differ diff --git a/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee_selected.imageset/Contents.json b/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee_selected.imageset/Contents.json new file mode 100644 index 00000000..f6f1fc80 --- /dev/null +++ b/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee_selected.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "coffee_selected.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee_selected.imageset/coffee_selected.png b/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee_selected.imageset/coffee_selected.png new file mode 100644 index 00000000..87447de4 Binary files /dev/null and b/EATSSUDesign/EATSSUDesign/Resources/Images.xcassets/coffee_selected.imageset/coffee_selected.png differ