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

[Feat] #183 - 코스 발견에 pagination 적용 하였습니다. #190

Merged

Conversation

thingineeer
Copy link
Collaborator

@thingineeer thingineeer commented Sep 24, 2023

🌱 작업한 내용

  • ⭐️코스 발견의 데이터 받아오는 API 가 변경되는 것⭐️ 이 있었습니다.
    그에 맞게 라우터 수정과 Pagination 로직을 추가 했습니다.
  • PublicCourseRouter.getCourseData 에 parameter pageNo 추가
    저희 API를 보시면 디폴트가 pageNo = 1 로 수정 되었고 직접 추가를 해줘야하기 때문에 변경 하였습니다.
  • scrollViewDidScroll() 메서드 추가 ⭐️⭐️
  • viewWillAppear() 로직 추가

🌱 PR Point

  • 이해 안 되는 부분이 있을까봐 주석을 달아 놨습니다.
    코드 리뷰 후 정말 필요하다 싶은 것 빼고는 주석 지우고 머지 할 생각입니다.

  • Pagination 의 로직을 구현했는데 아래 블로그에 정리해놨습니다
    이해 안 될 수도 있는데 안된다면 따로 디스코드 요청 바랍니다!
    Pagination 정리

  • 요약
    courseList 의 전체 개수가 pageNo x 24 보다 작다면 데이터를 다 불러왔다고 생각하여 페이지네이션을 끝내는 로직을 구현 했습니다.
    24를 곱한 이유는 우리의 API 가 page 당 24개씩 불러오기 때문입니다.
    괜찮은 로직이 생각나면 리뷰 부탁드립니다.

📸 스크린샷

🕒 페이징 도입 전 🕓 페이징 도입 후
전 후

📮 관련 이슈

@thingineeer thingineeer added Add Feat 이외의 부수적인 코드 추가, 새로운 View 생성, 파일 추가 Fix 명진😼 labels Sep 24, 2023
@thingineeer thingineeer self-assigned this Sep 25, 2023
@@ -97,6 +102,22 @@ extension CourseDiscoveryVC {
self.searchButton.addTarget(self, action: #selector(pushToSearchVC), for: .touchUpInside)
self.uploadButton.addTarget(self, action: #selector(pushToDiscoveryVC), for: .touchUpInside)
}

private func setDataLoadIfNeeded() { /// 데이터를 받고 다른 뷰를 갔다가 와도 데이터가 유지되게끔 하기 위한 함수 입니다. (한번만 호출되면 되는 함수!)
Copy link
Collaborator

Choose a reason for hiding this comment

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

지금 이 로직대로 실행되면 다른 페이지에서 현재 뷰로 왔을 때
마지막으로 스크롤 했을 때의 데이터가 다 남아있는게 맞나요?!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

지금 이 로직대로 실행되면 다른 페이지에서 현재 뷰로 왔을 때 마지막으로 스크롤 했을 때의 데이터가 다 남아있는게 맞나요?!

네 맞습니다 그거 때문에 구현을 했는데
CRUD가 있을때 어떻게 할지 고민 해보겠습니다....

Copy link
Collaborator

@lee-yeonwoo lee-yeonwoo left a comment

Choose a reason for hiding this comment

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

...👍

@lee-yeonwoo lee-yeonwoo merged commit 6d0b6bf into Runnect:develop Oct 10, 2023
1 check passed
@thingineeer thingineeer deleted the #183---코스-발견-Pagination branch October 10, 2023 06:49
@thingineeer thingineeer changed the title [Feat] #183 - 코스 발견 pagination [Feat] #183 - 코스 발견에 pagination 적용 하였습니다. Oct 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Add Feat 이외의 부수적인 코드 추가, 새로운 View 생성, 파일 추가 Fix 명진😼
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feat] #183 - 코스 발견 Pagination
3 participants