본문 바로가기

🍎 iOS/문서읽기10

[SwiftUI] @State, @Binding 오랜만에 SwiftUI로 프로젝트를 진행하게 되면서 간단하게 개념을 정리해둘 기회가 생겼다. State와 Binding을 알아보기에 앞서, 선행되어야 할 개념인 Source of Truth와 Property wrapper에 대해 짚고 넘어가자. Source of Truth 개요 Source of Truth는 데이터 원본이라 생각하면 되는데, State로 선언된 Property는 모두 Source of Truth를 생성하고 참조할 수 있게 된다. Source of Truth와 State, Binding의 흐름 SwiftUI에서는 property의 Storage를 관리하고, 데이터가 변경되면 이에 의존하는 View 계층의 일부를 업데이트한다. property를 SoT 개념을 활용해 한 곳에서 통합 관리함을써.. 2024. 1. 7.
[UIKit] UITableViewDiffableDataSource ( iOS 13.0+ ) Notion에 정리한 내용을 옮겨왔다. UITableViewDiffableDataSource 공식문서에서는 다음과 같이 설명한다. DataSource의 특수한 형태 간단하고 효율적인 방식으로 view의 데이터와 UI를 업데이트 관리하는 데 필요한 동작 제공 UITableViewDataSource 프로토콜에서 제공하는 모든 메서드 구현 제공 TableView에 DiffableDataSource를 연결하려면, cellProvider initializer를 이용해 DiffableDatasource를 만들어 연결하려는 tableView에 전달하면 된다. 그뒤에 snapshot을 구성하고 적용해, Data의 현재 상태를 생성하고, UI에 데이터를 표시한다. dataSource = UITableViewDiffabl.. 2023. 7. 30.
[Article - UITableView] Filling a table with data Notion에 정리했던 내용을 옮겨왔다. 애플 공식문서의 Article을 참고했습니다. 번역한 내용이 전체 내용이 아니며, 전체 내용 중 흥미로웠던 부분만 발췌해 번역했습니다. 요약 TableView Cell은 lazy하게 관리되어, UITableViewDataSouce에 있는 cellForRowAt 메서드가 대신 빠르게 cell을 생성해야 하는데, 빠른 처리를 위해 해당 메서드 내에는 데이터 처리나 긴 연산을 넣어선 안 된다. TableView에 비용이 많이 드는 작업이 포함된다면, prefetching datasource를 사용해서 비동기적으로 처리해라. TableView의 컨텐츠가 변경되지 않는다면, Static TableView를 사용해서 시간을 절약해라. Filling a table with d.. 2023. 7. 28.
[UIKit] UITableView의 구조 Notion에 정리한 내용을 옮겨왔다. UITableView 구조 Cell 자체는 ‘Delete Control - Content - Accessory View’의 구조로 되어 있다. 자세한 내용은 이전에 정리한 내용 참조 그렇다면 UITableView는 어떤 구조로 되어있을까? ContentView - BackgroundView - SelectedBackgroundView - MultipleSelectionBackgroundView로 구성되어 있다. contentView (= UIView) contentView는 공식문서를 정리한 내용은 아래를 참조하면 될 것 같다. 이전에 정리한 내용을 참조 BackgroundView ( = UIView? ) backgroundView는 공식문서에서 다음과 같이 설명한.. 2023. 7. 28.