Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

iOS 개발일지

1019 새싹 73회차 정리 - DiffableDataSource 본문

SeSAC iOS 데뷔과정 2기

1019 새싹 73회차 정리 - DiffableDataSource

Lia's iOS 2022. 10. 20. 01:06
iOS 앱 개발자 데뷔 과정 73회차

 

 

 

 

#1. DiffableDataSource

iOS 13 이상부터 사용 가능한 DiffableDataSource는 사용자 경험을 위한 애니메이션 구현이 쉽고, IndexPath도 사용하지 않는다.

 

참고) 기존 DataSource 방식

Advances in UI Data Sources (WWDC19)

 

Advances in UI Data Sources (WWDC19)

 


 

- Snapshot

snapshot은 현재 UI State에 대한 truth를 말하며, 자기 자신만의 버전을 가지고 있다.

snapshot을 통해 컬렉션뷰/테이블뷰에 데이터를 제공하고, snapshot을 통해 데이터의 변경 사항들을 확인한다.

apply() 메서드를 통해 IndexPath에 대한 연산, 섹션이나 셀 추가, 삭제, 이동 등을 수행하게 된다.

 

Advances in UI Data Sources (WWDC19)

 


 

- Hashable (feat. UUID)

데이터 중복을 허용하고 싶다면, Model에 Hashable을 준수하는 고유 식별자가 있어야 한다.

Struct

모든 프로퍼티가 같을 경우에만 중복으로 인식하기 때문에, UUID를 통해 랜덤 아이디를 부여하는 것이다.

이 때 모델이 구조체가 아닌 클래스라면, 참조 형식이기 때문에 발생할 수 있는 데이터 중복을 해결하기 위해 추가적인 코드가 필요하다.

Class

 


 

- DiffableDataSource 예시 코드

 

Layout / DataSource

 

SearchBar

 

didSelectItemAt - Alert