Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Redesign] ReviewVC #106

Open
wants to merge 11 commits into
base: Redesign/101-TodayVC
Choose a base branch
from
Open

Conversation

Chaeho-Min
Copy link
Member

@Chaeho-Min Chaeho-Min commented Feb 11, 2023

개요

작업내용

  • reviewEmoji 에셋 추가
  • Emoji enum 케이스를 success, tried, fail 세가지로 변경
  • 이전에 저장된 챌린지들을 새 버전에 맞게 업데이트하는 로직 추가
    • 이전 케이스들(.red, .green, ...)이 모두 success, tried, fail 세 가지로 표현되도록 변환
  • 새 디자인 적용
  • 로컬라이제이션
작업 전 작업 후

리뷰포인트

  • 이제 평가가 성공, 시도, 실패 3가지로 이루어지면서 이전의 6가지 케이스가 필요없어져서 삭제했습니다.

    enum Emoji: String, Codable {
      case success
      case tried
      case fail
      case none
    }
  • 앱 업데이트 후 최초 실행시 AppDelegate에서 이전 챌린지들 패치를 진행합니다.

    if !UserDefaults.isChallengesUpdated {
        CoreDataManager.shared.updateLegacyChallenges()
        UserDefaults.isChallengesUpdated = true
    }
    • updateLegacyChallenges() 설명

      • 코어데이터에 emoji는 String으로 저장되는 것을 이용하여 저장된 emoji가 예전 케이스들인 "red", "yellow"... 일 때 현재 케이스 3가지(.success, .tried, .fail)중 하나로 변환한 후 updateChallenge()로 챌린지를 업데이트 했습니다.
      • .red는 .success로, .yellow ~ .blue는 .tried로, .purple은 .fail로 변환되도록 했습니다.
      func updateLegacyChallenges() {
          let fetchResults = fetchChallenges()
          for result in fetchResults {
              switch result.emoji {
              case "red": // Emoji(rawValue:)로 찾을 수 없는 예전 케이스
                  let challenge = Challenge(
                      id: result.id,
                      date: result.date,
                      content: result.content,
                      emoji: .success // emoji 변환
                  )
                  updateChallenge(challenge) // 챌린지 업데이트
              case "yellow", "green", "skyblue", "blue":
                  let challenge = Challenge(
                      id: result.id,
                      date: result.date,
                      content: result.content,
                      emoji: .tried
                  )
                  updateChallenge(challenge)
              case "purple":
                  let challenge = Challenge(
                      id: result.id,
                      date: result.date,
                      content: result.content,
                      emoji: .fail
                  )
                  updateChallenge(challenge)
              default:
                  break
              }
          }
      }
      업데이트 전(develop 브랜치) 업데이트 후

기타

red와 purple을 제외한 나머지를 모두 .tried로 변환할 경우 .tried가 너무 많아질거 같은데 red, yellow를 success로, green, skyblue를 tried로, 나머디 두개를 fail로 변환하는게 더 좋을까요?
일단 제일 웃음과 제일 울음을 제외한 것들은 모두 tried로 변환되는게 더 적절해보여서 이렇게 했습니다

@Chaeho-Min Chaeho-Min self-assigned this Feb 11, 2023
@Chaeho-Min Chaeho-Min linked an issue Feb 11, 2023 that may be closed by this pull request
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.

리디자인 - ReviewVC
1 participant