WWDC 2020 | Advanced in diffable data sources

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>



사용 예

“WWDC 2020 | Advanced in diffable data sources”의 1개의 생각

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중