iOS 개발일지
1019 새싹 73회차 정리 - DiffableDataSource 본문
iOS 앱 개발자 데뷔 과정 73회차
#1. DiffableDataSource
iOS 13 이상부터 사용 가능한 DiffableDataSource는 사용자 경험을 위한 애니메이션 구현이 쉽고, IndexPath도 사용하지 않는다.
참고) 기존 DataSource 방식
- Snapshot
snapshot은 현재 UI State에 대한 truth를 말하며, 자기 자신만의 버전을 가지고 있다.
snapshot을 통해 컬렉션뷰/테이블뷰에 데이터를 제공하고, snapshot을 통해 데이터의 변경 사항들을 확인한다.
apply() 메서드를 통해 IndexPath에 대한 연산, 섹션이나 셀 추가, 삭제, 이동 등을 수행하게 된다.
- Hashable (feat. UUID)
데이터 중복을 허용하고 싶다면, Model에 Hashable을 준수하는 고유 식별자가 있어야 한다.
모든 프로퍼티가 같을 경우에만 중복으로 인식하기 때문에, UUID를 통해 랜덤 아이디를 부여하는 것이다.
이 때 모델이 구조체가 아닌 클래스라면, 참조 형식이기 때문에 발생할 수 있는 데이터 중복을 해결하기 위해 추가적인 코드가 필요하다.
- DiffableDataSource 예시 코드
'SeSAC iOS 데뷔과정 2기' 카테고리의 다른 글
1024 새싹 76회차 정리 - RxCocoa 맛보기 (0) | 2022.10.25 |
---|---|
1020 새싹 74회차 정리 - MVVM API 통신 (0) | 2022.10.20 |
1018 새싹 72회차 정리 - Compositional Layout (0) | 2022.10.18 |
1017 새싹 71회차 정리 - Model Relationship (0) | 2022.10.17 |
1014 새싹 70회차 정리 - Shell/Git 명령어 (0) | 2022.10.14 |