-
Notifications
You must be signed in to change notification settings - Fork 0
Description
고민
- Prefetching을 통한 페이지네이션
- GCD
- Sticky header 구성
회고
-
페이지네이션
예전 웹 개발에서는 IntersectionObserving하여 감지하고 데이터 패칭을하는 방식 / 구현하는 방식에 있어서는 콘텐츠 사이즈를 계산해서 요청을 하는 방식 오프셋에 맞추어 호출하는 방식으로 으로 무한 스크롤링이라는 페이지 네이션을 주로 구현했다.
swift로 넘어와서 보니 콘텐츠 사이즈로 계산하는 기존의 방식과 더불어 Table / Collection의 DataSourcePrefetching 프로토콜을 통한 메서드를 활용하여 해당 indexPath의 값에 접근 전에 감지하여 데이터 패칭을 요청하는 방식으로 구현할 수 있었다.
자연스러운 UI를 위해서 Indicator 뷰를 활용하면 더 좋은 사용자 경험이 가능하도록 개선할 수 있다. 또한 RxDataSource를 쓴다면 더 편리하고 자연스러운 페이지네이션을 구성할 수 있을 거라 하니 또 도전해봐야겠다. -
GCD
👉🏻 동시성에 관한 정리
사용하면서 가장 크게 느낀 부분은 UI를 그릴 때의 main 쓰레드 동작과, 비동기적으로 동작을 구성하는 여러 API 호출 동시 호출과 같은 작업을 수행할 때 부분적으로 사용했었다. 정리를 하면서 느낀 건, OS 단에서 느끼게 되는 쓰레드의 개념을 확실하게 알고 이를 분산적으로 사용하는 방식에 대해서 기반적인 개념을 이해하는 것이 중요하다는 걸 알았다. Rx를 조금 배우면서는 완전이 같은 개념은 아니지만 스케쥴러를 통해서 옵션으로 이를 컨트롤하지만 확실하게 왜 사용할까 하는 부분에서 비동기적 / 동기적으로 수행하는 원리 + 운영체제적인 원리를 깊게 한 번 파볼 필요가 있다. -
Sticky header
기존의 동일 API를 사용해서 구현한 프로젝트가 있었다. 해당 프로젝트에서 구현한 디테일 뷰만 보여주는 형식이었고 현재 두 가지 프로젝트를 합치고 개선 완료
참고
👉🏻 Prefetching을 통한 페이지네이션
👉🏻 다른 방식 페이지네이션, UI 튀는 현상 컨트롤
👉🏻 Sticky header