Skip to content

feat: 신규 유저 및 기존 유저에 따라 메인화면 UI 분기 로직 추가해요#792

Merged
Do-hyun-Kim merged 2 commits into
developfrom
feat/#790-add-skeleton-ui
Jan 5, 2026
Merged

feat: 신규 유저 및 기존 유저에 따라 메인화면 UI 분기 로직 추가해요#792
Do-hyun-Kim merged 2 commits into
developfrom
feat/#790-add-skeleton-ui

Conversation

@Do-hyun-Kim

@Do-hyun-Kim Do-hyun-Kim commented Dec 23, 2025

Copy link
Copy Markdown
Collaborator

🔵PR을 올리기 전 아래 사항을 확인해주세요.

  • 구현한 로직과 기능이 올바르게 작동되는지 충분히 테스트해주세요.
  • 코드의 성능이나 메모리 효율성이 적절하게 고려되었는지, 불필요한 코드가 없는지 검토해주세요.
  • 이번 PR에서 구현된 주요 기능이나 해결된 문제에 대해 자세히 서술해주세요.
    (위 내용은 지워주세요)

😽개요

  • 크리스마스 가족 사진관 AI 이미지 업로드 기능 추가
  • 신규 사용자, 기존 사용자 판별하여 자정 시 메인화면 UI 변경하도록 로직 추가
  • disabled일 경우 카메라 버튼 UI 변경

🛠️작업 내용

  • 크리스마스 기념으로 AI 이미지 업로드 기능 추가(aiPostType : CHRISTMAS_2025)
  • 신규 사용자, 기존 사용자 판별하기 위해 KeychinWrapper, UserDefaults값을 사용해서 사용자 판별

신규 사용자, 기존 사용자 판별 로직

public final class FetchFirstInstallUseCase: FetchFirstInstallUseCaseProtocol {

    private let myRepositroy: MyRepositoryProtocol

    public init(myRepositroy: MyRepositoryProtocol) {
        self.myRepositroy = myRepositroy
    }

    public func execute() -> Bool {
        let hasInstalledBefore = myRepositroy.fetchFirstInstall() ?? false
        let hasCompletedOnboarding = myRepositroy.fetchIsFirstOnboarding() ?? false

        if !hasInstalledBefore {
            return true
        }

        if !hasCompletedOnboarding {
            myRepositroy.updateFirstInstall(true)
            return true
        }

        return false
    }
}
  • 기존 가입된 사용자는 Keychain에 아무런 값이 저장되어 있지 않기 때문에 isFirstOnboarding 값을 통해서 기존 사용자인 것을 판별했고, 신규 사용자는 Keychain 값을 통해서 판별하도록 했습니다.
  • 기존 사용자인데 앱을 삭제하게 될 경우에는 UserDefaults에 저장된 isFirstOnboarding 값이 사라지게 되기 때문에 이 경우에는 Keychain에 저장된 FirstInstall 값으로 판별해야 하므로 Keychain 값으로 판별하도록 했습니다.

🟡차후 계획 (Optional)

  • QueryParam 값에 .aiPostType: "CHRISTMAS_2025" 아래와 같이 크리스마스 테마를 고정으로 박아놨는데 추후에 parameter로 넘겨주도록 해야 할 것 같습니다 어제 빨리 배포해야할 것 같아서 그냥 박아놈
  • 신규 사용자일 경우에 Figma에 주어진 이미지를 사용하긴 했는데 이전에 채영님이 글자를 제거해야 한다 했었는데 깜빡하신 듯? 해서 일단 패스하고 배포했습니다. (나중에 요청해야 할 듯)

✅테스트 케이스

  • 신규 사용자일 경우 tutorialImageView 기존 사용자일 경우 contributorView가 뜨는지 확인해요
  • AI 이미지가 업로드되는지 확인해요

🙏🏻아래와 같이 PR을 리뷰해주세요.

  • PR 내용이 부족하다면 보충 요청해주세요.
  • 코드 스타일이 팀의 규칙에 맞게 작성되었는지, 일관성을 유지하고 있는지 확인해주세요.
  • 코드에 대한 문서화나 주석이 필요한 부분에 적절하게 작성되어 있는지 확인해주세요.
  • 구현된 로직이 효율적이고 올바르게 작성되었는지, 아키텍처를 잘 준수하고 있는지 검토해주세요.
  • 네이밍, 포매팅, 주석 등 코드의 일관성이 유지되고 있는지 확인해주세요.

- MainPostViewController tutorialImageView 추가 및 자정 및 신규 사용자에 따라서 UI 분기 처기
- TimerView 문구 수정
- BallonView midnight 타입 추가 및 분기 처리 로직 추가
- MainViewReactor 신규 사용자, 기존 사용자 or 자정에 따라서 Flag 값 설정 코드 추가
@Do-hyun-Kim Do-hyun-Kim requested a review from akrudal December 23, 2025 17:18
@Do-hyun-Kim Do-hyun-Kim self-assigned this Dec 23, 2025
@Do-hyun-Kim Do-hyun-Kim changed the title Feat/#790 add skeleton UI feat: 신규 유저 및 기존 유저에 따라 메인화면 UI 분기 로직 추가해요 Dec 24, 2025
@Do-hyun-Kim Do-hyun-Kim merged commit 4de4203 into develop Jan 5, 2026
1 check failed
@Do-hyun-Kim Do-hyun-Kim deleted the feat/#790-add-skeleton-ui branch January 5, 2026 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant