[refactor] 마이페이지 / 로딩프로그레스바 - 애니메이션 간의 실행순서 보장 로직 개선 #298
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📝 Work Description
문제 상황은 저번 PR을 참고해주세요 !
저때 delay를 통해 100ms동안 강제로 기다리게해
로딩프로그레스바 비가시화 -> 데이터 불러와 애니메이션 시작
이라는 순서를 보장하게 해줬는데, delay는 UI스레드 자체를 블로킹하므로 성능을 저하시킨다는 단점이 여전히 존재한다고 느껴서 다른 방법으로 문제를 해결해 개선했습니다.✅ 개선 사항
view 클래스의 post함수를 통해서 블로킹없이 실행 순서를 보장시켜주었습니다.
view.post(runnable)
은 핸들러에 연결된 메시지큐에 runnable객체를 넣어서 전달해주는 방식이기때문에 실행코드들이 메시지 큐에 추가되고, 선입선출됩니다. 따라서 현재 수행 중인 다른 UI 업데이트(여기서는 progress bar의 invisible로의 변경)가 완료되고 User 데이터를 활용한 UI업데이트 로직(애니메이션)이 실행되는 순서가 보장되기 때문에 기존의 문제가 해결되고, delay를 사용하지 않음으로 블로킹 또한 없도록 개선해주었어요 !