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

[hotfix] 마이페이지 / 로딩 프로그레스바 추가 #290

Merged
merged 2 commits into from
May 10, 2024

Conversation

sxunea
Copy link
Contributor

@sxunea sxunea commented May 6, 2024

📝 Work Description

  • 마이페이지 로딩 프로그레스바 추가

📣 To Reviewers

로딩 프로그레스바 추가는 간단했는데 추가하고 나니 애니메이션이 제대로 동작하지 않았습니다. 추측하는 이유는 프로그레스 바 상태를 변경(보여주고, 숨기고) UI 스레드에서 처리되는데 코드의 실행으로 인한 변경은 즉각적이지만, 실제로 UI가 갱신되어 사용자에게 보여지기까지는 아주 약간의 시간이 필요해서인것 같아요. 그 과정에서 애니메이션을 보여주는 코드와 경쟁이 일어나지 않았나 싶습니다.

일단은 0.1초의 딜레이를 주어서 해결했습니다 ! 다른 해결방법 후보군으로는

  • 로딩 프로그레스바의 가시성을 stateflow로 관찰해서 해당 상태가 show이면 애니메이션 시작하게
  • async, await 로 순서 보장

이렇게 두가지를 생각해봤는데 아무래도 딜레이 한줄이 제일 코드가 간단하긴 해서 해당 방식으로 해결해보았습니다 ! 그치만 0.1초이긴 해도 강제적으로 딜레이를 주는게 좋은 방법은 아닌 듯 하여 혹시 다른 해결 방법 떠오르면 의견 편하게 부탁드려용 😽

@sxunea sxunea added hotfix 🚨 배포된 버전에 이슈 발생 시, 긴급하게 수정 작업 혜선 🐱 labels May 6, 2024
@sxunea sxunea requested a review from leeeha May 6, 2024 07:24
@sxunea sxunea self-assigned this May 6, 2024
is UiState.Loading -> {
showLoadingProgressBar()
}

else -> {}
Copy link
Member

@leeeha leeeha May 6, 2024

Choose a reason for hiding this comment

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

애니메이션 쪽 코드를 완전히 이해하지는 못했지만 ,, 😂
현재는 스크롤에 따라 애니메이션을 실행시키는 함수가 getUserState Success 블록에 종속되어 있는 거 같더라구요!
이 둘의 의존성을 끊어내고 애니메이션을 구현하는 방법은 없을까 라는 생각이 들었습니다!

getUser 서버 통신의 응답값은 데이터 스토어에 저장되니까 이를 이용해서
getUserState 결과와 별개로 스크롤 리스너를 정의해두면 어떤 결과가 나올지 궁금했어요..!

애니메이션 코드가 getUserState에 종속되지 않으면, 데이터 로딩 상태와 무관하게 애니메이션은 잘 실행되지 않을까 싶은?!
대신에 getUser 서버 통신에 실패하면 최신 유저 데이터가 아닌 데이터스토어에 저장된 예전 데이터를 불러온다는 것은 단점인 거 같아요. 서버통신 실패 시 어떻게 처리할지 고민이 필요할 거 같습니다!

@leeeha
Copy link
Member

leeeha commented May 7, 2024

@sxunea delay 말고 다른 방법으로 개선하는 데 시간이 오래 걸릴 거 같으면 우선 현재 방식으로 main 브랜치에 머지하고 배포할까요??
이후 feature 브랜치 파서 리팩토링 하는 게 좋을 거 같습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotfix 🚨 배포된 버전에 이슈 발생 시, 긴급하게 수정 작업 혜선 🐱
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants