-
Notifications
You must be signed in to change notification settings - Fork 1
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
[1.0.3] - 페이지네이션 버그 수정 및 개선 #123
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
stealmh
approved these changes
Sep 17, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Closed
9 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
#️⃣연관된 이슈
📝작업 내용
--------------- 추가 사항 -----------------
SearchFeature
에DateFormat
캐싱 적용ContentDetail
에서 링크 삭제시 부모뷰에 반영이 안되는 문제 수정스크린샷 (선택)
ScreenRecording_09-16-2024.21-13-38_1.mov
💬리뷰 요구사항(선택)
PokitLoading
뷰의 생명주기와 연관이 있었습니다.페이지 증가 조회를 하면서 액션에 대한 애니메이션을 넣었었는데, 원래라면
LazyVStack
으로 인해PokitLoading
뷰가 소멸 생성을 반복 했어야 했지만 애니메이션 때문에 생명주기가 늦춰지면서,PokitLoading
뷰가 소멸이 안돼서onAppear
가 한번만 발생하게 문제였습니다.그래서 페이지 증가 조회에 대한 애니메이션을 전부 제거하였습니다.
저희 페이징 조회는 똑같은 size로만 조회를 해야하기 때문에, 0부터 현제 페이지 까지 순차적으로 조회를 해야했습니다.
물론 사용자가 목록에서 목록 아이템에 대한 수정, 추가, 삭제 시 해당 사항들을 반영하기 위해, 목록을 초기화 시키고 재조회 해도 되지만...
그렇게 하면 사용자가 스크롤한 위치를 잃어버리고, 안좋은 사용자 경험으로 이어지기 때문에... 이를 방지하고자,
아래와 같은 로직으로 페이징을 재조회 하는 방식을 택했습니다.
특히 @ITlearning 님께서 요모저모 노션에 적어주신
Concurrency
정말 많이 도움이 됐습니다..Concurrency
공부 그걸로 하고 있어요 ㅎㅎ (AsyncStream
에 대한 내용은 없지만)AsyncThrowingStream
을 사용하여 0부터 현재 페이지 까지의 조회 스트림을 만들어 줍니다.for
-in
loop
를 돌면서 스트림에 api가 반환해준 값을 순차적으로 넣습니다.for
-try
-await
-in
loop
를 사용하여 값을 꺼네옵니다.Util
단으로 빼거나Modifier
로 빼고 싶은데... 좀 더 고민해봐야 할 것 같아요...ㅎㅎclose 이슈번호