Rx

[RxDataSources] RxTableViewSectionedAnimatedDataSource

Phililip
728x90

안녕하세요.

 

저번 글에서는 RxDataSources를 간단하게 알아보는 시간을 가졌는데요.

 

애니메이션 처리가 필요하다면 RxTableViewSectionedAnimatedDataSource를 사용해야 한다고 마지막에 말했었죠??

 

이번에는 RxTableViewSectionedAnimatedDataSource를 써보는 시간을 가져볼게요.

 

(전체 코드는 여기를 참고해주세요 ^^)

 


RxDataSources(RxTableViewSectionedReloadDataSource)는 기본적으로 4가지 스텝으로 진행됩니다.

1. Item 구조체 생성
2. SectionModelType 프로토콜을 준수하는 Section 구조체 생성
3. dataSource 객체 생성
4. TableView(또는 CollectionView)에 dataSource 등록

 

 

RxTableViewSectionedAnimatedDataSource는 몇 가지 다른 점이 있습니다.

1. IdentifiableType, Equatable 프로토콜을 준수하는 Item 구조체 생성
2. AnimatableSectionModelType 프로토콜을 준수하는 Section 구조체 생성
3. dataSource 객체 생성 (AnimationConfiguration을 파라미터로 넘김)
4. TableView(또는 CollectionView)에 dataSource 등록

 

 

예제를 만들어볼게요ㅎㅎ

 

 

(전체적인 흐름과 구현 코드는 RxTableViewSectionedReloadDataSource와 RxTableViewSectionedAnimatedDataSource이 거의 비슷하기 때문에 이전 글을 보고 오시는 것을 추천드릴게요ㅎㅎ)

 

[RxDataSources] RxDataSources 맛보기

 

[RxDataSources] RxDataSources 맛보기

안녕하세요. 이번에는 RxDataSources에 대해 알아볼게요. (전체 코드는 여기를 참고해주세요 ^^) # RxDataSources란? 이름에서부터 알 수 있듯이, RxDataSources는 RxSwift 용 UITableView와 UICollectionView의 DataSources

phillip5094.tistory.com

 

 

 

## 예제

AnimatedData란 Item 구조체를 만들었어요.

 

 

 

IdentifiableType, Equatable 프로토콜을 준수하도록 구현해줄게요.

 

 

 

그다음, Section 정보를 가지고 있는 SectionOfAnimatedData란 구조체를 만들어줄게요.

(이때 AnimatableSectionModelType 프로토콜을 준수해야 합니다.)

 

 

 

그다음에는 RxTableViewSectionedAnimatedDataSource 인스턴스를 만들어서 tableView에 등록해줄게요.

 

이때 애니메이션이 어떻게 동작할지(insert, reload, delete)에 대해 설정할 수 있는 AnimationConfiguraiton을 파라미터로 함께 넘겨줘야 합니다.

 

 

 

구현 끝!!!!! 😁 😁 😁

 

 

 

 

RxTableViewSectionedAnimatedDataSource를 사용했을 때 애니메이션이 진짜 적용되었는지 보기 위해서, RxTableViewSectionedReloadDataSource 하고 동작을 비교해볼게요.

 

RxTableViewSectionedReloadDataSource RxTableViewSectionedAnimatedDataSource

 

 

 

차이점이 보이시나요??ㅎㅎㅎ

 

RxDataSource를 사용해보셨다면 Animation 적용도 쉽게 하실 수 있을 거예요ㅎㅎㅎ

 

 

전체 코드도 함께 첨부할게요. (전체 프로젝트는 여기를 참고해주세요.)

 

 

 

 

 

 

 

# 참고

- https://github.com/RxSwiftCommunity/RxDataSources

 

GitHub - RxSwiftCommunity/RxDataSources: UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates,

UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates, editing ...) - GitHub - RxSwiftCommunity/RxDataSources: UITableView and UICollectionView Data Sources for RxSw...

github.com

 

 


이번 글은 여기서 마무리.

 

 

 

반응형

'Rx' 카테고리의 다른 글

[RxDataSources] RxDataSources 맛보기  (0) 2022.11.06
[RxSwift 6.1] withUnretained, subscribe(with:onNext:etc)  (0) 2022.10.11
[ReactorKit] @Pulse  (0) 2022.09.30
[ReactorKit] ReactorKit 입문  (0) 2022.09.11