일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swiftUI
- swift documentation
- MVVM
- Xcode
- 리펙토링
- Observable
- ios
- uitableview
- Clean Code
- rxswift
- UICollectionView
- 애니메이션
- UITextView
- RxCocoa
- Refactoring
- Protocol
- 스위프트
- collectionview
- 리펙터링
- tableView
- ribs
- HIG
- uiscrollview
- combine
- 리팩토링
- clean architecture
- map
- 클린 코드
- Human interface guide
- SWIFT
- Today
- Total
목록share() (3)
김종권의 iOS 앱 개발 알아가기
Hot Observable과 Cold Observable 개념 hot observable 이벤트를 발행할때 observer가 있든 없든 바로 방출하는 것 여러 observer가 구독해도 모두 같은 데이터를 발행 ex) PublishSubject, BehaviorSubject cold observable 이벤트를 발행할때 observer가 구독했을때 방출하는 것 (observer가 구독하기 전까지는 방출을 안한다고해서 cold라고 표현) 각각의 observer마다 독립적인 데이터 생성하여 발행 ex) just, single, create 코드로 보는 Hot, Cold Observable Observable.create는 cold observable이므로, observer가 구독하는 시점마다 독립적으로 발생..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/k0u3N/btrsrVrYk4S/q5ug1iPrOwH2VTXrKWdeK0/img.png)
subscribe or bind 시 그만큼 해당 Observable이 create되는 것을 주의 구독만 해도 해당 Observable의 `create`가 호출되면서 스트림이 생긴다는 것을 명심할 것 테스트에 사용할 예시 API 정의 enum API { private static var count = 0 static func requestSomeAPI() -> Observable { Single.create { single in let params: [String: Any] = [ "lon": 113, "lat": 23.1, "ac": 0, "unit": "metric", "output": "json", "tzshift": 0 ] AF .request( "https://www.7timer.info/bin/..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bwGIgH/btqE6MB6HSb/n3KkTCDEfricnED6TYbJKK/img.png)
Share() 연산자는 자원을 공통으로 사용 할 수 있게끔 하는 개념 1. Share을 쓰는 이유 1) MVVM설계 // ViewModel 정의 class SomeViewModel { let result = userTappedButton .flatMapLatest {apiService.rx.getFriend() } name = result.map {$0.name} phone = result.map {$0.phone} } // ViewController에서 ViewModel과 UI연결 class { ... viewModel.name .bind(to: lblName.rx.text) // UI와 ViewModel간의 연결 .disposed(by: bag) viewModel.phone .bind(to: lblP..