https://developer.apple.com/videos/play/wwdc2020/10045
iOS 14에서 Diffable data source가 어떻게 발전되었는지에 대한 세션.


iOS 14 ~ 부터
접을 수 있는 Outline을 UICollectionView로
구현할 수 있다.

UICollectionView에서 UITableView와 같은 디자인을 만들 수 있다.
Diffable data source (iOS 13)
UI State를 단순화
– Snapshot data type으로 가능
– Snapshot data type: unique section, item identifier로 전체 UI state 를 캡슐화한다
– 새로운 CollctionView를 만든다 = 새로운 snapshot을 만들고, Data source를 적용시킨다
애니메이션의 자동화
No more batch updates
iOS 14부터 추가되는 Diffable data source의 기능 두 가지
– Section Snapshots
– Recording Support
Section Snapshots (iOS14)
Section snapshots은 하나의 Section마다의 data를 캡슐화시킨다.
– 이유
1) 데이터 소스를 섹션 크기의 청크로 더 쉽게 합성할 수 있다
2) Hierachical data (계층 구조 데이터)의 모델링을 할 수 있다 (=Outline style UI를 구현할 수 있다)



– Emoji Explorer 의 3가지 Section은 모두 3가지 Section Snapshot으로 구현되었다.

– 새로 추가된 Section snapshots 관련 API
func append(_ items: [Item], to parent: Item? = nil)
– parent : optional parameter, 계층 구조를 구성할 때 필요하다.

사용 예) Section snapshots 을 새로 추가하고 적용

사용 예) 계층 구조로 된 SectionSnapshots


계층구조로 구성된 Section에서 사용할 수 있는 메소드

계층구조로 된 Section이 확장될때 일어나는 상태 변화
1) 유저에 의해서 UI 확장/축소
2) 확장/축소의 알림
3) lazy-loading
<NEW, iOS 14 ~>

Recording Support (iOS14)
Automatic snapshot updates
Transactions
RecodingHandler
– 퍼포먼스를 위해서 사용자에 의한 UI 변경은 lazy하게 발생된다.
– 새로운 시각적인 변경을 바로 결정할 수 있도록 user-initiated recordering을 App은 알고 있어야한다. 이걸 해주는 것이 바로 RecodingHandler.

NSDiffableDataSourceTransaction<Section, Item> / NSDiffableDataSourceSectionTransaction<Section, Item>

사용 예

[…] Data Source (iOS 13에서 등장)📺 WWDC 2020 | Advanced in diffable data sourcesSnapshot data type을 추가하여 UI state를 아주 간편하게 관리할 수 있는 […]
좋아요좋아요