Skip to content

fix: 버그 수정 및 UX 개선 6종 모음집#78

Merged
giljihun merged 7 commits intodevelopfrom
bugfix/-버그퇴치종합병원
Feb 10, 2026

Hidden character warning

The head ref may contain hidden characters: "bugfix/-\ubc84\uadf8\ud1f4\uce58\uc885\ud569\ubcd1\uc6d0"
Merged

fix: 버그 수정 및 UX 개선 6종 모음집#78
giljihun merged 7 commits intodevelopfrom
bugfix/-버그퇴치종합병원

Conversation

@giljihun
Copy link
Member

🎯 PR 내용

<해결 이슈>

  1. [공방] 상단 하얀 그라데이션 제거
  2. [공방] 템플릿 프리뷰 -> 백스와이프 -> 탭등장 버그 수정
  3. [뭉치] 뭉치 완성뷰 -> 보관함 네비게이팅 수정 (현재 사라진 뭉치보관함뷰로 감, 보관함/뭉치탭으로)
  4. [홈] 메인 뭉치 바꿀 때 키링이 하나도 걸려있지 않은 뭉치로 바꾸면 무한로딩 발생
  5. [뭉치] 이미지 저장 투명
  6. [뭉치] 대표뭉치인 녀석을 키링 수정하고 홈가면 화면 리로드가 안됨.

1. 탭바 스와이프 백 페이드인 시스템

스와이프 백 제스처 진행도에 따라 탭바가 서서히 나타나는 기능

  Core/Navigation/TabBar/
  ├── TabBarManager.swift         # show/hide/setAlpha API
  ├── TabBarSwipeObserver.swift   # 제스처 진행도 감지
  └── UIViewController+Find.swift # VC 탐색 유틸

원래는 그냥 show(), hide()만 있었는데 고급스렁워짐

동작 흐름

// 1. hide() 호출 시 스와이프 옵저버 자동 연결
TabBarManager.hide()

// 2. 스와이프 진행도(0~1) → 탭바 alpha 실시간 반영
case .changed:
    TabBarManager.setAlpha(progress)

// 3. 완료 판정: 50% 이상 or 속도 500pt/s 이상
case .ended:
    if progress > 0.5 || velocity > 500 {
        TabBarManager.show()
    }

이게 사실 UIKit아니면 구현 불가라 복잡한데 시간되실때
주석 한 번 보면서 따라가보셔도될듯!
이건 나중에 따로 정리하고 레포에 정리도 해놓고 싶네요.

2. 홈 화면 뭉치 버그 수정

1. 빈뭉치 무한로딩

  • 원인: 키링 0개일 때 onChange(of: visibleKeyringCount)가 트리거 안됨
  • 해결: onAppear에서 빈 배열 체크 후 즉시 완료 콜백
.onAppear {
	if keyringDataList.isEmpty {
		onAllKeyringsReady?()
	}
}

2.리프레시 안됨 (키링 편집 후)

이건, 뭐냐면요.
메인뭉치인 놈을 뭉치 수정하고 홈와도 리로드가 안되던 문제입니다. (꽤나 크리티칼했다.)

  • 원인: lastLoadedBundleId 캐시로 인해 재로드 스킵
  • 해결: needsRefresh 플래그로 캐시 무효화
// 편집 저장 시
HomeViewModel.needsRefresh = true

// 홈 로드 시
if Self.needsRefresh {
    lastLoadedBundleId = nil  // 캐시 무효화
}

이외 작업은 더 간단하여 스킵합니다.

📱 스크린샷 (UI 변경 시)

ScreenRecording_02-11-2026.01-35-01_1.1.1.mp4

스와이프

뭉치 투명저장

뭉치 투명 저장

-.MP4

빈 뭉치 귀멸의칼날무한성로딩 해결

아오 힘들어

🔗 관련 이슈

✅ 체크리스트

  • 빌드 성공
  • 테스트 완료
  • Self-review 완료

크림앱처럼 스와이프 백 시 탭바가 서서히 나타나는 기능 구현

[구조 변경]
- TabBarManager 3개 파일로 분리
- TabBarManager.swift: show/hide/setAlpha API
- TabBarSwipeObserver.swift: 제스처 진행도 감지
- UIViewController+Find.swift: VC 탐색 유틸

[동작 방식]
- hide() 호출 시 스와이프 제스처 옵저버 자동 연결
- 스와이프 진행도(0~1) → 탭바 alpha 실시간 반영
- 완료 판정: 50% 이상 or 속도 500pt/s 이상

[버그 수정]
- WorkshopView onAppear에서 show() 제거
→ 스와이프 중 탭바 즉시 등장 버그 해결
- 디테일, 완성뷰 둘다 적용
- HomeViewModel에 needsRefresh 플래그 추가
- 키링 편집 저장 시 플래그 설정 (saveBundleChanges)
- 대표뭉치 변경 시 플래그 설정 (updateBundleMainStatus)
- 첫 뭉치 생성(isMain) 시 플래그 설정 (createBundle)
- loadMainBundle에서 플래그 확인 후 캐시 무효화
@giljihun giljihun requested a review from jini-coding February 10, 2026 17:39
@giljihun giljihun self-assigned this Feb 10, 2026
@giljihun giljihun linked an issue Feb 10, 2026 that may be closed by this pull request
@giljihun giljihun merged commit 43fc415 into develop Feb 10, 2026
@giljihun giljihun deleted the bugfix/-버그퇴치종합병원 branch February 10, 2026 17:47
Copy link
Member

@jini-coding jini-coding left a comment

Choose a reason for hiding this comment

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

우리팀의 명의👍


import UIKit

final class TabBarSwipeObserver: NSObject {
Copy link
Member

Choose a reason for hiding this comment

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

탭바 스와이프 정로를 감지할 수 있는 건 첨 알았네요...
진짜 아직까지도 UIKit이 이것저것 커스텀하기엔 좋은듯...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bugfix: QA퇴치종합병원

2 participants