Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
ecbffa1
refactor/#110: RegisterVC View와 PopUpImagesColletionView로 분리
zzangzzangguy Apr 11, 2025
fadb4d7
refactor/#110: gitignore 업데이트
zzangzzangguy Apr 11, 2025
5c0a2e4
refactor/#110: 임시저장
zzangzzangguy Apr 13, 2025
1854d5e
fix/#110: 맵뷰컨트롤러 주석및 로거 정리
zzangzzangguy Apr 14, 2025
293b3cc
refactor/#110: 주석및 로거 제거
zzangzzangguy Apr 14, 2025
ae89367
style/#110: Apply SwiftLint autocorrect
github-actions[bot] Apr 16, 2025
d665876
refactor/#109: MapViewController 클래스 선언부에서 MapUIHandling/MapInteracti…
zzangzzangguy Apr 16, 2025
393cd18
feat/#109: MapInteractionHandling 프로토콜 정의 추가
zzangzzangguy Apr 16, 2025
6296e47
feat/#109 : UIHandling 프로토콜 추가
zzangzzangguy Apr 16, 2025
8719640
feat/#109: FullScreenMapViewController override 구문 분리
zzangzzangguy Apr 18, 2025
5fa03b8
feat/#109: 개별마커별 사이즈 재설정
zzangzzangguy Apr 18, 2025
49be7b6
style/#109: Apply SwiftLint autocorrect
github-actions[bot] Apr 18, 2025
db1c784
style/#110: Apply SwiftLint autocorrect
github-actions[bot] Apr 16, 2025
57c1864
style/#110: Apply SwiftLint autocorrect
github-actions[bot] Apr 18, 2025
ff4f5b9
feat/#109 : UIHandling 프로토콜 추가
zzangzzangguy Apr 16, 2025
471f1a1
feat/#109: 개별마커별 사이즈 재설정
zzangzzangguy Apr 18, 2025
782d699
style/#109: Apply SwiftLint autocorrect
github-actions[bot] Apr 18, 2025
f84959b
fix/#109: 로딩인디케이터 로직 제거후 로딩상태 스테이트반영구문 제거
zzangzzangguy Apr 18, 2025
0e6b92a
style/#109: Apply SwiftLint autocorrect
github-actions[bot] Apr 18, 2025
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,4 @@ fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output
Poppool/Poppool/Infrastructure/*.mobileprovision
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

프로비저닝은 한번 설치되면 Xcode에 남으니 파일이랑 ignore도 지우셔도 될거같아요!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

제거되었습니다~

20 changes: 20 additions & 0 deletions Poppool/Poppool.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,11 @@
4EA9989D2D21C404009DC30B /* RxDataSources in Frameworks */ = {isa = PBXBuildFile; productRef = 4EA9989C2D21C404009DC30B /* RxDataSources */; };
4EAB809D2D3F78AA0041AF30 /* NMFMapViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAB809C2D3F78AA0041AF30 /* NMFMapViewDelegateProxy.swift */; };
4EAB809F2D3F8EF50041AF30 /* ViewportBounds.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAB809E2D3F8EF50041AF30 /* ViewportBounds.swift */; };
4EC63FB22DB2147C0053B12D /* MapUIHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EC63FB12DB2147C0053B12D /* MapUIHandling.swift */; };
4EC63FB72DB214840053B12D /* MapViewController+InteractionHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EC63FB42DB214840053B12D /* MapViewController+InteractionHandling.swift */; };
4EC63FB82DB214840053B12D /* MapViewController+UIHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EC63FB52DB214840053B12D /* MapViewController+UIHandling.swift */; };
4EC63FBA2DB21B930053B12D /* MapInteractionHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EC63FB92DB21B930053B12D /* MapInteractionHandling.swift */; };
4EC63FBC2DB222F60053B12D /* MarkerStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EC63FBB2DB222F60053B12D /* MarkerStyling.swift */; };
4EDDEFB42D2D285900CFAFA5 /* DateTimePickerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EDDEFB32D2D285900CFAFA5 /* DateTimePickerManager.swift */; };
4EDE57032D5E70650014D924 /* LocationPermissionBottomSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EDE57022D5E70650014D924 /* LocationPermissionBottomSheet.swift */; };
4EE360FD2D91876300D2441D /* NMapsMap in Frameworks */ = {isa = PBXBuildFile; productRef = 4EE360FC2D91876300D2441D /* NMapsMap */; };
Expand Down Expand Up @@ -888,6 +893,11 @@
4EA998992D21C2FC009DC30B /* StoreListSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreListSection.swift; sourceTree = "<group>"; };
4EAB809C2D3F78AA0041AF30 /* NMFMapViewDelegateProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NMFMapViewDelegateProxy.swift; sourceTree = "<group>"; };
4EAB809E2D3F8EF50041AF30 /* ViewportBounds.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewportBounds.swift; sourceTree = "<group>"; };
4EC63FB12DB2147C0053B12D /* MapUIHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapUIHandling.swift; sourceTree = "<group>"; };
4EC63FB42DB214840053B12D /* MapViewController+InteractionHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MapViewController+InteractionHandling.swift"; sourceTree = "<group>"; };
4EC63FB52DB214840053B12D /* MapViewController+UIHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MapViewController+UIHandling.swift"; sourceTree = "<group>"; };
4EC63FB92DB21B930053B12D /* MapInteractionHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapInteractionHandling.swift; sourceTree = "<group>"; };
4EC63FBB2DB222F60053B12D /* MarkerStyling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkerStyling.swift; sourceTree = "<group>"; };
4EDDEFB32D2D285900CFAFA5 /* DateTimePickerManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateTimePickerManager.swift; sourceTree = "<group>"; };
4EDE57022D5E70650014D924 /* LocationPermissionBottomSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationPermissionBottomSheet.swift; sourceTree = "<group>"; };
4EE5A3D22D40E4A600A2469A /* MapGuideReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapGuideReactor.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2764,6 +2774,11 @@
4E685EC72D12CEB6001EF91C /* MapMarker.swift */,
4E685EC82D12CEB6001EF91C /* MapReactor.swift */,
4E685EC92D12CEB6001EF91C /* MapSearchInput.swift */,
4EC63FB42DB214840053B12D /* MapViewController+InteractionHandling.swift */,
4EC63FBB2DB222F60053B12D /* MarkerStyling.swift */,
4EC63FB52DB214840053B12D /* MapViewController+UIHandling.swift */,
4EC63FB92DB21B930053B12D /* MapInteractionHandling.swift */,
4EC63FB12DB2147C0053B12D /* MapUIHandling.swift */,
4E685ECB2D12CEB6001EF91C /* MapView.swift */,
4E685ECC2D12CEB6001EF91C /* MapViewController.swift */,
);
Expand Down Expand Up @@ -3115,6 +3130,7 @@
083C86202D087445003F441C /* GetPopUpDetailResponse.swift in Sources */,
4EA2C9432D424DF900F4D97C /* FindDirectionEndPoint.swift in Sources */,
081898FD2D33D9ED0067BF01 /* GetBlockUserListResponse.swift in Sources */,
4EC63FB22DB2147C0053B12D /* MapUIHandling.swift in Sources */,
083A25B22CF362670099B58E /* NetworkError.swift in Sources */,
081899522D363E640067BF01 /* BookMarkPopUpViewTypeModalController.swift in Sources */,
BD9103692CF6149D00BBCCAE /* HomeAPIRepository.swift in Sources */,
Expand Down Expand Up @@ -3241,6 +3257,7 @@
082197B22D4E4E200054094A /* NormalCommentEditController.swift in Sources */,
081899502D363E5C0067BF01 /* BookMarkPopUpViewTypeModalView.swift in Sources */,
081899452D35FEA10067BF01 /* RecentPopUpSection.swift in Sources */,
4EC63FBA2DB21B930053B12D /* MapInteractionHandling.swift in Sources */,
083A259A2CF362090099B58E /* SectionDecorationItem.swift in Sources */,
BD9103892CF614A900BBCCAE /* PopUpStoreResponse.swift in Sources */,
086F89C72D1E348400CA4FC9 /* CommentUserInfoReactor.swift in Sources */,
Expand Down Expand Up @@ -3271,6 +3288,8 @@
BD9103642CF6149D00BBCCAE /* GetHomeInfoResponseDTO.swift in Sources */,
081898E22D338FA40067BF01 /* ListCountButtonSectionCell.swift in Sources */,
08A2E47D2D1B06B000102313 /* ImageDetailReactor.swift in Sources */,
4EC63FB72DB214840053B12D /* MapViewController+InteractionHandling.swift in Sources */,
4EC63FB82DB214840053B12D /* MapViewController+UIHandling.swift in Sources */,
08B191B42CF609260057BC04 /* KakaoLoginService.swift in Sources */,
BDCA41C12CF35AC0005EECF6 /* AppDelegate.swift in Sources */,
083C863A2D0C7F0A003F441C /* CommentSelectedReactor.swift in Sources */,
Expand Down Expand Up @@ -3346,6 +3365,7 @@
081898B02D2CFCA40067BF01 /* GetWithdrawlListResponse.swift in Sources */,
083C86692D0ECB47003F441C /* InstaGuideSection.swift in Sources */,
081899392D35F11F0067BF01 /* MyPageRecentView.swift in Sources */,
4EC63FBC2DB222F60053B12D /* MarkerStyling.swift in Sources */,
088DE24C2D12F33B0030FA9E /* DetailInfoSectionCell.swift in Sources */,
083C86762D0EE2CF003F441C /* PostCommentRequestDTO.swift in Sources */,
083C861E2D08737F003F441C /* GetPopUpDetailResponseDTO.swift in Sources */,
Expand Down
6 changes: 6 additions & 0 deletions Poppool/Poppool/Domain/Entities/MapPopUpStore.swift
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

테스트 했던거 그대로 남아있어요!!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DTO 제거 #117 에서 수정되었습니다

Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import Foundation
import NMapsMap

// TODO: 프레젠테이션

// MARK: - ddd

// FIXME: 엔티티
struct MapPopUpStore: Equatable {
let id: Int64
let category: String
Expand All @@ -15,6 +20,7 @@ struct MapPopUpStore: Equatable {
let markerSnippet: String
let mainImageUrl: String?

// TODO:
var nmgCoordinate: NMGLatLng {
NMGLatLng(lat: latitude, lng: longitude)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
//
// MapDirectionRepository.swift
// Poppool
//
// Created by 김기현 on 1/23/25.
//

import Foundation
import RxSwift

Expand Down
2 changes: 1 addition & 1 deletion Poppool/Poppool/Domain/UseCase/MapUseCase.swift
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class DefaultMapUseCase: MapUseCase {
northEastLon: northEastLon,
southWestLat: southWestLat,
southWestLon: southWestLon,
categories: categories // ← 그대로 넘긴다
categories: categories
)
.map { $0.map { $0.toDomain() } }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,6 @@ final class AdminBottomSheetView: UIView {

// MARK: - Public Methods
func updateContentVisibility(isCategorySelected: Bool) {
Logger.log(message: "높이 변경 시작: \(isCategorySelected ? "카테고리" : "상태값")", category: .debug)

let newHeight: CGFloat = isCategorySelected ? 200 : 160

Expand All @@ -220,6 +219,5 @@ final class AdminBottomSheetView: UIView {
setNeedsLayout()
layoutIfNeeded()

Logger.log(message: "높이 변경 완료", category: .debug)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -282,15 +282,6 @@ extension PopUpStoreRegisterViewController {
self.mainView.timeButton.setTitle("\(startString) ~ \(endString)", for: .normal)
}

private func showLoadingIndicator() {
// 로딩 인디케이터 표시 로직 구현
// 예: Activity Indicator 또는 커스텀 로딩 뷰 표시
}

private func hideLoadingIndicator() {
// 로딩 인디케이터 숨김 로직 구현
}

private func showSuccessAlert(isUpdate: Bool) {
let message = isUpdate ? "팝업스토어가 성공적으로 수정되었습니다." : "팝업스토어가 성공적으로 등록되었습니다."
let alert = UIAlertController(
Expand Down Expand Up @@ -322,7 +313,6 @@ extension PopUpStoreRegisterViewController: View {

func bind(reactor: Reactor) {
// MARK: - Input (View -> Reactor)
// 텍스트 필드 바인딩
self.mainView.nameField.rx.text.orEmpty
.distinctUntilChanged()
.map { Reactor.Action.updateName($0) }
Expand Down Expand Up @@ -372,18 +362,6 @@ extension PopUpStoreRegisterViewController: View {
})
.disposed(by: self.disposeBag)

// 로딩 상태
reactor.state.map { $0.isLoading }
.distinctUntilChanged()
.bind(onNext: { [weak self] isLoading in
if isLoading {
self?.showLoadingIndicator()
} else {
self?.hideLoadingIndicator()
}
})
.disposed(by: self.disposeBag)

// 에러 메시지
reactor.state.map { $0.errorMessage }
.distinctUntilChanged()
Expand Down
5 changes: 0 additions & 5 deletions Poppool/Poppool/Presentation/Scene/Admin/AdminStoreCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,10 @@ final class AdminStoreCell: UITableViewCell {

// MARK: - Configure
func configure(with store: GetAdminPopUpStoreListResponseDTO.PopUpStore) {
Logger.log(message: "셀 데이터 바인딩: \(store)", category: .debug)

titleLabel.text = store.name
categoryLabel.text = store.categoryName
statusChip.text = "운영"

// mainImageUrl에서 baseURL 부분 제거
let imagePath = store.mainImageUrl.replacingOccurrences(of: KeyPath.popPoolS3BaseURL, with: "")
Logger.log(message: "이미지 경로: \(imagePath)", category: .debug)
storeImageView.setPPImage(path: imagePath)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ class FullScreenMapViewController: MapViewController {
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
// use full‑screen styler for marker appearance
self.markerStyler = FullScreenMarkerStyler()
setupFullScreenUI()
setupNavigation()
// configureInitialMapPosition()
Expand Down Expand Up @@ -107,20 +109,17 @@ class FullScreenMapViewController: MapViewController {
mainView.mapView.moveCamera(cameraUpdate)

if let existingMarker = initialMarker {
// 기존 마커가 맵뷰에 설정되어 있지 않으면 설정
if existingMarker.mapView == nil {
existingMarker.mapView = mainView.mapView
}

// 명시적으로 TapMarker 스타일 적용 (selected 매개변수는 무시됨)
existingMarker.iconImage = NMFOverlayImage(name: "TapMarker")
existingMarker.width = 44
existingMarker.height = 44
existingMarker.anchor = CGPoint(x: 0.5, y: 1.0)

currentMarker = existingMarker
} else {
// 새 마커 생성 시에도 TapMarker 적용
let marker = NMFMarker()
marker.position = position
marker.iconImage = NMFOverlayImage(name: "TapMarker")
Expand Down Expand Up @@ -158,65 +157,6 @@ class FullScreenMapViewController: MapViewController {
.disposed(by: disposeBag)
}

// 마커 스타일 업데이트 함수 - 항상 TapMarker로만 설정하도록 수정
private func fullScreenUpdateMarkerStyle(marker: NMFMarker, selected: Bool) {
// 선택 여부와 상관없이 항상 TapMarker
marker.width = 44
marker.height = 44
marker.iconImage = NMFOverlayImage(name: "TapMarker")
marker.anchor = CGPoint(x: 0.5, y: 1.0)
}

override func updateMarkerStyle(marker: NMFMarker, selected: Bool, isCluster: Bool, count: Int = 1, regionName: String = "") {
// 풀스크린 모드에서는 항상 TapMarker 스타일 적용
if isFullScreenMode && markerLocked {
marker.width = 44
marker.height = 44
marker.iconImage = NMFOverlayImage(name: "TapMarker")
marker.anchor = CGPoint(x: 0.5, y: 1.0)

if count > 1 {
marker.captionText = "\(count)"
} else {
marker.captionText = ""
}
return
}

super.updateMarkerStyle(marker: marker, selected: selected, isCluster: isCluster, count: count, regionName: regionName)
}

override func handleSingleStoreTap(_ marker: NMFMarker, store: MapPopUpStore) -> Bool {
isMovingToMarker = true
markerLocked = true

if let previousMarker = currentMarker, previousMarker != marker {
fullScreenUpdateMarkerStyle(marker: previousMarker, selected: false)
}

marker.iconImage = NMFOverlayImage(name: "TapMarker")
marker.width = 44
marker.height = 44
fullScreenUpdateMarkerStyle(marker: marker, selected: true)
currentMarker = marker

currentCarouselStores = [store]
carouselView.updateCards([store])
carouselView.isHidden = false
mainView.setStoreCardHidden(false, animated: true)

let cameraUpdate = NMFCameraUpdate(scrollTo: marker.position, zoomTo: 15.0)
cameraUpdate.animation = .easeIn
cameraUpdate.animationDuration = 0.3
mainView.mapView.moveCamera(cameraUpdate)

DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak self] in
self?.isMovingToMarker = false
}

return true
}

// 맵뷰 탭 처리 오버라이드
override func mapView(_ mapView: NMFMapView, didTapMap latlng: NMGLatLng, point: CGPoint) {
return
Expand All @@ -238,12 +178,4 @@ class FullScreenMapViewController: MapViewController {
}
super.mapView(mapView, cameraIsChangingByReason: reason)
}

override func handleRegionalClusterTap(_ marker: NMFMarker, clusterData: ClusterMarkerData) -> Bool {
return false
}

override func handleMicroClusterTap(_ marker: NMFMarker, storeArray: [MapPopUpStore]) -> Bool {
return false
}
}
Loading