일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swift documentation
- 스위프트
- combine
- ios
- Xcode
- Refactoring
- rxswift
- UICollectionView
- HIG
- swiftUI
- uitableview
- SWIFT
- 리펙터링
- Observable
- 클린 코드
- collectionview
- Human interface guide
- UITextView
- tableView
- 애니메이션
- ribs
- MVVM
- Clean Code
- uiscrollview
- map
- 리팩토링
- clean architecture
- Protocol
- 리펙토링
- RxCocoa
- Today
- Total
목록RxSwift (40)
김종권의 iOS 앱 개발 알아가기
Reactive Extension을 사용하기 위해 알아야하는 개념 KeyPath, WritableKeyPath, ReferenceWritableKeyPath, DynamicMemberLookup 개념 포스팅 글 Observable, Observer, Producer, ControlEvent, Binder 개념 (RxSwift, RxCocoa) 포스팅 글 Reactive란? rx 네임 스페이스의 정체 아래와 같이 RxSwift의 Reactive 파일을 보면, ReactiveCompatible에 rx 연산 프로퍼티가 존재하고 getter부분에는 타입을 리턴 ReactiveCompatible을 채택하면 해당 클래스에서는 rx프로퍼티로 접근할 수 있고, rx프로퍼티에서는 base인스턴스를 가지고 있으니, 최종적..
참고) RxSwift6 기준, RxSwift: Observable, Observer, Producer, Binder RxCocoa: ControlEvent Observable, Observer, Producer 형태 RxSwift 프레임워크 안에 존재 Observable의 구조 ObservableConvertibleType 프로토콜 asObservable() 메소드 구현을 강제화 Observable로 변환할 수 있는 타입이면, asObservable 메소드가 존재 public protocol ObservableConvertibleType { associatedtype Element func asObservable() -> Observable } ObservableType ObservableType은 s..
Scan 연산자 Scan 연산자: 이전에 방출된 아이템과 새로 방출된 아이템을 결합하여, 새로운 아이템을 생성 새로운 아이템은 그 다음 방출된 아이템의 prev값 Scan 연산자의 핵심은 scan 연산자 내부에 기존 값을 저장하고 새로운 값을 받아서 연산 할 수 있다는 것 scan 연산자 예시1) +, - 카운터 기능 구현 사용할 프레임워크 pod 'RxSwift' pod 'RxCocoa' pod 'SnapKit' UI 준비 - ViewController +, - 버튼을 탭했을 때 카운트를 표출할 UILabel, UIButton 준비 값을 방출하고 구독도 할수 있는 BehaviorRelay 변수 선언 let countRelay = BehaviorRelay(value: 0) 버튼이 탭할때마다 countR..
핵심: Observable이 이벤트 방출, Oserver가 subscribe Observer Observable안에 있는 내부 인스턴스들로 Observable의 값에 변화가 있을 때 didSet 원리로 Observer에게 알림이 가고, Observer가 등록한 closure를 실행 Observable Observer 인스턴스를 가지는 상태 value 인스턴스를 가지고 있다가, value가 변경되면 didSet을 통해 아이템 방출 Subscribe observe()의 의미와 동일 Observable의 값이 변경될 때마다 '특정 작업'을 위한 closure블럭을 같이 넘김으로서 그 closure블럭이 실행되게끔 설정 Subject Observable과 Observer의 성격 모두 가지고 있는 Protocol..
UIControl 이벤트의 종류 개념 * 출처: daheenallwhite.github.io/ios/2019/07/24/Target-Action/ UIControl.Event touchDown 컨트롤을 터치했을 때 발생하는 이벤트 touchDownRepeat 컨트롤을 연속 터치 할 때 발생하는 이벤트 touchDragInside 컨트롤 범위 내에서 터치한 영역을 드래그 할 때 발생하는 이벤트 touchDragOutside 터치 영역이 컨트롤의 바깥쪽에서 드래그 할 때 발생하는 이벤트 touchDragEnter 터치 영역이 컨트롤의 일정 영역 바깥쪽으로 나갔다가 다시 들어왔을 때 발생하는 이벤트 touchDragExit 터치 영역이 컨트롤의 일정 영역 바깥쪽으로 나갔을 때 발생하는 이벤트 touchUpIn..
retry() 연산자를 사용하여 에러처리 retry() 가장 간단한 방법, 에러가 발생할 경우 시퀀스를 재생성하여 Error가 나지않도록 처리 func retry() -> Observable retry(_ maxAttemptCount:) 횟수를 제한할 수 있는 에러처리 func retry(_ maxAttemptCount:) -> Observable retryWhen(_ notificationHandler:) notificationHandler의 타임은 TriggerObservable (= Observable이거나 Subject 형) func retryWhen(_ notificationHandler:) -> Observable 사용방법 만약 RxSwift를 쓰지 않는다면, NSOperation이나 GCD를..
Traits란? UI처리에 특화된 Observable (MainThread에서 실행, Error이벤트가 없음) Traits를 구독하는 모든 구독자는 동일한 시퀀스를 공유 (share연산자가 내부적으로 사용된 상태) Control Property Traits중에 가장 기본형 (Main스케줄러, error이벤트를 발생하지 않음, 동일한 시퀀스 공유) rx네임 스페이스와 함께 사용: textField.rx.text.orEmpty Control Event event를 Observable로 래핑한 속성 (여기서의 event는 버튼을 tap하는 등의 이벤트를 얘기) Observable의 역할은 수행하짐나, ControlProperty와는 다르게 Observer의 역할은 수행하지 못함 control이 해제될 경우 C..
Observable 아이템을 소유하고 있고 일정 기간 계속해서 이벤트를 비동기적으로 방출(emit) ObservableConvertibleType 가장 최상위에 위치한 프로토콜이며, 기본으로 asObservable이라는 메소드가 있으며 asSingle , asDriver , asSharedSequence 세가지 유형의 확장 메소드가 존재 // // ObservableConvertibleType.swift // RxSwift // // Created by Krunoslav Zaher on 9/17/15. // Copyright © 2015 Krunoslav Zaher. All rights reserved. // public protocol ObservableConvertibleType { associate..