개발하는 동글 :]

Section 마다 다른 Cell을 사용하는 TableView를 편리하게 사용하고자 한 시도! 본문

카테고리 없음

Section 마다 다른 Cell을 사용하는 TableView를 편리하게 사용하고자 한 시도!

동글하다 2024. 7. 15. 20:29

사이드 프로젝트를 진행하며 하나의 TableView에 Section마다 사용하는 Cell이 달라 관리하기 어렵다는 점과 유지 보수 및 확장 및 수정이 편리한 코드를 만들고 싶어 시도한 코드이다.!

 

1. CellInputable, CellOutputable, Cellable

- 우선 해당 프로젝트는 Input Output 패턴을 사용중이라 기존의 프로토콜을 활용하여 Cellable protocol을 개발하고, Cell들은 이 프로토콜을 채택하였다.

 

2. TableViewSectionable

- 위에서 개발한 Cellable을 활용한 TableViewSectionable을 개발하였다. 이러한 TableViewSectionable은 Cell에 주입 될 input, output을 관리할 수 있고, Header와 Footer의 input과 output, View의 생성도 관리하고 있다. 

3. TableViewSectionable을 채택한 Section 생성

- 먼저 필요한 색션을 TableViewSectionable을 이용하여 생성한다. 이때 Section에서 사용할 Cell을 선언하고 Section의 Input, Output을 생성한다.

4. ViewModel, VIewController

- 앞서 만든 Section들을 이용하여 Cell에 주입할 Input, Section에 필요한 Input 등을 주입해 주고 [any TableViewSectionable] 배열을 이용하여 하나의 배열에서 관리할 수 있다.

- 이렇게 만든 TableView를 ViewController에서 사용할 때는 따로 분기처리를 할 필요 없이 사용이 가능하다.!

- Cell의 Output을 사용하는 방법은 sectionCellOutput 프로퍼티에 접근하여 사용하면 된다.!

 

- 이러한 시도를 해보며 느낀 장점은 Section이 추가, 삭제, 수정 등에서 자유롭고 Section을 재사용 가능하며 ViewController를 수정하지 않아도 된다는 장점이 있는 것 같다.! 하지만 일반적으로 사용되는 코드는 아니기에 다른 사람이 볼 때 이해하기 불편하고 나의 생각보다는 사용이 번거로울 수 있다고 생각하며 뭔가 기술적인 결함이 있을 수도 있다고 생각한다.!