일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- map
- clean architecture
- ribs
- Refactoring
- tableView
- UITextView
- 스위프트
- Observable
- 리펙터링
- MVVM
- ios
- Clean Code
- HIG
- collectionview
- 리펙토링
- uitableview
- RxCocoa
- 클린 코드
- swift documentation
- UICollectionView
- Xcode
- Human interface guide
- combine
- Protocol
- SWIFT
- rxswift
- 리팩토링
- uiscrollview
- 애니메이션
- swiftUI
- Today
- Total
목록datasource (3)
김종권의 iOS 앱 개발 알아가기
dataSource 관리 MVVM 구조에서 보통 dataSource를 사용할 때 아무런 큐 없이 구현하지만, 데이터 처리 최적화를 위해 background 시키고 싶은 경우 중간중간 DispatchQueue.global()를 사용하거나 커스텀 큐를 사용하는 경우가 존재 개발자가 실수로 DispatchQueue.global()를 사용하게 되면, 이 큐는 serial이 아닌 concurrent이므로 value type인 dataSource 배열을 수정과 동시에 읽기를 하다가 크래시가 발생하는 경우가 존재 크래시 - 이전 Memory Access Conflict 글 참고 이럴때는 커스텀 큐를 선언하여 관리하는것이 가장 좋은데, 먼저 queue의 종류를 이해가 필요 DispatchQueue의 종류 3가지 * 이..
dataSource 관리 방법 dataSource를 관리하다보면 보통 UI에서 사용되는 데이터와 비즈니스로직이 들어갈 ViewModel에서 사용되는 dataSource 두 벌을 관리하는 경우가 있는데, 상태 관리를 한곳에서 사용하지 않으면 데이터 정합성 문제가 발생 protocol을 사용하여 dataSource를 관리하면 해결 viewController에서 dataSource에 접근할 때는 protocol에 의존하게끔하면 해결 MVVM 구조 먼저 준비 MVVM구조를 쉽게 구현하기 위해 예제에 사용할 라이브러리 pod 'RxSwift' pod 'RxCocoa' View ViewModel 구현체에 의존하지 않도록, ViewModelable 프로토콜을 생성하고 이것에 의존하도록 구현 UI에 관한 input을 ..
TableView Section의 구성 = 한개의 Header + 다수의 Cell + 한개의 Footer style은 세가지가 존재: https://ios-development.tistory.com/538 * 3가지 스타일 실행화면 plain grouped inset grouped Section 사용 방법 Cell 이용과 동일하게 delegate에서 Section의 개수와 header에 관한 함수, footer에 관한 함수에 각각 데이터 반환하여 사용 extension ViewController: UITableViewDelegate, UITableViewDataSource { // MARK: - Section func numberOfSections(in tableView: UITableView) -> I..