-
Notifications
You must be signed in to change notification settings - Fork 0
Description
고민
- Compositional CollectionView
- DataSource / Delegate / Layout
- UIButton
- Rx Table/Collection DataSource 구성
회고
-
Compositional CollectionView
기존에 FlowLayout을 통한 구성을 주로 사용하여 collectionView를 구성하였지만 복잡한 뷰를 구성하는데는 어느정도 한계점이 있음
CSS의 flexbox와 유사(?)하게 Section 내부 Element 의 Layout 을 선언하면서 보다 편리하게 뷰를 구성하도록 13.0에서 등장
물론 flexLayout 서드 파티를 사용하여 CSS와 보다 유사하게 구성이 가능
써보니 확실히 복잡한 뷰를 구성하는 데 있어서는 장단점이 있을 듯

-
DataSource / Delegate / Layout
기존에는 해당 차용에 대한 의미를 모른채 사용
실제로는 Table과 Collection의 구성 속 컨텐츠 / 레이아웃 / 인터렉션에 대한 엄격한 분리
DataSource는 데이터를 받아 뷰를 그려주는 역할
Delegate는 사용자가 그 보이는 부분 중 어떤 것을 클릭하거나 어떤 행동을 했을 때, 그 행동에 대한 동작을 수행
Layout은 시각적인 요소의 분배나 구성을 컨트롤 -
UIButton
iOS 15.0 부터 configuration 관련하여 구체화되고 기존의 버튼 내부 레이아웃 등과 같은 부분에서 많은 부분이 deprecated 됨
강의에서 진행한 extension을 통한 버튼 내 이미지와 타이틀의 재배치도 실제로 동작하지 않았고 경고 발생
'titleEdgeInsets' was deprecated in iOS 15.0: This property is ignored when using UIButtonConfiguration
버튼 구성에 있어서 더 고민하고 내부 컴포지션의 활용과 버튼의 상태에 따른 View의 구성 등 많은 부분에 있어서 고민이 필요 -
Rx Table/Collection DataSource
기존 Rx DataSource를 활용할 때 왜 Section별로 데이터의 Model을 구성하고 이를 활용하는 가에 대한 의문이 있었음
컴포지션으로 구성을 하다보니 뷰 하나에서 여러개의 Collection/Table 타입을 구성하는 건 그만큼 복잡해진다는 의미로
적용에 있어서 최대한 섹션을 활용하여 다양한 뷰를 구성할 수 있도록 지향해야함
CustomCell의 구성도 보다 원활하게 하도록 재사용과 layoutSubviews와 같은 메서드를 고려하면서 구성하며, 내부를 어떻게 유지 보수가 편하도록 구성할지도 좀 더 구상해봐야할 듯
참고
👉🏻 Modern Collection Views with Compositional Layouts
👉🏻 FlexLayout
👉🏻 DataSource와 Delegate의 차이?
👉🏻 UIKit button system